1.Python数据分析项目——二手车价格预测

这篇具有很好参考价值的文章主要介绍了1.Python数据分析项目——二手车价格预测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.总结

流程 具体操作
基本查看 查看缺失值、查看重复值、查看数值类型
预处理 缺失值处理(确定是否处理后,使用筛选方式删除)拆分数据 、标签的特征处理(处理成0/1格式)、特征工程(one-hot编码)
数据分析 groupby分组求最值数据、seaborn可视化
预测 拆分数据集、建立模型、训练模型、预测、评估模型

数量查看:条形图
占比查看:饼图
数据分区分布查看:概率密度函数图

2.数据预处理

2.1 导入数据集与库并基本查看数据

import pandas as  pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

dataset = pd.read_csv('data.csv')

2.2 数据的基本查看

# 整体查看:tag标签中数据需要拆分、并且存在缺失值
dataset.head()

# 对数值类型的变量进行查看
dataset.describe()

# 查看缺失值数量:缺失值不多,可以直接删了
dataset[dataset['tag'].notna()]

2.3 缺失值处理与获取标签值

# 删选出标签不为NaN的二手车数据(因为缺失值数量不多)
dataset = dataset[dataset["tag"].notna()]
dataset

# 拆分标签
tag_list = []
# apply函数:会自动循环每一行的数据 并且执行中间的匿名函数
dataset['tag'].apply(lambda x:tag_list.extend(x.split("_")))
# 对元素去重,再次转换为列表
tag_list = list(set(tag_list))
# 获取到所有的标签值
tag_list

python二手车价格预测,数据分析-统计分析,python,数据分析,数据挖掘,机器学习,人工智能

2.4 标签的特征处理

与one-hot编码很类似,但是one-hot编码只能存在1位有效状态

'''
    新增列:每个tag标签都是一列
    若存在这个标签设置为1;不存在为0
'''
# 创建DataFrame,列名称是tag_list里的元素
tag_df = pd.DataFrame(columns=tag_list)
# 拼接两个DataFrame
df = pd.concat([dataset,tag_df],sort=False)
# 将tag_list对应的NaN填充为0
df[tag_list] = df[tag_list].fillna(0)

# 将tag中的数据处理为数字(0或1)
# 传递的series为一行的数据
def set_tag_status(series):
    tags = series['tag'].split('_')# 将tag用_进行拆分
    for t in tags:
        # 若这一行存在这个标签,就直接把他改成1
        series[t] = 1
    return series

# 将df[['tag',*tag_list]]的每一行应用到set_tag_status函数中,删除'tag'列,最后替换掉df[tag_list]部分
#  *tag_list是拆分这个列表
df[tag_list] = df[["tag", *tag_list]].apply(lambda x:set_tag_status(x), axis=1).drop("tag",axis=1)
df = df.drop("tag",axis=1) # 删除tag列
df.head()

最终效果
python二手车价格预测,数据分析-统计分析,python,数据分析,数据挖掘,机器学习,人工智能

2.5 特征工程(one-hot编码)

什么是ont-hot编码
One-Hot编码是分类变量作为二进制向量的表示。又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都有独立的寄存器位,并且在任意时候只有一位有效(设置为1),无效的状态标记为0。

# 创建dataframe记录one-hot编码
one_hot_df = pd.get_dummies(df['brand'])
# 删除brand列
df.drop("brand",axis=1,inplace=True)
# 合并两个dataframe, 以左右两张表相同索引进行合并
df = pd.merge(df, one_hot_df, left_index=True, right_index=True)
df

python二手车价格预测,数据分析-统计分析,python,数据分析,数据挖掘,机器学习,人工智能

3.数据分析

3.1 价格分析

分析平均价格最高的前10个品牌

# 分析平均价格最高的前10个品牌
num_top = df.groupby("brand")['price'].mean().sort_values(ascending=False)[:10]
# seaborn绘制条形图
sns.set(font='SimHei')# 设置中文字体
fig = plt.figure(figsize=(15,10))# 设置图像大小
sns.barplot(x=num_top.index, y=num_top.values) # 绘制条形图
# plt.xticks(rotation=90) 设置x刻度轴旋转角度
fig.show()

python二手车价格预测,数据分析-统计分析,python,数据分析,数据挖掘,机器学习,人工智能

3.2 销量分析——销量分析、销量占比分析

销量最多的前10个品牌

# 销量最多的前10个品牌
amount_top = df["brand"].value_counts(sort=True)[:10]
fig = plt.figure(figsize=(15,10))# 设置图像大小
sns.barplot(x=amount_top.index, y=amount_top) # 绘制条形图
# plt.xticks(rotation=90) 设置x刻度轴旋转角度
fig.show()

python二手车价格预测,数据分析-统计分析,python,数据分析,数据挖掘,机器学习,人工智能
销量占比分析(饼图)

# 销量占比分析(饼图)
fig = plt.figure(figsize=(15,10))# 设置图像大小
plt.pie(amount_top, labels=amount_top.index, autopct="%1.2f%%") # 绘制条形图;设置保留两位小数,数字1可以不写,保留小数点前至少1位数字(防止报错)
plt.title("各大品牌车系数量占有比前10位")
# plt.xticks(rotation=90) 设置x刻度轴旋转角度
fig.show()

python二手车价格预测,数据分析-统计分析,python,数据分析,数据挖掘,机器学习,人工智能

3.3 价格分区概率分析

绘制直方图与概率密度函数图

# 1.数据准备(基本数据)
# 获取大众品牌记录
df_dazhong = df[df["brand"] == '大众']
dazhong_mean = df_dazhong["price"].mean()
dazhong_std = df_dazhong['price'].std()
num_bins = 20 # 条状图数量(分为几组)

# 2.绘制直方图
# density 代表是否归一化:如果没有归一化,数据会非常大,不成为密度
n, bins, patches = plt.hist(df_dazhong["price"], num_bins, facecolor="green", density=True,alpha=0.5)

# 3.准备数据(概率密度)
from scipy.stats import norm
# 计算概率密度函数值
y = norm.pdf(bins, dazhong_mean, dazhong_std)

# 4.绘制概率密度函数图
plt.plot(bins, y, 'r--')
plt.xlabel('smarts')
plt.ylabel('probability')
plt.title('大众价格分区概率分析')
plt.subplots_adjust(left=0.15)
plt.show()

python二手车价格预测,数据分析-统计分析,python,数据分析,数据挖掘,机器学习,人工智能文章来源地址https://www.toymoban.com/news/detail-521459.html

4.建立模型:梯度提升回归算法

# 1.数据准备
# 只要除了预测值以外的数据值
X = df[df.columns.difference(['price'])].values
# 预测的目标值的数据
Y = df['price']

# 2.导入所需要的库
from sklearn.model_selection import train_test_split # 拆分数据集
from sklearn.ensemble import GradientBoostingRegressor # 梯度提升回归算法类GBR
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score # 评估函数

# 3.拆分数据集
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=666)

# 4.建立模型:
# n_estimators:评估指标
gbdt = GradientBoostingRegressor(n_estimators=80)

# 5.训练模型
gbdt.fit(X_train, Y_train)

# 6.预测
pred = gbdt.predict(X_test)

# 7.评估
print('MSE',mean_squared_error(Y_test,pred))
print('MAE',mean_absolute_error(Y_test,pred))
print('RMSE',np.sqrt(mean_squared_error(Y_test,pred)))
print('R2',r2_score(Y_test,pred))

到了这里,关于1.Python数据分析项目——二手车价格预测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python笔记17_实例演练_二手车折旧分析p2

    …… 书接上文 探查车龄为5年的车辆,折旧价值与车辆等级的关系。 这里用到了 DataFrame 的 groupby 函数 ,这个函数对于数据处理的重要程度无需赘言。 groupby 必须配合聚合函数 同时使用,否则只能得到一个 DataFrameGroupBy 类型的玩意儿。 这里是可以只传 groupby 参数,不写聚合

    2024年02月07日
    浏览(28)
  • Python【二手车价格预测案例】数据挖掘

    随着代步工具的普及,“买卖车”需求激增。但对于部分预算有限的个体或家庭而言,购置一辆二手车更为明智。二手车的巨大供给需求催生了近年来日益壮大的二手车市场,但二手车的售卖面临着价格漂浮的问题。 因此,我们的目标是根据卖家或买家提供的参数信息计算价

    2023年04月09日
    浏览(29)
  • 【Python实战】Python采集二手车数据——超详细讲解

    今天,我们将采集某二手车数据,通过这个案例,加深我们对xpath的理解。通过爬取数据后数据分析能够直观的看到二手车市场中某一品牌的相对数据,能够了解到现在的二手车市场情况,通过分析数据看到二手车的走势,车商就可以利用这些数据进行定价,让想买二手车却

    2024年02月01日
    浏览(23)
  • Python二手车价格预测(二)—— 模型训练及可视化

    一、Python数据分析-二手车数据获取用于机器学习二手车价格预测 二、Python二手车价格预测(一)—— 数据处理         前面分享了二手车数据获取的内容,又对获取的原始数据进行了数据处理,相关博文可以访问上面链接。许多朋友私信我问会不会出模型,今天模型basel

    2024年02月05日
    浏览(34)
  • 零基础入门数据挖掘——二手车交易价格预测:baseline

    比赛要求参赛选手根据给定的数据集,建立模型,二手汽车的交易价格。 赛题以预测二手车的交易价格为任务,数据集报名后可见并可下载,该数据来自某交易平台的二手车交易记录,总数据量超过40w,包含31列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会

    2024年02月03日
    浏览(34)
  • 【Python爬虫实战】汽车城最好的十款车,第一名竟是这款车...Python教你一键采集二手车数据信息实现数据可视化展示哦~(附视频教程)

    驾考不易,天天早起去练车,无论烈日还是下雨,通通都在室外进行,但想要拿证,一定要坚 持不懈的去练车。 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 小编就是在一复一日的练习中,终于得到了我人生中以为不可能考证之驾照到手了! 这不?驾照到

    2024年02月02日
    浏览(28)
  • 【机器学习入门与实践】数据挖掘-二手车价格交易预测(含EDA探索、特征工程、特征优化、模型融合等)

    【机器学习入门与实践】数据挖掘-二手车价格交易预测(含EDA探索、特征工程、特征优化、模型融合等) note:项目链接以及码源见文末 了解赛题 赛题概况 数据概况 预测指标 分析赛题 数据读取pandas 分类指标评价计算示例 回归指标评价计算示例 EDA探索 载入各种数据科学以

    2023年04月13日
    浏览(31)
  • 天池长期赛:二手车价格预测(422方案分享)

    前言 一、赛题介绍及评测标准 二、数据探索(EDA) 1.读取数据、缺失值可视化 2.特征描述性统计 3.测试集与验证集数据分布 4.特征相关性 三、数据清洗 四、特征工程 1.构建时间特征 2.匿名特征交叉 3.平均数编码 五、建模调参 六、模型融合 总结 赛题属于回归类型,相比于

    2024年02月01日
    浏览(33)
  • Spring Boot后端+Vue前端:打造高效二手车交易系统

    作者介绍: ✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅 获取源码联系方式请查看文末 🍅  推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目: CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶

    2024年04月28日
    浏览(52)
  • Java实现二手车交易系统 JAVA+Vue+SpringBoot+MySQL

    基于JAVA+Vue+SpringBoot+MySQL的二手车交易系统,分为管理后台和用户网页,包含了二手车档案、预约订单模块、预订单模块、留言板模块和车辆资讯模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,

    2024年02月22日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包