コード例 #1
0
	def leerFichero(self, nombre_fichero):
		f = codecs.open(nombre_fichero, "r", "utf-8")
		#instancias al estilo WEKA
		instances = Instances()

		primeraLinea = f.readline()
		cadenasLinea = re.split(r'\t|\n|\r| ', primeraLinea)
		numeroEntradas = int(cadenasLinea[0])
		numeroClases = int(cadenasLinea[1])

		for i in range(0, numeroEntradas):
			instances.addColumna(str(i), "REAL")

		for i in range(0, numeroClases):
			instances.addClase(str(i))

		for line in iter(lambda: f.readline(), ''):
			tokens = self.privateLimpiaVacioTokens(re.split(self.delimiters, line))
			#print tokens
			if len(tokens) <= 0:
				break
			#instancia al estilo WEKA
			instance = Instance()
			#se anyaden las entradas del perceptron
			for i in range(0, numeroEntradas):
				#print filter(lambda x: x in string.printable, tokens[i])
				instance.addElement(tokens[i])

			#print tokens[numeroEntradas]
			instance.addElement(tokens[numeroEntradas])

			instances.addInstance(instance)

		f.close()
		return instances
コード例 #2
0
	def leerFichero(self, nombre_fichero):
		f = open(nombre_fichero,'r')
		instances = Instances()
		#espera @RELATION nombre
		#espera tambien @ATTRIBUTE
		#espera tambien @data
		i = 0
		while True:
			linea = f.readline()
			tokens = re.split(self.delimiters, linea)

			if len(tokens) > 1:
				if tokens[0] == '@RELATION':
					continue
				elif tokens[0] == '@ATTRIBUTE':
					if tokens[1] == 'class':
						for indice in range(2, len(tokens)):
							if tokens[indice] != '':
								instances.addClase(tokens[indice])
					elif tokens[2] == 'REAL':
						instances.addColumna(tokens[1], tokens[2])
						continue
					else:
						instances.addColumna(tokens[1], 'NOMINAL')
						continue

				elif tokens[0] == '@DATA':
					print '@DATA'
					break

			i = i+1
			if i > 100:
				print 'Error de fichero'
				return None

		for linea in iter(lambda: f.readline(), ''):
			tokens = self.privateLimpiaVacioTokens(re.split(self.delimiters, linea))
			longitud = len(tokens)
			if longitud > 1:
				#por ahora solo lee reales
				instance = Instance()
				for i in range(0, longitud - 1):
					instance.addElement(float(tokens[i]))

				instance.addElement(tokens[longitud - 1])
				instances.addInstance(instance)

		f.close()
		return instances
コード例 #3
0
ファイル: LectorNeuro.py プロジェクト: garnachod/neuro1
	def leerFichero(self, nombre_fichero):
		f = open(nombre_fichero,'r')
		#instancias al estilo WEKA
		instances = Instances()

		primeraLinea = f.readline()
		cadenasLinea = re.split(self.delimiters, primeraLinea)
		numeroEntradas = int(cadenasLinea[0])
		numeroClases = int(cadenasLinea[1])

		for i in range(0, numeroEntradas):
			instances.addColumna(str(i), "REAL")

		for i in range(0, numeroClases):
			instances.addClase(str(i))

		for line in iter(lambda: f.readline(), ''):
			tokens = self.privateLimpiaVacioTokens(re.split(self.delimiters, line))
			#print tokens
			if len(tokens) <= 0:
				break
			#instancia al estilo WEKA
			instance = Instance()
			#se anyaden las entradas del perceptron
			for i in range(0, numeroEntradas):
				instance.addElement(float(tokens[i]))

			#transformacion de 1 0 a 0 por ejemplo y 0 1 a 1
			#con la finalidad de no usar un array de clases que no tiene sentido en clasificacion
			#puede tener sentido en un red neuronal, no lo niego
			j = 0
			for i in range(numeroEntradas, numeroEntradas + numeroClases):
				if tokens[i] == '1':
					instance.addElement(str(j))
					break

				j += 1

			instances.addInstance(instance)

		f.close()
		return instances
コード例 #4
0
    def leerFichero(self, nombre_fichero):
        f = open(nombre_fichero, 'r')
        #instancias al estilo WEKA
        instances = Instances()

        primeraLinea = f.readline()
        cadenasLinea = re.split(self.delimiters, primeraLinea)
        numeroEntradas = int(cadenasLinea[0])
        numeroClases = int(cadenasLinea[1])

        for i in range(0, numeroEntradas):
            instances.addColumna(str(i), "REAL")

        for i in range(0, numeroClases):
            instances.addClase(str(i))

        for line in iter(lambda: f.readline(), ''):
            tokens = self.privateLimpiaVacioTokens(
                re.split(self.delimiters, line))
            #print tokens
            if len(tokens) <= 0:
                break
            #instancia al estilo WEKA
            instance = InstanceMatriz()
            #se anyaden las entradas del perceptron
            for i in range(0, numeroEntradas):
                instance.addElement(float(tokens[i]))

            #solo funcionara con salidas numericas
            for i in range(numeroEntradas, numeroEntradas + numeroClases):
                instance.addElement(float(tokens[i]))

            instance.generaBipolarVectorObjetivoSalida(numeroClases)
            instances.addInstance(instance)

        f.close()
        return instances
コード例 #5
0
	def soloLeerCabecera(self, nombre_fichero):
		f = open(nombre_fichero,'r')
		instances = Instances()
		#espera @RELATION nombre
		#espera tambien @ATTRIBUTE
		#espera tambien @data
		i = 0
		while True:
			linea = f.readline()
			tokens = re.split(self.delimiters, linea)

			if len(tokens) > 1:
				if tokens[0] == '@RELATION':
					continue
				elif tokens[0] == '@ATTRIBUTE':
					if tokens[1] == 'class':
						for indice in range(2, len(tokens)):
							if tokens[indice] != '':
								instances.addClase(tokens[indice])
					elif tokens[2] == 'REAL':
						instances.addColumna(tokens[1], tokens[2])
						continue
					else:
						instances.addColumna(tokens[1], 'NOMINAL')
						continue

				elif tokens[0] == '@DATA':
					print '@DATA'
					break

			i = i+1
			if i > 100:
				print 'Error de fichero'
				return None

		f.close()
		return instances