-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathknnregression.py
More file actions
38 lines (26 loc) · 920 Bytes
/
knnregression.py
File metadata and controls
38 lines (26 loc) · 920 Bytes
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
35
36
import numpy as np
import time
from sklearn import neighbors
edata=np.loadtxt(open('../expDataNew/data_rt_rr_statwosysdsk.txt','rb'),delimiter=',')
train_size=6160
X = edata[:,1:]
y = edata[:,0]
trX=X[:train_size]
trY=np.array(y[:train_size])
tstX=X[train_size:]
tstY=np.array(y[train_size:])
###############################################################################
# Fit regression model
n_neighbors = 5 # knn parameter
##for i, weights in enumerate(['uniform', 'distance']): can choose weight function here
knn = neighbors.KNeighborsRegressor(n_neighbors, weights='distance')
st=time.time()
knn.fit(trX, trY)
el=time.time()-st
print "KNN regression training time for %d sec examples is %0.3f"%(train_size,el)
tstY_ = np.array(knn.predict(tstX))
err=abs(tstY-tstY_)/abs(tstY)
print sum(err)/len(err)*100
trY_ = np.array(knn.predict(trX))
err=abs(trY-trY_)/abs(trY)
print sum(err)/float(len(err))*100