计算机毕设:使用特征因子分析和逻辑回归和决策树构建手机价格预测模型(博文底部vx获取)

1.读取数据与可视化

1.1 读数据表

手机定价数据集共有2000个样本,每个样本有21个特征,该数据集包含了一系列手机的型号,及其各种配置信息和价格范围,其中价格范围有四个取值,0表示廉价,1表示价格一般,2表示价格昂贵,3表示价格十分昂贵。本案例将利用机器学习算法来预测一个特定配置手机的售价范围。

battery_powerblueclock_speeddual_simfcfour_gint_memorym_depmobile_wtn_corespcpx_heightpx_widthramsc_hsc_wtalk_timethree_gtouch_screenwifiprice_range
84202.201070.61882220756254997190011
102110.5101530.7136369051988263117371102
56310.5121410.91455612631716260311291102
61512.5000100.813169121617862769168111002
182111.20131440.614121412081212141182151101

1.2 缺失值检测

首先,检查数据集中的数据是否存在缺失情况。

数据缺失值情况:

列名缺失值数量
battery_power0
blue0
clock_speed0
dual_sim0
fc0
four_g0
int_memory0
m_dep0
mobile_wt0
n_cores0

过滤的缺失值行数:0

结果显示数据集不存在缺失值。

1.3 各价位手机数量柱状图

下面进行探索性分析,首先查看建模目标字段price_range,有四个取值,分别为0,1,2,3,代表四种不同的手机价格区间等级,下面绘制柱状图分析不同价格区间手机数量的差异。

根据柱状图可以看出四个手机价格区间样本数量分布非常平均,不存在类别不平衡的现象。

1.4 是否支持双卡双待与价格

下面绘制分组柱状图查看是否支持双卡双待和不同价格范围下手机型号数量。

根据柱状图可以看出支持双卡双待功能与否和不同手机价格范围下手机型号数量几乎是相同的。

1.5 是否支持触屏与价格

下面绘制分组柱状图查看是否支持触屏和不同价格范围下手机型号数量。

由上图可知,不支持触屏的手机类型中,价格范围高的手机类型数量较多;相反,支持触屏的手机类型中,价格范围低的手机类型数量较多。

1.6 是否支持wifi与价格

下面绘制分组柱状图查看是否支持WiFi和不同价格范围下手机型号数量。

从总体看,支持WiFi的手机型号数量较多。

2.模型建立

2.1 训练/测试集划分

采用分层抽样的方式,按1:4划分测试集与训练集合,分层列为price_range,划分后测试集有400个样本,训练集有1600个样本。

2.2 逻辑回归

建立逻辑回归模型,因为不存在数据不均衡情况,所以将类别权重参数设置为None

系数

battery_powerblueclock_speeddual_simfcfour_gint_memorym_depmobile_wtn_corespcpx_heightpx_widthramsc_hsc_wtalk_timethree_gtouch_screenwifi
-0.0012330.0062890.0262470.0083010.0046290.0073060.0288950.0048240.0401930.0702160.058744-0.0018980.000413-0.0049530.1209520.0445330.0750470.0097420.00980.008051
-0.0000420.0026720.0001750.0047620.0122120.003050.0105260.0048930.011462-0.0068750.012211-0.0002380.000263-0.0007720.03372-0.0046030.0394250.0020490.0042720.001893
0.000438-0.000291-0.000501-0.0032290.005218-0.006023-0.013776-0.002497-0.0101770.01005-0.0203540.000626-0.0002470.001801-0.047554-0.013716-0.0272420.000348-0.006768-0.002654
0.000837-0.008671-0.025921-0.009834-0.022058-0.004333-0.025645-0.007219-0.041478-0.07339-0.0506010.00151-0.000430.003925-0.107118-0.026214-0.08723-0.012138-0.007303-0.00729

2.3 逻辑回归模型预测

使用训练好的逻辑回归模型对测试集数据进行预测,得到预测结果label_predict

battery_powerblueclock_speeddual_simfcfour_gint_memorym_depmobile_wtn_corespcpx_heightpx_widthramsc_hsc_wtalk_timethree_gtouch_screenwifiprice_rangeprice_range_predict
84202.201070.618822207562549971900112
102110.5101530.71363690519882631173711022
56310.5121410.914556126317162603112911022
61512.5000100.8131691216178627691681110023
182111.20131440.6141214120812121411821511011

2.4 逻辑回归模型评估

进行模型评估,得到分类报告、混淆矩阵和ROC曲线。

分类报告(classification report)

标签精确率(Precision)召回率(Recall)F1值(F1-score)
00.870.840.85
10.640.640.64
20.560.540.55
30.740.790.76
accuracy0.70.70.7
macro avg0.70.70.7
weighted avg0.70.70.7

混淆矩阵(confusion matrix)

由于样本各类数量比较平均,模型评价结果具有参考价值。 逻辑回归模型的准确率为0.7,精确率为0.7,召回率为0.7,F1值为0.7。分类效果不是很理想,因此尝试选取其他算法来提升分类效果。

2.5 分类决策树

使用决策树算法训练手机定价预测模型。

特征重要度

决策树模型可视化

根据特征重要性条形图,发现模型最重要的特征为ram(随机存取储存器内存)。

2.6 决策树模型预测

使用训练好的决策树分类器对测试集数据进行预测,得到预测结果label_predict

battery_powerblueclock_speeddual_simfcfour_gint_memorym_depmobile_wtn_corespcpx_heightpx_widthramsc_hsc_wtalk_timethree_gtouch_screenwifiprice_rangeprice_range_predict
84202.201070.618822207562549971900111
102110.5101530.71363690519882631173711022
56310.5121410.914556126317162603112911022
61512.5000100.8131691216178627691681110022
182111.20131440.6141214120812121411821511011

2.7 决策树模型评估

进行模型评估,得到混淆矩阵分类报告和ROC曲线。

分类报告(classification report)

标签精确率(Precision)召回率(Recall)F1值(F1-score)
00.940.940.94
10.780.90.84
20.870.70.78
30.890.930.91
accuracy0.870.870.87
macro avg0.870.870.87
weighted avg0.870.870.87

混淆矩阵(confusion matrix)

发现测试集上预测效果比逻辑回归效果好,总体的准确率达到0.87,精确率为0.87,召回率0.87,F1值为0.87。并且对第2类预测的准确率也有提高,相比较逻辑回归,决策树更适合该模型。

总结

根据上述分析,该手机数据集更适合决策树模型,总体的准确率达到0.87,精确率为0.87,召回率0.87,F1值为0.87,其中rambattery_powerpx_heightpx_width对手机价格的影响比较大。

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员奇奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值