The Road to Machine Learning: Python K-Nearest Neighbor Regression to Predict Boston Housing Prices

 

python3 learn machine learning api

Use two k-nearest neighbor regression models, average k-nearest neighbor regression and distance-weighted k-nearest neighbor regression, for prediction.

git: https://github.com/linyi0604/MachineLearning

Code:

 1 from sklearn.datasets import load_boston
 2 from sklearn.cross_validation import train_test_split
 3 from sklearn.preprocessing import StandardScaler
 4 from sklearn.neighbors import KNeighborsRegressor
 5 from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error
 6 import numpy as np
 7 
 8 # 1 准备数据
 9 # 读取波士顿地区房价信息
10 boston = load_boston()
11  #View the data description 
12  # print(boston.DESCR) # A total of 506 pieces of housing price information in the Boston area, each with 13 numerical feature descriptions and target house prices 
13  #Check the difference between the data 14 # print("Maximum house price:", np .max(boston.target)) # 50 15 # print("Minimum house price:",np.min(boston.target)) # 5 16 # print("Average house price:", np.mean(boston.target)) # 22.532806324110677 17 18 x = boston.data
 19 y = boston.target
 20 21 # 2 split training data and test data 22 # randomly sample 25% as test 75% as training 23 x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=33
 
 
 
 
 
 
 
)
 24  
25  
26  # 3 Normalize training data and test data 
27 ss_x = StandardScaler()
 28 x_train = ss_x.fit_transform(x_train)
 29 x_test = ss_x.transform(x_test)
 30  
31 ss_y = StandardScaler()
 32 y_train = ss_y. fit_transform(y_train.reshape(-1, 1 ))
 33 y_test = ss_y.transform(y_test.reshape(-1, 1 ))
 34  
35  # 4 Two kinds of k-nearest neighbor regression line learning and prediction 
36  # Initialize k-nearest neighbor regression model using Average regression for prediction 
37 uni_knr = KNeighborsRegressor(weights= " uniform " )
38  #training 39 uni_knr.fit 
(x_train, y_train)
 40 #predicting and saving the prediction results 41 uni_knr_y_predict = uni_knr.predict(x_test)
 42 43 # multi-initialization k-nearest neighbor regression model using distance weighted regression 44 dis_knr = KNeighborsRegressor(weights= " distance " )
 45 #training 46 dis_knr.fit (x_train, y_train)
 47 #predicting and saving prediction results 48 dis_knr_y_predict = dis_knr.predict (x_test)
 49 50 # 5 model evaluation 51 #average k-nearest neighbor regression model evaluation 52 print (  
 
 
 
  
 
 
 
 " The default evaluation value of the average k-nearest neighbor regression is: " , uni_knr.score(x_test, y_test))
 53  print ( " The R_squared value of the average k-nearest neighbor regression is: " , r2_score(y_test, uni_knr_y_predict))
 54  print ( "The average k The mean squared error of nearest neighbor regression is: " , mean_squared_error(ss_y.inverse_transform(y_test),
 55                                                ss_y.inverse_transform(uni_knr_y_predict)))
 56  print ( " The mean absolute error of mean k nearest neighbor regression is: " , mean_absolute_error(ss_y.inverse_transform( y_test),
 57                                                   ss_y.inverse_transform(uni_knr_y_predict)))
 58 # Distance-weighted k-nearest neighbor regression model evaluation 
59  print ( " The default evaluation value of distance-weighted k-nearest neighbor regression is: " , dis_knr.score(x_test, y_test))
 60  print ( " The R_squared value of distance-weighted k-nearest neighbor regression is: " , r2_score(y_test, dis_knr_y_predict))
 61  print ( " The mean squared error of the distance-weighted k-nearest neighbor regression is: " , mean_squared_error(ss_y.inverse_transform(y_test),
 62                                             ss_y.inverse_transform(dis_knr_y_predict)))
 63  print ( "The distance-weighted k-nearest neighbor The mean absolute error of the regression is: " , mean_absolute_error(ss_y.inverse_transform(y_test),
 64                                               ss_y.inverse_transform(dis_knr_y_predict)))
 65  
66  ''' 
67  Mean k-nearest neighbor regression default evaluation value: 0.6903454564606561
 68  Mean k-nearest neighbor regression R_squared value: 0.6903454564606561
 69 Mean  squared error of mean k-nearest neighbor regression: 24.0110141
 The mean absolute error of k-nearest neighbor regression is: 2.9680314960629928
 71 The default evaluation value of distance-weighted k-nearest neighbor regression is: 0.7197589970156353
 72 The R_squared value of distance-weighted k-nearest neighbor regression is: 0.7197589970156353
 73 The mean squared error of distance-weighted k-nearest neighbor regression is:
 21.73025604 72 The mean absolute error of weighted k-nearest neighbor regression is: 2.8050568785108005
 75 '''      

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325029200&siteId=291194637