欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python实现K近邻回归,采用等权重和不等权重的方法

程序员文章站 2023-11-16 12:34:10
如下所示: from sklearn.datasets import load_boston boston = load_boston() fro...

如下所示:

from sklearn.datasets import load_boston
 
boston = load_boston()
 
from sklearn.cross_validation import train_test_split
 
import numpy as np;
 
x = boston.data
y = boston.target
 
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state = 33, test_size = 0.25)
 
print 'the max target value is: ', np.max(boston.target)
print 'the min target value is: ', np.min(boston.target)
print 'the average terget value is: ', np.mean(boston.target)
 
from sklearn.preprocessing import standardscaler
 
ss_x = standardscaler()
ss_y = standardscaler()
 
x_train = ss_x.fit_transform(x_train)
x_test = ss_x.transform(x_test)
y_train = ss_y.fit_transform(y_train)
y_test = ss_y.transform(y_test)
 
from sklearn.neighbors import kneighborsregressor
 
uni_knr = kneighborsregressor(weights = 'uniform')
uni_knr.fit(x_train, y_train)
uni_knr_y_predict = uni_knr.predict(x_test)
 
dis_knr = kneighborsregressor(weights = 'distance')
dis_knr.fit(x_train, y_train)
dis_knr_y_predict = dis_knr.predict(x_test)
 
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error
 
print 'r-squared value of uniform weights kneighorregressor is: ', uni_knr.score(x_test, y_test)
print 'the mean squared error of uniform weights kneighorregressor is: ', mean_squared_error(ss_y.inverse_transform(y_test), ss_y.inverse_transform(uni_knr_y_predict))
print 'the mean absolute error of uniform weights kneighorregressor is: ', mean_absolute_error(ss_y.inverse_transform(y_test), ss_y.inverse_transform(uni_knr_y_predict))
 
print 'r-squared of distance weights kneighorregressor is: ', dis_knr.score(x_test, y_test)
print 'the value of mean squared error of distance weights kneighorregressor is: ', mean_squared_error(ss_y.inverse_transform(y_test), ss_y.inverse_transform(dis_knr_y_predict))
print 'the value of mean ssbsolute error of distance weights kneighorregressor is: ', mean_absolute_error(ss_y.inverse_transform(y_test), ss_y.inverse_transform(dis_knr_y_predict))

以上这篇python实现k近邻回归,采用等权重和不等权重的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。