当前位置:   article > 正文

使用Python机器学习预测汽车价格!

python 训练“微型车”售价预测模型

462f6102331e18b49979b20ed961db74.gif

大家好,我是小F~

前不久湖北推出大幅购车优惠政策,开启了“史上最强”的汽车补贴。

一辆21万的B级燃油车最高降价9万,只需要12万多点就能拿下来了。

也是带动了其他汽车厂商的降价,超30个汽车品牌加入降价大军。

对于汽车价格,Python也是可以应用上的,比如基于Python机器学习的汽车价格预测

当然上面这种大降价的情况应该是不考虑在内的~

汽车价格取决于很多因素,比如汽车品牌的知名度、汽车的功能(有无辅助驾驶或泊车等功能)、发动机功率和行驶里程等等。

本期小F就通过Python机器学习,来训练一个简单的汽车价格预测模型

汽车价格预测是机器学习的主要研究领域之一,主要基于金融和市场营销领域。

对汽车价格有较大影响的一些因素包含:

1. 品牌

2. 车型外观

3. 发动机及功率

4. 里程

5. 安全性能

6. GPS等

如果忽略汽车的品牌,汽车制造商主要是根据汽车可以给客户提供的功能来定价的。

之后,品牌可能会根据其品牌价值进行溢价。

但最重要的因素则是一辆车能给你的生活增添什么价值

下面小F就带大家完成这个使用Python编程语言通过机器学习训练汽车价格预测模型的任务。

用来训练汽车价格预测模型的数据集是从Kaggle下载的。

9ee74b11d3af9a81f9cccb39f9f590e9.png

它包含了影响汽车价格所有主要特征的数据。

先导入相关的Python库,通过Pandas读取数据集。

  1. import numpy as np
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. import seaborn as sns
  5. from sklearn.model_selection import train_test_split
  6. from sklearn.tree import DecisionTreeRegressor
  7. data = pd.read_csv("CarPrice.csv")
  8. print(data.head())

显示打印前五行的数据。

a565057af52383f57ac36e54720df04f.png

这个数据集有26列,在下一步操作之前,检查数据集是否包含空值。

  1. # 检查空值
  2. print(data.isnull().sum())

发现并没有空值存在。

905b44b6a02f879b127c0b56777d3eb2.png

包含车名、燃料类型、车长、车宽、车高、发动机功率、转速等信息。

下面继续来探索这个数据集,以了解我们正在处理的数据情况。

  1. # 数据信息
  2. print(data.info())

有205行数据,每一列的数据格式,空值情况。

34537c9e8fbf892b1875cf1f7568644f.png

一共有三种数据类型,float、int、object。

  1. # 数据描述
  2. print(data.describe())

获取到每一列的计数、平均值等情况。

c12a9be5c7dacad523f995705928c028.png

对汽车名称进行去重操作,看看一共有多少种车型。

  1. # 去重
  2. print(data.CarName.unique())

发现了不少熟悉的品牌,比如奥迪、宝马、马自达、丰田、本田、沃尔沃等。

36e80f14aedbe14debbd3ab8f63f6ac2.png

这个数据集中的price列是我们需要预测其值的列,来看一下价格这一列数据的分布情况。

  1. # 设置样式
  2. sns.set_style("whitegrid")
  3. plt.figure(figsize=(105))
  4. sns.distplot(data.price)
  5. # 显示
  6. plt.show()

可以看出汽车价格主要分布在10000美元左右。

4b08d2ee9d27c3565c41fa9d4b917cee.png

现在让我们分析这个数据集所有特征之间的相关性

  1. # 相关性
  2. print(data.corr())

打印结果。

1e4103e13ca2ec54f8cd41d1d338a557.png

制作图表进行显示查看。

  1. plt.figure(figsize=(105))
  2. correlations = data.corr()
  3. # 设置样式
  4. sns.heatmap(correlations, cmap="coolwarm", annot=True)
  5. # 显示
  6. plt.show()

观察价格这一特征,发现汽车价格受发动机影响最大

33061d0828e04b706fd4fad030423d1e.png

最后,使用决策树回归算法来训练一个汽车价格预测模型。

决策树呈树形结构,是一种基本的回归和分类方法。

将数据分成训练集和测试集,并使用决策树回归算法来训练模型。

  1. # 预测项
  2. predict = "price"
  3. # 原始数据
  4. data = data[["symboling""wheelbase""carlength",
  5.              "carwidth""carheight""curbweight",
  6.              "enginesize""boreratio""stroke",
  7.              "compressionratio""horsepower""peakrpm",
  8.              "citympg""highwaympg""price"]]
  9. # 变量
  10. x = np.array(data.drop([predict], 1))
  11. # 结果
  12. y = np.array(data[predict])
  13. # 分配数据集
  14. xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=0.2)
  15. # 决策树回归算法
  16. model = DecisionTreeRegressor()
  17. # 训练模型
  18. model.fit(xtrain, ytrain)
  19. # 模型预测
  20. predictions = model.predict(xtest)
  21. # 准确性指标
  22. print(model.score(xtest, predictions))

获取到的准确性指标为1.0。

表示该模型在测试集上给出了100%的准确性,有点高...

感兴趣的小伙伴可以输入不同的数据,来进行测试看看。

相关文件及代码都已上传,公众号回复【汽车价格预测】即可获取。

万水千山总是情,点个 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/358013
推荐阅读
相关标签