基于大数据的汽车信息可视化分析预测与推荐系统

news2024/11/26 0:49:50

 温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 

1. 项目简介

        本项目通过集成网络爬虫技术,实时获取海量汽车数据;运用先进的ARIMA时序建模算法对数据进行深度挖掘和分析;结合flask web系统和echarts可视化工具,为用户提供直观、易用的操作界面。系统主要包含汽车销量分析、汽车品牌车系分析、汽车评分分析、汽车指导价分析、汽车价格预测和汽车个性化推荐等功能模块,旨在为汽车行业从业者、消费者及研究人员提供全面、准确的数据支持和服务。

        B站详情及代码资料下载:基于大数据的汽车信息可视化分析预测与推荐系统_哔哩哔哩_bilibili

基于大数据的汽车信息可视化分析预测与推荐系统

2. 汽车信息采集

        利用 requests、beautifulsoup等工具包,模拟采集并解析各品牌汽车的品牌、车系、评分、级别、车身结构、发动机、变速箱、指导价、销量等多维数据,经过数据清洗和格式化,并进行数据的存储:

response = requests.get(url, headers=headers)
response.encoding = 'gbk'
soup = BeautifulSoup(response.text, 'lxml')
cars = soup.select('div.list-cont')

brand_cars = []
for car in cars:
    try:
        car_info = {'品牌': brand}
        name = car.select('a.font-bold')[0].text
        score = car.select('span.score-number')
        if len(score) == 0:
            score = '暂无'
        else:
            score = score[0].text

        car_info['车系'] = name
        car_info['评分'] = score

        ul = car.select('ul.lever-ul')[0]
        for li in ul.select('li'):
            data = li.text.replace('\xa0', '').replace(' ', '').replace(' ', '').strip().split(':')
            if '颜色' in data[0]: continue
            if len(data) < 2: continue
            car_info[data[0]] = data[1]

        price = car.select('span.font-arial')[0].text
        price = price.split('-')
        if len(price) == 1:
            car_info['最低指导价'] = price[0]
            car_info['最高指导价'] = price[0]
        else:
            car_info['最低指导价'] = price[0] + '万'
            car_info['最高指导价'] = price[1]

        car_info['链接'] = url
        brand_cars.append(car_info)
    except:
        print('error...')
        continue

        汽车销量数据采集:

def factory_car_sell_count_spider():
    """
    中国汽车分厂商每月销售量
    https://XXXXXXX/factory.html
    """
    base_url = 'https://XXXXXXX/factory-{}-{}-{}.html'

    year_month = '201506'

    factory_month_sell_counts = []
    now_date = datetime.now().strftime("%Y%m")
    while year_month < now_date:
        for page_i in range(1, 5):
            try:
                url = base_url.format(year_month, year_month, page_i)
                print(url)
                resp = requests.get(url, headers=headers)
                resp.encoding = 'utf8'
                soup = BeautifulSoup(resp.text, 'lxml')

                table = soup.select('table.xl-table-def')
                trs = table[0].find_all('tr')

                for tr in trs:
                    tds = tr.find_all('td')
                    if len(tds) < 4: continue
                    # 厂商logo
                    ......

                    factory_month_sell_counts.append((year_month, factory_logo, factory, sell_count, ratio))

                time.sleep(1)
            except:
                print('error...')
                continue

        # 下个月份
        ......

3. 基于大数据的汽车信息可视化分析预测与推荐系统

3.1 系统首页与注册登录

3.2 汽车销量分析

        该功能模块使用Python中的Pandas库对汽车销量数据进行分析和可视化。首先,通过读取汽车销量数据,将数据加载到Pandas的DataFrame对象中。然后,利用Pandas提供的数据处理和分析功能,对销量数据进行统计分析,最后,利用echarts库生成柱状图和饼状图,直观地展示汽车销量的分布情况和占比情况。

3.3 汽车品牌车系分析

        分析不同汽车品牌的车系数量、与汽车类型的分布情况:

3.4 汽车评分分析

        分析不同品牌汽车、不同车系、车型级别的评分分布情况:

3.5 汽车指导价分析

        分析不同汽车不同车系、续航里程等因素下的指导价分布情况:

 3.6 基于决策树算法的汽车价格预测

        利用 Xgboost 构建决策树回归算法,实现对汽车指导价的预测建模:

df_columns = dataset.columns.values
print('---> cv train to choose best_num_boost_round')
all_y = np.log1p(all_y)

dtrain = xgb.DMatrix(all_x, label=all_y, feature_names=df_columns)

xgb_params = {
    'learning_rate': 0.01,
    'max_depth': 4,
    'eval_metric': 'rmse',
    'objective': 'reg:linear',
    'nthread': -1,
    'silent': 1,
    'booster': 'gbtree'
}

cv_result = xgb.cv(dict(xgb_params),
                   dtrain,
                   num_boost_round=4000,
                   early_stopping_rounds=100,
                   verbose_eval=100,
                   show_stdv=False,
                   )
best_num_boost_rounds = len(cv_result)
mean_train_logloss = cv_result.loc[best_num_boost_rounds -
                                   11: best_num_boost_rounds - 1, 'train-rmse-mean'].mean()
mean_test_logloss = cv_result.loc[best_num_boost_rounds -
                                  11: best_num_boost_rounds - 1, 'test-rmse-mean'].mean()
print('best_num_boost_rounds = {}'.format(best_num_boost_rounds))

print('mean_train_rmse = {:.7f} , mean_valid_rmse = {:.7f}\n'.format(
    mean_train_logloss, mean_test_logloss))
print('---> training on total dataset to predict test and submit')
model = xgb.train(dict(xgb_params),
                  dtrain,
                  num_boost_round=best_num_boost_rounds)
# 特征重要程度
feature_importance = model.get_fscore()
feature_importance = sorted(
    feature_importance.items(), key=lambda d: d[1], reverse=True)

3.7 汽车个性化推荐

3.7.1 基于内容的汽车品牌车型推荐

        基于内容的汽车推荐,基于用户选择的汽车品牌、车型级别、和价格区间,进行符合筛选条件的汽车车型推荐:

3.7.2 基于用户行为的汽车车型推荐

        针对用户选择喜欢的车型数据,构建用户画像特征向量、汽车特征向量,通过计算向量余弦相似度,进行汽车车型的推荐:

def cos_sim(x, y):
    """
    余弦相似性
    input:  x(mat):以行向量的形式存储,可以是用户或者商品
            y(mat):以行向量的形式存储,可以是用户或者商品
    output: x和y之间的余弦相似度
    """
    x = x.reshape(1, -1)
    y = y.reshape(1, -1)

    numerator = x * y.T  # x和y之间的内积
    denominator = np.sqrt(x * x.T) * np.sqrt(y * y.T)
    return (numerator / (denominator + 0.000001))[0, 0]


def similarity(data):
    """
    计算矩阵中任意两行之间的相似度
    input:  data(mat):任意矩阵
    output: w(mat):任意两行之间的相似度
    """
    m = np.shape(data)[0]  # 用户的数量
    # 初始化相似度矩阵
    w = np.mat(np.zeros((m, m)))

    for i in range(m):
        for j in range(i, m):
            if j != i:
                # 计算任意两行之间的相似度
                w[i, j] = cos_sim(data[i,], data[j,])
                w[j, i] = w[i, j]
            else:
                w[i, j] = 0
    return w


def top_k(predict, k):
    """
    为用户推荐前k个商品
    input:  predict(list):排好序的商品列表
            k(int):推荐的商品个数
    output: top_recom(list):top_k个商品
    """
    top_recom = []
    len_result = len(predict)
    if k >= len_result:
        top_recom = predict
    else:
        for i in range(k):
            top_recom.append(predict[i])

4. 总结

        本项目通过集成网络爬虫技术,实时获取海量汽车数据;运用先进的ARIMA时序建模算法对数据进行深度挖掘和分析;结合flask web系统和echarts可视化工具,为用户提供直观、易用的操作界面。系统主要包含汽车销量分析、汽车品牌车系分析、汽车评分分析、汽车指导价分析、汽车价格预测和汽车个性化推荐等功能模块,旨在为汽车行业从业者、消费者及研究人员提供全面、准确的数据支持和服务。

 欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。技术交流、源码获取认准下方 CSDN 官方提供的学长 QQ 名片 :)

精彩专栏推荐订阅:

1. Python数据挖掘精品实战案例

2. 计算机视觉 CV 精品实战案例

3. 自然语言处理 NLP 精品实战案例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1578739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue做游戏vue游戏引擎vue小游戏开发

Vue.js 是一个构建用户界面的渐进式JavaScript框架&#xff0c;它同样可以用于游戏开发。使用 Vue 开发游戏通常涉及以下几个关键步骤和概念&#xff1a; 1. 了解 Vue 的核心概念 1 在开始使用 Vue 进行游戏开发之前&#xff0c;你需要理解 Vue 的一些核心概念&#xff0c;如…

Python可视化之seaborn

文章目录 seaborn介绍1.解决坐标轴刻度负号乱码2. 解决中文乱码问题3. 忽略警告4.风格选择5.自定义坐标轴6.自定义绘图元素比例7.一元分布图8.二元分布图9.多元矩阵图10.其他常见图形散点图线图柱状图计数图 seaborn介绍 seaborn是在matplotlib基础上开发的一套API&#xff0c…

网络驱动器设备:ISCSI服务器

文章目录 使用ISCSI服务部署网络存储ISCSI技术介绍创建RAID磁盘整列配置ISCSI服务端配置Windows端配置Linux客户端iSCSI服务器CHAP单向认证配置Linux端具体步骤Windows端具体步骤 使用ISCSI服务部署网络存储 主机名IPISCSI服务端192.168.200.10ISCSI客户端192.168.200.20Windo…

Ubuntu22.04修改默认窗口系统为X11

Ubuntu22.04安装默认窗口系统为Wayland&#xff08;通过设置->关于可以看到&#xff09;。 一、用Ubuntu on Xorg会话登录 用户登录时&#xff0c;点“未列出”&#xff0c;输入用户名后&#xff0c;在登录界面底部的齿轮图标中&#xff0c;选择 "Ubuntu on Xorg&quo…

Stable Diffusion——SDXL Turbo让 AI 出图速度提高10倍

摘要 在本研究中&#xff0c;我们提出了一种名为对抗扩散蒸馏&#xff08;ADD&#xff09;的创新训练技术&#xff0c;它能够在1至4步的采样过程中&#xff0c;高效地对大规模基础图像扩散模型进行处理&#xff0c;同时保持图像的高质量。该方法巧妙地结合了分数蒸馏技术&…

用TensorBoard可视化PyTorch

一、TensorBoard与PyTorch配合使用的基本步骤 PyTorch可以直接与TensorBoard进行集成&#xff0c;因为TensorBoard是一个独立于TensorFlow之外的可视化工具。TensorBoard被设计为支持机器学习实验的可视化&#xff0c;如训练的进度和结果等。PyTorch中的torch.utils.tensorboa…

【数据结构】考研真题攻克与重点知识点剖析 - 第 6 篇:图

前言 本文基础知识部分来自于b站&#xff1a;分享笔记的好人儿的思维导图与王道考研课程&#xff0c;感谢大佬的开源精神&#xff0c;习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析&#xff0c;本人技术…

智慧安防系统EasyCVR视频汇聚平台接入大华设备无法语音对讲的原因排查与解决

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流&#xff0c;视频画面1、4、9、16个可选&#xff0c;支持自定义视频轮播。EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标…

数据可视化-ECharts Html项目实战(10)

在之前的文章中&#xff0c;我们学习了如何在ECharts中编写雷达图&#xff0c;实现特殊效果的插入运用&#xff0c;函数的插入&#xff0c;以及多图表雷达图。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&…

甲方安全建设之研发安全-SCA

前言 大多数企业或多或少的会去采购第三方软件&#xff0c;或者研发同学在开发代码时&#xff0c;可能会去使用一些好用的软件包或者依赖包&#xff0c;但是如果这些包中存在恶意代码&#xff0c;又或者在安装包时不小心打错了字母安装了错误的软件包&#xff0c;则可能出现供…

shrine-攻防世界

题目 代码 import flask import os app flask.Flask(__name__) app.config[FLAG] os.environ.pop(FLAG) app.route(/) def index(): return open(__file__).read() app.route(/shrine/) def shrine(shrine): def safe_jinja(s): s s.replace((, ).replace(), ) …

算法之美:缓存数据淘汰算法分析及分解实现

在设计一个系统的时候&#xff0c;由于数据库的读取速度远小于内存的读取速度&#xff0c;那么为加快读取速度&#xff0c;需先将一部分数据加入到内存中&#xff08;该动作称为缓存&#xff09;&#xff0c;但是内存容量又是有限的&#xff0c;当缓存的数据大于内存容量时&…

nodejs+python基于vue的羽毛球培训俱乐部管理系统django

语言&#xff1a;nodejs/php/python/java 框架&#xff1a;ssm/springboot/thinkphp/django/express 请解释Flask是什么以及他的主要用途 Flask是一个用Python编写的清凉web应用框架。它易于扩展且灵活&#xff0c;适用于小型的项目或者微服务&#xff0c;以及作为大型应用的一…

spring eureka 服务实例实现快速下线快速感知快速刷新配置解析

背景 默认的Spring Eureka服务器&#xff0c;服务提供者和服务调用者配置不够灵敏&#xff0c;总是服务提供者在停掉很久之后&#xff0c;服务调用者很长时间并没有感知到变化。或者是服务已经注册上去了&#xff0c;但是服务调用方很长时间还是调用不到&#xff0c;发现不了这…

【Mysql高可用集群-双主双活-myql+keeplived】

Mysql高可用集群-双主双活-myqlkeeplived 一、介绍二、准备工作1.两台centos7 linux服务器2.mysql安装包3.keepalived安装包 三、安装mysql1.在128、129两台服务器根据《linux安装mysql服务-两种安装方式教程》按方式一安装好mysql应用。2.修改128服务器/etc/my.cnf配置文件&am…

第8章 数据集成和互操作

思维导图 8.1 引言 数据集成和互操作(DII)描述了数据在不同数据存储、应用程序和组织这三者内部和之间进行移动和整合的相关过程。数据集成是将数据整合成物理的或虚拟的一致格式。数据互操作是多个系统之间进行通信的能力。数据集成和互操作的解决方案提供了大多数组织所依赖的…

携程旅行 abtest

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章…

Java 基于微信小程序的助农扶贫小程序

博主介绍&#xff1a;✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不…

React - 你知道useffect函数内如何模拟生命周期吗

难度级别:中级及以上 提问概率:65% 很多前端开发人员习惯了Vue或者React的组件式开发,熟知组件的周期过程包含初始化、挂载完成、修改和卸载等阶段。但是当使用Hooks做业务开发的时候,看见一个个useEffect函数,却显得有些迷茫,因为在us…

Flutter之Flex组件布局

目录 Flex属性值 轴向:direction:Axis.horizontal 主轴方向:mainAxisAlignment:MainAxisAlignment.center 交叉轴方向:crossAxisAlignment:CrossAxisAlignment 主轴尺寸:mainAxisSize 文字方向:textDirection:TextDirection 竖直方向排序:verticalDirection:VerticalDir…