In [1]:
import fingerprint as fp
In [2]:
s_all=fp.read_pickle("struct_all.pickle")
In [4]:
import pandas as pd
import tqdm
In [5]:
s250=s_all[0:250]
f_ones_250=[fp.get_phi(s250[i],obser="ones",rmax=12,delta=0.05) for i in tqdm.tqdm_notebook(range(len(s250)))]
f_Z_250=[fp.get_phi(s250[i],obser="Z",rmax=12,delta=0.05) for i in tqdm.tqdm_notebook(range(len(s250)))]
f_Chi_250=[fp.get_phi(s250[i],obser="Chi",rmax=12,delta=0.05) for i in tqdm.tqdm_notebook(range(len(s250)))]
In [6]:
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
In [12]:
plt.figure(figsize=(10,10))
r=np.linspace(0.05,12,(12/0.05))
for i in range(2):
lab=s250[i].composition
plt.plot(r,f_Z_250[i],label=lab)
plt.legend()
Out[12]:
In [14]:
df_ones=pd.DataFrame(f_ones_250)
In [15]:
metric_ones=np.array([np.dot(f_ones_250[i],f_ones_250[j]) for i in range(250) for j in range(250)]).reshape(250,250)
In [16]:
metric_Z=np.array([np.dot(f_ones_250[i],f_ones_250[j]) for i in range(250) for j in range(250)]).reshape(250,250)
In [17]:
dist=np.array([np.dot(f_ones_250[0],f_ones_250[i]) for i in range(250)])
In [18]:
df_ones=pd.DataFrame({"phi_ones":f_ones_250})
In [19]:
df_ones["dist"]=dist
dt_sort=df_ones.sort("dist").drop("dist",axis=1)
In [20]:
comps=[s250[i].composition for i in range(250)]
In [21]:
df_ones["Composition"]=comps
In [22]:
dt_sort=df_ones.sort("dist",ascending=False)
In [23]:
dt_sort.set_index(np.arange(dt_sort.shape[0]),inplace=True)
In [24]:
for i in range(5):
print dt_sort["Composition"][i]
In [25]:
sorted_f_ones=dt_sort['phi_ones'].values
In [26]:
metric_ones=np.array([np.dot(sorted_f_ones[i],sorted_f_ones[j]) for i in range(250) for j in range(250)]).reshape(250,250)
In [27]:
#for i in range(250):
# metric_ones[i][i]=0
plt.figure(figsize=(15,15))
plt.imshow(metric_ones[0:250,0:250])
plt.colorbar()
Out[27]:
In [73]:
import sklearn
In [74]:
from sklearn.metrics.pairwise import euclidean_distances
In [79]:
euclid=np.array([np.sqrt(np.dot(sorted_f_ones[i],sorted_f_ones[i])+np.dot(sorted_f_ones[j],sorted_f_ones[j])-2*np.dot(sorted_f_ones[i],sorted_f_ones[j])) for i in tqdm.tqdm_notebook(range(250)) for j in range(250)]).reshape(250,250)
In [82]:
plt.figure(figsize=(15,15))
plt.imshow(euclid[0:250,0:250])
plt.colorbar()
Out[82]:
In [85]:
len(s_all)
Out[85]:
In [95]:
dist2=np.array([np.dot(f_ones_250[0]-f_ones_250[i],f_ones_250[0]-f_ones_250[i]) for i in range(250)])
df_ones["dist2"]=dist2
dt_sort=df_ones.sort("dist2").drop("dist2",axis=1)
dt_sort.set_index(np.arange(dt_sort.shape[0]),inplace=True)
sorted_f_ones=dt_sort['phi_ones'].values
euclid=np.array([np.sqrt(np.dot(sorted_f_ones[i],sorted_f_ones[i])+np.dot(sorted_f_ones[j],sorted_f_ones[j])-2*np.dot(sorted_f_ones[i],sorted_f_ones[j])) for i in tqdm.tqdm_notebook(range(250)) for j in range(250)]).reshape(250,250)
plt.figure(figsize=(12,12))
plt.imshow(euclid[0:250,0:250])
plt.colorbar()
Out[95]:
In [99]:
plt.figure(figsize=(10,10))
plt.imshow(euclid[0:100,0:100],interpolation='nearest')
plt.colorbar()
Out[99]:
In [96]:
dt_sort["Composition"][0:20]
Out[96]:
In [102]:
df_Chi=pd.DataFrame({"phi_Chi":f_Chi_250})
dist2=np.array([np.dot(f_Chi_250[0]-f_Chi_250[i],f_Chi_250[0]-f_Chi_250[i]) for i in range(250)])
df_Chi["dist2"]=dist2
dt_sort=df_Chi.sort("dist2").drop("dist2",axis=1)
dt_sort.set_index(np.arange(dt_sort.shape[0]),inplace=True)
sorted_f_ones=dt_sort['phi_Chi'].values
euclid=np.array([np.sqrt(np.dot(sorted_f_ones[i],sorted_f_ones[i])+np.dot(sorted_f_ones[j],sorted_f_ones[j])-2*np.dot(sorted_f_ones[i],sorted_f_ones[j])) for i in tqdm.tqdm_notebook(range(250)) for j in range(250)]).reshape(250,250)
plt.figure(figsize=(12,12))
plt.imshow(euclid[0:250,0:250])
plt.colorbar()
Out[102]:
In [103]:
from sklearn.cluster import KMeans
In [104]:
s250=s_all[0:2000]
f_ones_2000=[fp.get_phi(s250[i],obser="ones",rmax=12,delta=0.05) for i in tqdm.tqdm_notebook(range(len(s250)))]
In [111]:
inertia=np.zeros(50,dtype=float)
for i in tqdm.tqdm_notebook(range(50)):
Km=KMeans(n_clusters=5+i)
Km.fit_predict(f_ones_2000)
inertia[i]=Km.inertia_
plt.plot(inertia)
Out[111]:
In [108]:
comps=[s250[i].composition for i in range(2000)]
df_ones=pd.DataFrame({"phi_ones":f_ones_2000})
df_ones["cluster"]=clust
df_ones["Composition"]=comps
df_sorted=df_ones.sort("cluster")
sorted_f_ones=df_sorted['phi_ones'].values
euclid=np.array([np.sqrt(np.dot(sorted_f_ones[i],sorted_f_ones[i])+np.dot(sorted_f_ones[j],sorted_f_ones[j])-2*np.dot(sorted_f_ones[i],sorted_f_ones[j])) for i in tqdm.tqdm_notebook(range(2000)) for j in range(2000)]).reshape(2000,2000)
plt.figure(figsize=(12,12))
plt.imshow(euclid)
plt.colorbar()
Out[108]:
In [136]:
Km=KMeans(n_clusters=12)
clust=Km.fit_predict(f_ones_2000)
comps=[s250[i].composition.formula for i in range(2000)]
df_ones=pd.DataFrame({"phi_ones":f_ones_2000})
df_ones["cluster"]=clust
df_ones["Composition"]=comps
df_sorted=df_ones.sort("cluster")
df_sorted.set_index(np.arange(2000))
sorted_f_ones=df_sorted['phi_ones'].values
euclid=np.array([np.sqrt(np.dot(sorted_f_ones[i],sorted_f_ones[i])+np.dot(sorted_f_ones[j],sorted_f_ones[j])-2*np.dot(sorted_f_ones[i],sorted_f_ones[j])) for i in tqdm.tqdm_notebook(range(2000)) for j in range(2000)]).reshape(2000,2000)
plt.figure(figsize=(12,12))
plt.imshow(euclid)
plt.colorbar()
Out[136]: