机器学习 day01(五)

knn的回归

回归用于对趋势的预测

k-近邻的回归模型:

1)求未知样本点到所有的已知样本点的距离
2)对这些距离进行从小到大排序
3)取前k个距离对应的标签值
4)对上一步取出的标签值求平均数

模型导入

from sklearn.neighbors import KNeighborsRegressor 
# 这个是k近邻的回归模型

一. 简单实例

薪资和年龄,学历,工作年限有关
学历1代表小学,学历2代表初中,学历3代表高中,学历4代表专科,学历5代表本科,学历6代表研究生,学历7代表博士生
根据上面的特征预测小波和小强的薪资

    姓名  年龄  学历  工作年限   薪资
    小明   20   5     1         7000
    小王   25   4     3         8000
    小张   28   6     4         13000
    小黄   21   3     3         5000
    小蓝   26   7     1         11000
    小张   30   7     5         20000
    小谢   27   5     3         10000
    小白   26   6     2         13000
    
    
    小波   18   5     5         ?
    小强   24   7     5         ?
1. 训练模型并预测
  1. 使用数组的方式创建特征和标签
    在这里插入图片描述
  1. 创建模型并预测
    在这里插入图片描述
    预测出小波的工资为8800/月,小强工资为11100/月

然后可以发现一个问题,年龄的影响比学历的影响大,小强工资过低,根据学历和工作年限,工资应该更高

所以要对数据进行平衡

2. 归一化

使用归一化,让数据更具有可信度

  1. 对数据进行归一化处理
    在这里插入图片描述
  1. 预测
    在这里插入图片描述

二. 回归曲线的拟合

1. 绘图

导入绘图模块
在这里插入图片描述
创建一个散点图,画一条正弦函数图像
在这里插入图片描述
对这个正弦函数图像加一些干扰,修改一下,使其不那么规则
在这里插入图片描述

2. 拟合上面的点的回归曲线
  1. 训练回归模型
    在这里插入图片描述
  1. 绘制回归曲线
    在这里插入图片描述
    这条红线就是这些散点的规律走势

三. 性能评测

对于回归问题,能够体现其性能的就是预测数据和真实数据之间的数据偏差:经验误差和泛化误差,
而不是准确率、查正率、查全率

3.1 回归问题考察准确率、查正率、查全率,意义不大

举个例子

  1. 导入boston房价数据集
    在这里插入图片描述
  1. 取出特征数据 和 标签数据,
    在这里插入图片描述
    分离测试集与训练集
    在这里插入图片描述
  1. 查看相关性能
    在这里插入图片描述
    泛化性能只有10%多一点,非常低
    所以回归问题考察准确率、查正率、查全率,意义不大
3.2回归问题,性能是预测数据和真实数据之间的数据偏差

对于回归问题,能够体现其性能的就是预测数据和真实数据之间的数据偏差:经验误差和泛化误差

误差:采用两种来评测,即平均绝对误差和均方误差

假设某个样本集有m个数据,真实标签为y1,y2,…,ym;预测值为y1’,y2’,…,ym’

均方误差为:
MSE = ((y1-y1’)**2+(y2-y2’)**2+…+(ym-ym’)**2)/m

平均绝对误差为:
MAE = (|y1-y1’|+|y2-y2’| +…|ym-ym’|)/m

  1. 首先预测特征和预测标签
    在这里插入图片描述
  1. 分别查看经验集、测试集上的平均绝对误差和均方误差
    在这里插入图片描述
    经验集上的均方误差差距有点大,说明这个数据有点过拟合
3.3 回归问题的性能调优
  1. 用网格搜索,来进行参数的调优
    在这里插入图片描述
  1. 查看信息
    在这里插入图片描述
    此时最佳算法的最佳经验准确率和最佳泛化准确率虽然有改善,但还是很低,
    准确率虽然没有特别大的意义但是,可以从侧面反映模型的误差情况,具体情况还要去考察误差分析
    均方误差对比前面的有改善,说明这个模型比前面的模型更优秀,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值