KNN

1、KNN(K近邻算法)

为什么不把所有的数据用来做测试集,而是选75%的作为测试集,25%的作为训练集(这个问题之前没有考虑)

全部数据作为测试集,训练出的模型基本拟合所有数据的。如果分一部分数据出来作为训练集,这部分数据没有输入模型,这样会更加精确的评估训练出来的分类器的准确率

相当于拿100%的数据训练出分类器,然后再从拿一部分数据问模型是否认识?当然是认识的

 

KNN可以做回归和分类

回归:自己能将房价预测的案例讲明白

分类:

选取三角附近的几个图形,少数服从多数,确定出三角是属于圆圈类的,而不是属于正方形类

 

欧式距离:需要预测房价的房间个数与数据集中房间个数差值,然后取差值为0的前五个数据对应的房价,然后求平均值

 

过程:选择K个近邻

将新数据与原始数据集中的每一个数据进行比较,然后对距离进行排序,选择距离较小的前K组数据的平均值作为新数据的预测值

交叉验证:更好选择参数的方法,如KNN模型选择多少个K值的问题

注:KMEANS是先选择K个质心

 

实例

1000条房子数据,来了一条新的数据,需要预测出该房子的价格?

先将特征相减,按照特征差值排序,取前5条数据房价的平均值(一个特征能理解,要是特征有多个,多个差值怎么排序?)

单一特征:直接计算特征差值

多个特征应该是:先将特征标准化,再计算欧式距离,再排序

 

特征相减排序过程中,新来的数据与1000条数据的每一条都进行了比较,如果要是数据很大怎么办?

KNN不需要训练模型,但数据很大的情况预测速度很慢

 

RMSE均方根误差

均方根误差RMSE:用来衡量回归模型的好坏,反映预测值和真实值的偏离程度

均:除n,求均值

方:数据值与预测值差值平方

根:开方

如果存在个别偏离程度非常大的离群点是,即使离群点(噪声点)数量非常少,也会让RMSE指标变的很差

对于离群点,已知模型的预测值和离群点值差肯定很大,导致计算出的均方根误差很大

 

标准化和归一化

标准化:数据减去均值,让数据关于y轴对称,数据减数据均值比标准差(标准差是自己指定的,标准差是方差的平方根)

标准化后的数据均值为0

归一化:将数据压缩到0-1的范围,在计算均方根误差rmse时,不会让较大的数据起到较大影响,也不会让较小数据起到的影响很小。数据减最小值比最大值和最大值和最小值的差值

消除数据特征之间量纲影响

归一化之前数据对应的目标函数对应的等值图为椭圆,导致在纵轴上数据更新的速度大于横轴,需要较多的迭代次数才能找到最优解

归一化后数据对应的目标函数对应的等值图为圆形,横纵轴的数据更新速度变得更为一致,容易更快的通过梯度下降找到最优解

 

样本中各数据与样本平均数的差的平方和的平均数叫做样本方差;样本方差的算术平方根叫做样本标准差.样本方差和样本标准差都是衡量一个样本波动大小的量,样本方差或样本标准差越大,样本数据的波动就越大

 

sklearn库:(官方网站有很多例子,最流行的库)

分类、回归、聚类、降维、模型选择、预处理等模块

sklearn中KNN默认的K值为5,也可以自己传入K值

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值