1.问题描述
根据人口普查数据预测某个人收入是否超过5万美元/年,借此可以用来进行一些产品的推广。
2.数据准备与处理
数据集包含14个属性,分别是:年龄、工作类别、final weight、教育、教育数量、婚姻状况、职业、关系、种族、性别、资本收益、资本损失、每周小时数、国籍。其中,年龄、final weight、教育数量、资本收益、资本损失和每周小时数是数值标签,其余是标称标签。
数据集的实例数量为500个,用来测试的数据实例数量为32个。
因为数据集的每一条数据属性太多,为了便于测试和增加准确度,将存在相关性的数据属性保留其中一个属性。例如,教育与教育数量存在正相关,将教育数量摒弃,工作类别与每周小时数存在相关性,将每周小时数舍弃。
该数据集中不存在缺失项,所以不需要进行数据的填充。为使kNN、决策树和朴素贝叶斯三种算法适用该数据集,选择“工作类别”、“教育”、“婚姻状况”、“职业”、“关系”、“种族”、“性别”和“国籍”8个属性的数据用于决策树和朴素贝叶斯的训练;选择“年龄”、“final weight”、“教育数量”、“资本收益”、“资本损失”和“每周小时数”6个属性数据用于kNN的训练。
进行kNN处理时,因为“final weight”的数值比其他属性数值大太多,所以对进行训练的6个属性进行归一化处理: