def createDataSet(self): targetResponse = self.dataSet[self.featureClass] dictData = {} for key in self.dataSet: if key != self.featureClass: arrayFeature = [] for i in self.dataSet[key]: arrayFeature.append(i) dictData.update({key: arrayFeature}) #formamos el nuevo set de datos... dataSetNew = pd.DataFrame(dictData) #ahora evaluamos si la clase tiene valores discretos o continuos y los modificamos en caso de que sean discretos transformData = transformDataClass.transformClass(targetResponse) self.target = transformData.transformData self.dictTransform = transformData.dictTransform #formamos el class array... self.classArray = list(set(self.target)) #ahora transformamos el set de datos por si existen elementos discretos... #transformDataSet = transformFrequence.frequenceData(dataSetNew) encoding = encodingFeatures.encodingFeatures(dataSetNew, self.treshold) encoding.evaluEncoderKind() dataSetNewFreq = encoding.dataSet #ahora aplicamos el procesamiento segun lo expuesto if self.optionNormalize == 1: #normal scale applyNormal = ScaleNormalScore.applyNormalScale(dataSetNewFreq) self.data = applyNormal.dataTransform elif self.optionNormalize == 2: #min max scaler applyMinMax = ScaleMinMax.applyMinMaxScaler(dataSetNewFreq) self.data = applyMinMax.dataTransform elif self.optionNormalize == 3: #log scale applyLog = ScaleDataSetLog.applyLogScale(dataSetNewFreq) self.data = applyLog.dataTransform else: #log normal scale applyLogNormal = ScaleLogNormalScore.applyLogNormalScale( dataSetNewFreq) self.data = applyLogNormal.dataTransform
def getMeasuresCluster(self): #procesamos el set de datos para obtener los atributos y las clases... columnas=self.dataFrame.columns.tolist() x=columnas[len(columnas)-1] targetResponse=self.dataFrame[x]#clases y=columnas[0:len(columnas)-1] dataValues=self.dataFrame[y]#atributos encoding = encodingFeatures.encodingFeatures(dataValues, 20) encoding.evaluEncoderKind() dataSetNewFreq = encoding.dataSet #ahora aplicamos el procesamiento segun lo expuesto applyNormal = ScaleNormalScore.applyNormalScale(dataSetNewFreq) data = applyNormal.dataTransform self.resultEvaluation = evaluationClustering.evaluationClustering(data, targetResponse)#evaluamos...
def processDataSet(self): self.dataResponse = self.dataOriginal[ self.featureClass] #obtenemos la variable respuesta dictData = {} for key in self.dataOriginal: if key != self.featureClass: arrayFeature = [] for i in self.dataOriginal[key]: arrayFeature.append(i) dictData.update({key: arrayFeature}) #formamos el nuevo set de datos... self.dataSet = pd.DataFrame(dictData) #codificacion de variables categoricas encoding = encodingFeatures.encodingFeatures(self.dataSet, 20) encoding.evaluEncoderKind() dataSetNewFreq = encoding.dataSet #ahora aplicamos el procesamiento segun lo expuesto if self.optionNormalize == 1: #normal scale applyNormal = ScaleNormalScore.applyNormalScale(dataSetNewFreq) self.dataSet = applyNormal.dataTransform if self.optionNormalize == 2: #min max scaler applyMinMax = ScaleMinMax.applyMinMaxScaler(dataSetNewFreq) self.dataSet = applyMinMax.dataTransform if self.optionNormalize == 3: #log scale applyLog = ScaleDataSetLog.applyLogScale(dataSetNewFreq) self.dataSet = applyLog.dataTransform if self.optionNormalize == 4: #log normal scale applyLogNormal = ScaleLogNormalScore.applyLogNormalScale( dataSetNewFreq) self.dataSet = applyLogNormal.dataTransform
def prepareDataSet(self): self.dataResponse = self.dataSet[self.featureClass] classArray = list(set( self.dataResponse)) #evaluamos si es arreglo binario o no self.kindDataSet = 1 if len(classArray) == 2: self.kindDataSet = 1 else: self.kindDataSet = 2 #hacemos la transformacion de la clase #transformamos la clase si presenta atributos discretos transformData = transformDataClass.transformClass(self.dataResponse) self.target = transformData.transformData dictData = {} for key in self.dataSet: if key != self.featureClass: arrayFeature = [] for i in self.dataSet[key]: arrayFeature.append(i) dictData.update({key: arrayFeature}) #formamos el nuevo set de datos... dataSetParser = pd.DataFrame(dictData) #codificacion del conjunto de datos encoding = encodingFeatures.encodingFeatures(dataSetParser, 20) encoding.evaluEncoderKind() dataSetNewFreq = encoding.dataSet #ahora aplicamos el procesamiento segun lo expuesto applyNormal = ScaleNormalScore.applyNormalScale(dataSetNewFreq) self.data = applyNormal.dataTransform
def prepareDataSet(self): self.dataResponse = self.dataSet[ self.featureClass] #obtenemos la variable respuesta dictData = {} for key in self.dataSet: if key != self.featureClass: arrayFeature = [] for i in self.dataSet[key]: arrayFeature.append(i) dictData.update({key: arrayFeature}) #formamos el nuevo set de datos... dataSetParser = pd.DataFrame(dictData) #codificacion del conjunto de datos encoding = encodingFeatures.encodingFeatures(dataSetParser, 20) encoding.evaluEncoderKind() dataSetNewFreq = encoding.dataSet #ahora aplicamos el procesamiento segun lo expuesto applyNormal = ScaleNormalScore.applyNormalScale(dataSetNewFreq) self.data = applyNormal.dataTransform
def processDataSet(self, dataSetInput): #ahora transformamos el set de datos por si existen elementos discretos... encoding = encodingFeatures.encodingFeatures(dataSetInput, 20) encoding.evaluEncoderKind() dataSetNewFreq = encoding.dataSet #ahora aplicamos el procesamiento segun lo expuesto if self.optionNormalize == 1: #normal scale applyNormal = ScaleNormalScore.applyNormalScale(dataSetNewFreq) self.dataSet = applyNormal.dataTransform elif self.optionNormalize == 2: #min max scaler applyMinMax = ScaleMinMax.applyMinMaxScaler(dataSetNewFreq) self.dataSet = applyMinMax.dataTransform elif self.optionNormalize == 3: #log scale applyLog = ScaleDataSetLog.applyLogScale(dataSetNewFreq) self.dataSet = applyLog.dataTransform else: #log normal scale applyLogNormal = ScaleLogNormalScore.applyLogNormalScale( dataSetNewFreq) self.dataSet = applyLogNormal.dataTransform
row = [] for key in dataFrame: row.append(dataFrame[key][i]) #formamos la fila classResponse.append(indexClass) matrixGroup.append(row) #cambiamos el nombre del archivo command = "mv %s %sgroups/%d.csv" % (files, pathResponse, indexClass) os.system(command) indexClass += 1 #formamos el conjunto de datos para el entrenamiento del modelo de clasificacion dataFrameExport = pd.DataFrame(matrixGroup, columns=dataFrame.keys()) del dataFrameExport[args.response] #eliminamos la columna respuesta #codificacion del conjunto de datos encoding = encodingFeatures.encodingFeatures(dataFrameExport, 20) encoding.evaluEncoderKind() dataSetNewFreq = encoding.dataSet clusteringPerformance = evaluationClustering.evaluationClustering( dataSetNewFreq, classResponse) print "Calinski Performance: ", clusteringPerformance.calinski print "Silhouette score: ", clusteringPerformance.siluetas dataFrameExport['classGroup'] = classResponse dataFrameExport.to_csv(pathResponse + "fullDataSetWith.csv", index=False)
iteracionesCorrectas = 0 iteracionesIncorrectas = 0 #procesamos el set de datos para obtener la columna respuesta y la matriz de datos a entrenar target = dataSet[response] del dataSet[response] #procesamos la data de interes, asociada a la codificacion de las variables categoricas y la normalizacion del conjunto de datos #transformamos la clase si presenta atributos discretos transformData = transformDataClass.transformClass(target) target = transformData.transformData #ahora transformamos el set de datos por si existen elementos categoricos... #transformDataSet = transformFrequence.frequenceData(data) #dataSetNewFreq = transformDataSet.dataTransform encoding = encodingFeatures.encodingFeatures(dataSet, 20) encoding.evaluEncoderKind() dataSetNewFreq = encoding.dataSet #ahora aplicamos el procesamiento segun lo expuesto applyNormal = ScaleNormalScore.applyNormalScale(dataSetNewFreq) data = applyNormal.dataTransform #obtenemos el dataset de entrenamiento y validacion, junto con los arreglos correspondientes de respuestas getDataProcess = createDataSetForTraining.createDataSet(data, target) dataSetTraining = getDataProcess.dataSetTraining classTraining = getDataProcess.classTraining dataSetTesting = getDataProcess.dataSetTesting classTesting = getDataProcess.classTesting #generamos una lista con los valores obtenidos...
import json dataSet = pd.read_csv(sys.argv[1]) pathOutput = sys.argv[2] numberPartitions = int(sys.argv[3]) jsonResponse = sys.argv[4] #codificamos el conjunto de datos para trabajar con elementos y poder evaluar las particiones #procesamos el set de datos para obtener los atributos y las clases... columnas = dataSet.columns.tolist() x = columnas[len(columnas) - 1] targetResponse = dataSet[x] #clases y = columnas[0:len(columnas) - 1] dataValues = dataSet[y] #atributos encoding = encodingFeatures.encodingFeatures(dataValues, 20) encoding.evaluEncoderKind() dataSetNewFreq = encoding.dataSet #ahora aplicamos el procesamiento segun lo expuesto applyNormal = ScaleNormalScore.applyNormalScale(dataSetNewFreq) data = applyNormal.dataTransform #hacemos la lectura del JSON y evaluamos los elementos siluetasScore = 0 calinskiScore = 0 with open(jsonResponse) as json_file: dataJSON = json.load(json_file) siluetasScore = float(dataJSON['silhouette_score']) calinskiScore = float(dataJSON['calinski_harabaz_score'])
#procesamos el set de datos para obtener los atributos y las clases... columnas = dataSet.columns.tolist() x = columnas[len(columnas) - 1] target = dataSet[x] #clases y = columnas[0:len(columnas) - 1] data = dataSet[y] #atributos #transformamos la clase si presenta atributos discretos transformData = transformDataClass.transformClass(target) target = transformData.transformData #ahora transformamos el set de datos por si existen elementos discretos... #transformDataSet = transformFrequence.frequenceData(data) #dataSetNewFreq = transformDataSet.dataTransform encoding = encodingFeatures.encodingFeatures(data, 20) encoding.evaluEncoderKind() dataSetNewFreq = encoding.dataSet #ahora aplicamos el procesamiento segun lo expuesto applyNormal = ScaleNormalScore.applyNormalScale(dataSetNewFreq) data = applyNormal.dataTransform #generamos una lista con los valores obtenidos... header = [ "Algorithm", "Params", "R_Score", "Pearson", "Spearman", "Kendalltau" ] matrixResponse = [] #comenzamos con las ejecuciones...