1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
mesures_names=['v2','v3']
df1=df[['v2','v3']]
df1=(df1-np.mean(df1))/np.std(df1)
angle=np.unique(df['v4'])
longueur_tableau=len(angle)
df[['v1']]=(df[['v1']]-np.mean(df[['v1']]))/np.std(df[['v1']])
Mesure_train,Mesure_test,y_train,y_test=train_test_split(df1,df[['v1']],test_size=0.2,random_state=42)
y=[]
z=[]
for i in range(len(angle)):
k=[]
y_pred_train=[]
i_angle= df['v4'] == angle[i]
x=Mesure_train[i_angle].as_matrix().astype(np.float)
k=y_train[['v1']][i_angle].as_matrix().astype(np.float)
y.append(k)
Kneighbor_regression=KNeighborsRegressor(n_neighbors=10,weights='distance')
Kneighbor_regression.fit(x,k)
y_pred_train=Kneighbor_regression.predict(x)
z.append(y_pred_train)
score_train=np.round(r2_score(k,y_pred_train),4)*100
print "pour l'angle %s nous avons un pouvoir predictif de %s"%(angle[i],score_train)
y_pred_test=Kneighbor_regression.predict(Mesure_test[i_angle])
score_test=np.round(r2_score(Mesure_test[i_angle],y_pred_test),4)*100
print "pour l'angle %s nous avons un pouvoir predictif de %s"%(angle[i],score_train)
print "pour l'angle %s nous avons un pouvoir predictif de %s"%(angle[i],score_test)
for xe, ye,ze in zip(angle,y,z):
plt.xticks(angle,rotation=45)
plt.scatter([xe]*len(ye),ye,c='b', label='data')
plt.scatter([xe]*len(ze),ze,c='r',label="prediction") |
Partager