- 问题描述:探究多元因素对个人收入的影响
假设个人收入和多种因素影响比如
['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.采集数据(OpenML)
- 解决思路
- 假定相同收入的人有类似的向量描述特征
- 因为是向量,可以描述坐标
- 因此可以假定相同收入的向量容易聚集一起
- 因此,聚集的向量必然是相邻的
- 适用于knn算法
- knn的算法简介:
相似度较高的样本,映射到n维空间后,其距离回避相似度较低的样本在距离上更加接近。
KNN,即K近邻算法,K近邻就是K个最近的邻居,当需要预测一个未知样本的时候,就由与该样本最接近的K个邻居来决定。KNN既可以用于分类问题,也可以用于回归问题。当进行分类预测时,使用K个邻居中,类别数量最多(或加权最多)者,作为预测结果。
超参数:K值
- 设计算法:
- 数据清洗
清理文件由“?”表示的空缺,进行删除
- 离散值的映射编码
属性有多个特征值,需要进行映射
- 建立合理的假设,这里假设数据是聚集的
- 确定算法knn算法,
- 拆分训练集和测试集
- 计算正确率
- 具体编码:
导入库:
读取文件
删除缺省值的所在行
离散值的映射编码
随机划分测试集,训练集
Fit训练数据
测试结果:
随着k值设置增加
可以看出k=2的时候,训练正确率可以为77%。