Beispiel #1
0
def delete_outliers_ward(prediction, subset):
    X = subset
    k = general.numero_clusters(prediction)
    #se convierte la asignación de clusters a DataFrame
    clusters = pd.DataFrame(prediction[1], index=X.index, columns=['cluster'])
    #y se añade como columna a X
    X_cluster = pd.concat([X, clusters], axis=1)

    #Filtro quitando los elementos (outliers) que caen en clusters muy pequeños en el jerárquico
    min_size = 2
    X_filtrado = X_cluster[
        X_cluster.groupby('cluster').cluster.transform(len) > min_size]
    k_filtrado = len(set(X_filtrado['cluster']))
    #print('''De los {:.0f} clusters hay {:.0f} con más de {:.0f} elementos.
    #Del total de {:.0f} elementos, se seleccionan {:.0f}'''.format(k,k_filtrado,min_size,len(X),len(X_filtrado)))
    X_filtrado = X_filtrado.drop('cluster', 1)

    #X_filtrado_normal = preprocessing.normalize(X_filtrado, norm='l2')

    return X_filtrado
Beispiel #2
0
    return clustering_algorithms


#Definimos el subset
subset1 = define_subset()
print("Tamaño del caso de estudio:" + str(len(subset1)))

#Definimos los algoritmos que vamos a utilizar
algorithms1 = definition_clusters(subset1)
predictions1 = general.get_predictions(algorithms1, subset1)

#Calculamos medidas de error
medidas1 = general.calculoMedidas(subset1, predictions1)

#Calculamos numero de clústeres para aquellos métodos a los que no se le especifique
n_clusters_meanshift = general.numero_clusters(predictions1[1])
print("El número de clústeres para MeanShift es {:.0f} ".format(
    n_clusters_meanshift))

########################## CONFIGURACIÓN DE PARAMETROS ##############################

############ kmeans


def configuraciones_kmeans():
    #normalized_set = preprocessing.normalize(subset, norm='l2')

    k_means_10 = cl.KMeans(init='k-means++', n_clusters=10, n_init=100)
    k_means_20 = cl.KMeans(init='k-means++', n_clusters=20, n_init=100)
    k_means_30 = cl.KMeans(init='k-means++', n_clusters=30, n_init=100)
    k_means_40 = cl.KMeans(init='k-means++', n_clusters=40, n_init=100)
Beispiel #3
0
    return clustering_algorithms


#Definimos el subset
subset2 = define_subset()
print("Tamaño del caso de estudio:" + str(len(subset2)))

#Definimos los algoritmos que vamos a utilizar
algorithms2 = definition_clusters(subset2)
predictions2 = general.get_predictions(algorithms2, subset2)

medidas2 = general.calculoMedidas(subset2, predictions2)

### Calculamos numero de clusteres para DBSCAN
k_dbscan = general.numero_clusters(predictions2[2])
k_meanshift = general.numero_clusters(predictions2[1])

############################## CONFIGURACIONES
##### DBSCAN


def configuraciones_dbscan():
    dbscan_01 = cl.DBSCAN(eps=0.01)
    dbscan_05 = cl.DBSCAN(eps=0.05)
    dbscan_1 = cl.DBSCAN(eps=0.1)

    #Los añadimos a una lista
    clustering_algorithms = (('DBSCAN eps=0.01', dbscan_01),
                             ('DBSCAN eps=0.05', dbscan_05), ('DBSCAN eps=0.1',
                                                              dbscan_1))
Beispiel #4
0
    return clustering_algorithms


#Definimos el subset
subset3 = define_subset()
print("Tamaño del caso de estudio:" + str(len(subset3)))

#Definimos los algoritmos que vamos a utilizar
algorithms3 = definition_clusters(subset3)
predictions3 = general.get_predictions(algorithms3, subset3)

#general.scatter_matrix(predictions[2], subset)

medidas3 = general.calculoMedidas(subset3, predictions3)

k_meanshift = general.numero_clusters(predictions3[2])


######################### CAMBIO DE PARÁMETROS
##### Birch
def configuraciones_birch():
    brc_10 = cl.Birch(n_clusters=10, threshold=0.01)
    brc_20 = cl.Birch(n_clusters=25, threshold=0.01)
    brc_30 = cl.Birch(n_clusters=30, threshold=0.01)
    brc_40 = cl.Birch(n_clusters=40, threshold=0.01)
    brc_50 = cl.Birch(n_clusters=50, threshold=0.01)
    brc_60 = cl.Birch(n_clusters=60, threshold=0.01)

    #Los añadimos a una lista
    clustering_algorithms = (('Birch-10', brc_10), ('Birch-20', brc_20),
                             ('Birch-30', brc_30), ('Birch-40', brc_40),