knn算法实战

  1. 问题描述:探究多元因素对个人收入的影响

假设个人收入和多种因素影响比如

['age','workclass','fnlwgt','education','education-number','marital-status','occupation','relationship','race','sex','capital-gain','capital-loss','hours-per-week','native-country','income']对收入敏感。

问题进一步描述:分析这些数据是否影响收入超过50k

   数学描述:判断多维向量 X=[x1,x2,……xn] 的分类为Y=[y1,y2]其中一个分量

  1. 解决问题:

使用机器学习进行监督

1.采集数据(OpenML

  1. 解决思路
  1. 假定相同收入的人有类似的向量描述特征
  2. 因为是向量,可以描述坐标
  3. 因此可以假定相同收入的向量容易聚集一起
  4. 因此,聚集的向量必然是相邻的
  5. 适用于knn算法
  1. knn的算法简介:

相似度较高的样本,映射到n维空间后,其距离回避相似度较低的样本在距离上更加接近。

KNN,即K近邻算法,K近邻就是K个最近的邻居,当需要预测一个未知样本的时候,就由与该样本最接近的K个邻居来决定。KNN既可以用于分类问题,也可以用于回归问题。当进行分类预测时,使用K个邻居中,类别数量最多(或加权最多)者,作为预测结果。

超参数:K值

  1. 设计算法:
  1. 数据清洗

    清理文件由“?”表示的空缺,进行删除

  1. 离散值的映射编码

   属性有多个特征值,需要进行映射

  1. 建立合理的假设,这里假设数据是聚集的
  2. 确定算法knn算法,
  3. 拆分训练集和测试集
  4. 计算正确率
  1. 具体编码:

导入库:

读取文件

删除缺省值的所在行

离散值的映射编码

随机划分测试集,训练集

Fit训练数据

测试结果:

随着k值设置增加

可以看出k=2的时候,训练正确率可以为77%。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值