Esempio n. 1
0
def loadFileKMeans(file,classNameIndex):
	
	k = KMeans(constants.getN())
	fileHelper = FileHelper()
	

	c1 = KMeansClass(0,"Iris-setosa")
	c1.setVCenter([4.6,3.0,4.0,0.0])
	c2 = KMeansClass(1,"Iris-versicolor")
	c2.setVCenter([6.8,3.4,4.6,0.7])

	k.addClass(c1)
	k.addClass(c2)
	try:
		f = fileHelper.openReadOnlyFile(file)
		
		lineas = f.readlines()
		uMatrix = constants.getKMeansInitializeUMAtrix(len(lineas))
		k.setUMatrix(uMatrix)
		xVector = []

		for linea in lineas:

			xVector = linea.strip("\r\n").split(",")
			del xVector[classNameIndex-1]
			xVector = [float(x) for x in xVector]

			k.addXVector(xVector)

		return k
	except:
		print("Error al leer el fichero")
Esempio n. 2
0
def k_means(data, sample_to_guess, log_file, tolerance=0.01, b=2):
    def getKMeansInitializeUMAtrix(xVectorsCount):

        random.seed()
        matrix = []
        for i in range(xVectorsCount):
            elem = random.uniform(0, 1)
            matrix.append(elem)
            matrix.append(1 - elem)
        return np.reshape(matrix, (xVectorsCount, 2))

    k = KMeans(4)
    c1 = KMeansClass(0, "Iris-setosa")
    c1.setVCenter([4.6, 3.0, 4.0, 0.0])
    c2 = KMeansClass(1, "Iris-versicolor")
    c2.setVCenter([6.8, 3.4, 4.6, 0.7])

    k.addClass(c1)
    k.addClass(c2)

    uMatrix = getKMeansInitializeUMAtrix(
        len(data['Iris-setosa']) + len(data['Iris-versicolor']))
    k.setUMatrix(uMatrix)

    for x in data['Iris-setosa']:
        k.addXVector(x)

    for x2 in data['Iris-versicolor']:
        k.addXVector(x2)

    k.doTraining(log_file=log_file, epsilonLimit=tolerance, b=b)

    prediction = k.clasifyEuclideanDistance(sample_to_guess, log_file)
    log_file.write("La prediccion para la muestra es {}".format(prediction))
    print("La predicción para la muestra es {}".format(prediction))

    return prediction