Exemple #1
0
    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
Exemple #2
0
    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...
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
0
    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
Exemple #7
0
                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)
Exemple #8
0
        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'])
Exemple #10
0
        #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...