美文网首页机器学习读书笔记
2.1.2.3K近邻(回归)

2.1.2.3K近邻(回归)

作者: idatadesign | 来源:发表于2017-11-19 21:25 被阅读166次

模型介绍:在2.1.1.4K近邻(分类)中提到了这类模型不需要训练参数的特点。在回归任务中,K近邻(回归)模型同样只是借助周围K个最近训练样本的目标数值,对待测样本的回归值进行决策。自然,也衍生出衡量待测样本回归值的不同方式,即到底是对K个近邻目标数值使用普通的算术平均算法,还是同时考虑距离的差异进行加权平均。因此,本节也初始化不同配置的K近邻(回归)模型来比较回归性能的差异。

初始
from sklearn.datasets import load_boston
#从读取房价数据存储在变量boston中。
boston=load_boston()
#输出数据描述
print(boston.DESCR)

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,test_size=0.25,random_state=33)

from sklearn.preprocessing import StandardScaler
#分别初始化对特征和目标值的标准化器
ss_X=StandardScaler()
ss_y=StandardScaler()

#分别对训练和测试数据的特征以及目标值进行标准化处理
X_train=ss_X.fit_transform(X_train)
X_test=ss_X.fit_transform(X_test)
y_train=ss_y.fit_transform(y_train)
y_test=ss_y.fit_transform(y_test)
使用两种不同配置的K近邻回归模型对美国波士顿房价数据进行回归预测
from sklearn.neighbors import KNeighborsRegressor

#初始化K近邻回归器,并且调整配置,使得预测的方式为平均回归:weights='uniform'。
uni_knr=KNeighborsRegressor(weights='uniform')
uni_knr.fit(X_train,y_train)
uni_knr_y_predict=uni_knr.predict(X_test)

#初始化K近邻回归器,并且调整配置,使得预测的方式为根据距离加权回归:weights='distance'。
dis_knr=KNeighborsRegressor(weights='distance')
dis_knr.fit(X_train,y_train)
dis_knr_y_predict=dis_knr.predict(X_test)
使用两种不同配置的K近邻回归模型对美国波士顿房价数据进行预测性能的评估
from sklearn.metrics import r2_score,mean_absolute_error,mean_squared_error

print('R-squared value of uniform_weighted KNeighborsRegression:',uni_knr.score(X_test,y_test))
print('The mean squared error of distance-weighted KNeighborsRegression:',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(uni_knr_y_predict)))
print('The mean absolute error of distance-weighted KNeighborsRegression:',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(uni_knr_y_predict)))

R-squared value of uniform_weighted KNeighborsRegression: 0.651600223378
The mean squared error of distance-weighted KNeighborsRegression: 27.0153697046
The mean absolute error of distance-weighted KNeighborsRegression: 3.28338154935

print('R-squared value of uniform_weighted KNeighborsRegression:',dis_knr.score(X_test,y_test))
print('The mean squared error of distance-weighted KNeighborsRegression:',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(dis_knr_y_predict)))
print('The mean absolute error of distance-weighted KNeighborsRegression:',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(dis_knr_y_predict)))

R-squared value of uniform_weighted KNeighborsRegression: 0.672625483305
The mean squared error of distance-weighted KNeighborsRegression: 25.3850438313
The mean absolute error of distance-weighted KNeighborsRegression: 3.17237179349

特点分析

K近邻(回归)与K近邻(分类)一样,均属于无参数模型,同样没有参数训练的过程。但是由于其模型的计算方法非常直观,因此深受广大初学者的喜爱。本节讨论了两种根据数据样本的相似程度预测回归值的方法,并且验证采用K近邻加权平均的回归策略可以获得较高的模型性能,供读者参考。

相关文章

  • 2.1.2.3K近邻(回归)

    模型介绍:在2.1.1.4K近邻(分类)中提到了这类模型不需要训练参数的特点。在回归任务中,K近邻(回归)模型同样...

  • 统计学习方法之kNN算法

    k 近邻是什么 k 近邻法是机器学习中最基本的分类和回归方法,也称为kNN算法。通常k近邻法用于分类问题。k近邻法...

  • 机器学习开始了

    监督学习开始 线性回归理论,k近邻算法

  • KNN算法及算法实现

    K近邻法 k近邻(k-nearest neighbor,k-NN)十一中基本分类与回归方法,k近邻法假设给定一个训...

  • K近邻

    一、模型 1.1概念 k-近邻算法是一种基本分类与回归方法,我们这里只讨论分类问题中的 k-近邻算法。k-近邻算法...

  • 机器学习算法开始页

    接下来总结机器学习算法: 线性回归 逻辑回归 决策树 K近邻 SVM 组合方法:Boosting,Bagging,...

  • K 近邻算法

    一、K 近邻算法 1、分类 考虑任意个(K 个)邻居,采用“投票法”来指定标签。 2、回归 多个近邻时候,预测结果...

  • 算法笔记(5)-K最近邻算法及python代码实现

    K最近邻算法既可以用于分类又可以用于回归。 K最近邻(k-Nearest Neighbor,KNN)算法分类的基本...

  • 统计机器学习-k近邻法

    k近邻法既可以用于分类,也可以用于回归,这里只讨论分类的k近邻法。k近邻法的思路是:给定一个输入,在训练集中找出个...

  • k近邻模型(KNN)及python实现

    1. k近邻模型 k 近邻法,k-nearest neighbor, k-NN,是一种基本的分类与回归的算法。其三...

网友评论

    本文标题:2.1.2.3K近邻(回归)

    本文链接:https://www.haomeiwen.com/subject/egupvxtx.html