设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2660|回复: 0

数据挖掘之产品预测任务

[复制链接]

20

主题

162

金钱

264

积分

入门用户

发表于 2019-8-8 14:43:26 | 显示全部楼层 |阅读模式

一、实验目的
1. 学会利用决策树、KNN与Navie Bayes完成预测任务
二、实验工具
1. Anaconda
2. sklearn
3. Pandas
三、实验内容
产品预测任务
1.任务描述
本次比赛主要是一个对进出口交易记录数据进行产品判别的任务。本次任务有 19046 条数据记录,其中的 18279 条记录是有类别属性的,可作为分析时的训练样本,而任务目标是对 767 条测试数据(即验证样本)进行判别(本实验采用其中的20个样本)。

1) 数据描述
已分类的训练样本提供在比赛题目下 Excel 附件中的 cck_train 表中,训练样本的详情如下,其中,表格中的每条记录包含7个字段。
1.jpg
未分类的验证样本提供在比赛题目下 Excel 附件中的 cck_test 表中。验证样本的信息如下,表格中的每条记录包含 5 个已知属性字段,其中表中属性内容与 cck_表 略有不同
2.jpg

2) 属性描述
本次任务提供的样本数据包含 7 个基础属性字段,其中有 2 个连续型数值类属性字段为:Quality and Price,5 个离散型数值类属性字段为:Enterprise(560)、Destination(144)、Origin(131)、Custom(20)、Product(364)。各字段具体含义如下:
Quality:表示每条交易记录中交易产品的数量,可忽略单位。
Price:表示每条交易记录中交易产品的平均价格,单位为元。
Enterprise(560):表示每条交易记录中交易产品的供应商编码。
Destination(144):表示每条交易记录中交易产品的买方国家编码。
Origin(131): 表示每条交易记录中交易产品的原产地编码。
Custom(20): 表示每条交易记录中交易产品通关海关编码。
Product(364): 表示每条交易记录中交易产品的名称类别。
在验证样本中的字段 Product1 ,Product2 ,Product3 为参赛者进行分类预测后概率由大到小排名
前 3 名的产品类别,字段编码同 Product 字段。

3) 样本描述
不论是在训练样本还是验证样本中,我们可以看到,一条交易记录数据包括 Enterprise(560)、
Destination(144)、Origin(131)、Custom(20)、Product(364)5 个基本属性字段,括
号内为每个属性下包含的所有特征值个数,而这些属性将是我们学习训练样本得到分类模型的关
键,根据一条交易记录的每个属性的特征值的出现情况,利用模型对验证样本的交易产品类别进
行分类预测。

2. 结果评价
在整个验证样本预测结果中,参赛者在第 i 条记录的产品类别预测值与实际类别完全一致时可得
10 分,即预测结果字段 Product1 为实际产品类别。产品类别预测值与实际类别不一致时,其中
如果预测结果 Product2 为实际产品类别的,参赛者在该条验证样本可得 2 分;如果预测结果
Product3 为实际产品类别的,该条验证样本可得 1 分,对整个 767 条验证样本预测结果加总得
到一个总分 S:(本实验采用期中的20个样本)。
取 F=S/P*100%
(其中 P 为所有验证样本类别预测结果均与实际结果相一致的总成绩,即 P=7670)为每位参与者的模型评价得分,各位参与者模型得分由高到低依次排列。


四、实验要求
1. 写出摘要,即简要阐述任务的完成情况。
在处理数据时遇到了些麻烦,使用LabelEncoder对字符型数据进行了编码转换得以解决。通过对DataFrame的操作,最终实现了数据的处理,并将预测的产品类别保存在了excel表格中。

2. 给出任务完成方案。可以用框图等方式。
使用sklearn的KNeighborsClassifier()函数进行knn预测。

3. 给出具体的任务实现步骤。
1.导入excel中的数据
3.jpg
2.将数据划分为X_train 和结果Product:y_train
4.jpg
5.jpg
6.jpg
4.声明knn训练模型
7.jpg
结果却出现了类型转换错误: 8.jpg
解决方案:LabelEncoder 用 0 到 n_classes-1 之间的值对标签进行编码
9.jpg
使用代码:
  1. for col in X_test.columns.values: if X_test [ col ] .dtypes=='object': le.fit(X_test[col]) X_test[col]=le.transform(X_test[col])
复制代码

报错:
10.jpg
经测试,Enterprise被识别成float,但事实上数据中夹杂着ABPE等字符
于是进行了类型转换处理
11.jpg
编码后的数据效果如下图:
12.jpg
最终得出预测结果:
13.jpg
导入给定的测试样本,并对前20个数据进行预测判断Product
14.jpg
knn.predict得到预测结果
15.jpg
4. 给出任务完成结果,结果写到实验报告系统中,用表格的形式。
16.jpg
17.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表