Esempio n. 1
0
def _CalcMutualNearestNeighbors(hull_points, all_points):
    all_points_list = list(all_points)
    ds = distance.pdist(list(all_points))
    std_d = p.std(ds)
    
    square_ds = distance.squareform(ds)
    nearest_neighbors = {}
    
    for i, point in enumerate(all_points_list):
        if point not in hull_points:
            continue
        
        my_ds = [(d, j) for j, d in enumerate(square_ds[i])
                 if j != i]
        my_ds.sort()
        nearest_neighbors[point] = set([j for d,j in my_ds[:3]])
    
    no_mutual = set()
    for i, point in enumerate(all_points_list):
        if point not in hull_points:
            continue
        
        no_nbrs = True
        for neighbor_index in nearest_neighbors.get(point, []):
            neighbor = all_points_list[neighbor_index]
            neighbor_set = nearest_neighbors.get(neighbor, [])
            if i in neighbor_set:
                no_nbrs = False
        
        if no_nbrs:
            no_mutual.add(point)
                
    return no_mutual
Esempio n. 2
0
def _CalcMutualNearestNeighbors(hull_points, all_points):
    all_points_list = list(all_points)
    ds = distance.pdist(list(all_points))
    std_d = p.std(ds)

    square_ds = distance.squareform(ds)
    nearest_neighbors = {}

    for i, point in enumerate(all_points_list):
        if point not in hull_points:
            continue

        my_ds = [(d, j) for j, d in enumerate(square_ds[i]) if j != i]
        my_ds.sort()
        nearest_neighbors[point] = set([j for d, j in my_ds[:3]])

    no_mutual = set()
    for i, point in enumerate(all_points_list):
        if point not in hull_points:
            continue

        no_nbrs = True
        for neighbor_index in nearest_neighbors.get(point, []):
            neighbor = all_points_list[neighbor_index]
            neighbor_set = nearest_neighbors.get(neighbor, [])
            if i in neighbor_set:
                no_nbrs = False

        if no_nbrs:
            no_mutual.add(point)

    return no_mutual
Esempio n. 3
0
def _CalcDensities(hull_points, all_points):
    ds = distance.pdist(list(all_points))
    std_d = p.std(ds)
    
    square_ds = distance.squareform(ds)
    densities = {}
    for i, point in enumerate(all_points):
        if point not in hull_points:
            continue
        
        my_ds = square_ds[i]
        density = len([1 for i in my_ds if i <= std_d])
        densities[point] = density
    
    tmp_densities = [(d, pt) for pt,d in densities.iteritems()]
    tmp_densities.sort(reverse=True)
    return tmp_densities, std_d
Esempio n. 4
0
def _CalcDensities(hull_points, all_points):
    ds = distance.pdist(list(all_points))
    std_d = p.std(ds)

    square_ds = distance.squareform(ds)
    densities = {}
    for i, point in enumerate(all_points):
        if point not in hull_points:
            continue

        my_ds = square_ds[i]
        density = len([1 for i in my_ds if i <= std_d])
        densities[point] = density

    tmp_densities = [(d, pt) for pt, d in densities.iteritems()]
    tmp_densities.sort(reverse=True)
    return tmp_densities, std_d
# exercise 10.2.1
from matplotlib.pyplot import figure, show
from scipy.io import loadmat
from toolbox_02450 import clusterplot
from scipy.cluster.hierarchy import linkage, fcluster, dendrogram, distance
from project_3.data import origX

# data = 1 - origX.corr()
# corr_condensed = distance.squareform(data) # convert to condensed
# z = linkage(data, method='centroid')
# dendrogram(z, labels=data.columns)
# show()

data = origX
corr_condensed = distance.squareform(data)  # convert to condensed
z = linkage(data, method='centroid')
dendrogram(z)
show()

print('Ran Exercise 10.2.1')