新能源汽车销量影响因素的分析和预测

摘要 

目前,我国现有的新能源销量信息的网站或APP较多,而且现有的新能源销量网站发布的信息良莠不齐,夹杂着大量无用的新能源销量信息,这会让购车者在这些新能源销量软件获取新能源销量信息时难以分辨有效的信息,购车的效率会很低。如果开发一套Web系统将市面上的新能源销量信息通过大数据技术进行存储、计算与智能化分析,将会给购车人员提供巨大的好处。

本文设计了基于大数据的新能源销量网站后台分析系统,本系统的核心功能是通过爬取实海量新能源销量信息的原始数据,并通过大数据技术将原始数据存储、计算,并将分析的结果以可视化列表形式展示。

本论文的主要研究工作及取得的成果如下:

Flask等软件开发技术,设计并成功开发出了一套新能源销量数据分析后台软件系统,本后台系统的数据源于新能源销量网站上爬取的新能源销量信息。对爬取到的原始数据进行数据清洗后存储到计算机上,然后分布式运算编程模型和线性回归算法对数据计算,最后将结果保存至MySQL中存储分析。

基于机器学习的算法和模型可以用于新能源销量预测和分析。可以线性回归算法来构建预测模型,通过对历史数据的学习和分析,预测未来新能源销量的趋势和变化。发现其中的规律和特征,为市场参与者提供决策支持

关键词: 互联网技术;销量预测;机器学习算法;Flask


ABSTRACT

At present, there are many existing websites or apps for new energy sales information in China, and the information released by existing new energy sales websites is mixed with a large number of useless new energy sales information, which will make it difficult for car buyers to distinguish effective information when they live in these new energy sales software to obtain new energy sales information, and the efficiency of car purchase will be very low. If a Web system is developed to store, calculate and intelligentize the new energy sales information on the market through big data technology, it will provide huge benefits to car buyers.

This paper designs a new energy sales website background analysis system based on big data. The core function of this system is to obtain the original data of massive new energy sales information by crawling, store and calculate the original data through big data technology, and display the analysis results in the form of a visual list.

The main research work and achievements of this paper are as follows:

Flask and other software development technology, designed and successfully developed a set of new energy sales data analysis background software system, the background system data from the new energy sales website crawled new energy sales information. The original crawled data is cleaned and stored on the computer, then the distributed computing programming model and linear regression algorithm are used to calculate the data, and finally the results are saved to MySQL for storage and analysis.

Algorithms and models based on machine learning can be used for new energy sales forecasting and analysis. The prediction model can be built using linear regression algorithm, and the trend and change of new energy sales in the future can be predicted by learning and analyzing historical data. The rules and characteristics are found to provide decision support for market participants.

Key words: Internet technology; Sales forecast; Machine learning algorithm; Flask
目录

摘要

ABSTRACT

1 绪论

1.1 本论文研究背景及研究意义

1.2 国内外研究现状

1.3 本论文研究目标和主要研究内容

2 理论基础与相关技术

2.1 基于Scrapy的网络爬虫技术

2.2 线性回归算法

2.3 Flask技术

2.4 Echarts前端可视化技术

2.5 本章小结

3 新能源汽车销量数据的采集存储

3.1 数据爬虫设计

3.2 数据库的设计

3.3 本章小结

4 新能源汽车销量预测模型

4.1 数据集划分

4.2 数据归一化

4.3 模型构建和训练

4.4模型分析

第5章 系统结论

5.1 预测模型结果分析

5.2系统功能

5.2.1功能概要

5.2.2详细描述

5.2.3功能概要

5.2.4详细描述

5.4 本章小结

6总结与展望

6.1总结

6.2展望

参考文献

致谢

  1. 绪论
    1. 本论文研究背景及研究意义

新能源汽车销量作为清洁能源汽车的代表,受到全球范围内的关注和推广。在应对气候变化、减少能源消耗、改善空气质量等方面,新能源汽车销量具有重要意义。因此,对新能源汽车销量影响因素进行深入研究具有重要的现实意义和发展价值[1]。

政策支持与市场需求:各国政府纷纷制定新能源汽车销量补贴政策、排放标准以及充电基础设施建设等支持措施,这些政策举措直接影响着新能源汽车销量的销售情况。研究政策对销量的影响可以帮助理解市场动态和政策效果。

消费者偏好与产品创新:消费者对新能源汽车销量的接受程度、购买动机以及对产品性能的要求是影响销量的重要因素。同时,新能源汽车销量技术的不断创新也推动着市场的发展,研究消费者偏好和产品创新对销量的影响可以指导企业产品策略[2]。

市场竞争与营销策略:新能源汽车销量市场竞争激烈,企业的产品定价、市场推广、渠道选择等策略影响着销量表现。研究竞争对手分析和营销策略对销量的影响,有助于企业提升竞争力。

技术进步与成本控制:新能源汽车销量技术的不断进步降低了成本、提升了性能,同时也对销量有着重要影响。研究技术进步和成本控制对销量的影响,可以帮助企业把握市场趋势。

综上所述,针对新能源汽车销量影响因素进行研究,有助于深入了解新能源汽车销量市场的发展规律,为产业发展、政策制定和企业经营提供科学依据,促进新能源汽车销量行业的健康发展和可持续发展。

总的来说,基于数据挖掘技术的新能源汽车销量影响因素预测具有重要的研究意义和应用价值。预测模型可以帮助新能源汽车销量素产业更好地掌握市场动态和消费者需求,提高产品的成功率和用户体验,同时也可以促进新能源汽车销量创新和多样性,推动整个新能源产业的发展[3]。

    1. 国内外研究现状

在大数据时代的背景,在预测领域中数据挖掘技术得到更多的关注,在预测研究目前,针对新能源汽车销量分析的研究逐渐增多,主要集中在以下几个方面:

市场需求与政策因素分析:研究者通过对新能源汽车销量市场需求趋势、政策支持度等因素进行分析,探讨其对销量的影响。这些研究有助于评估政策效果和预测市场发展方向。

消费者行为与偏好研究:通过调查问卷、实地访谈等方式,研究者分析消费者对新能源汽车销量的认知、购买意愿、偏好等因素,以揭示消费者对销量的影响。

竞争分析与市场营销策略:研究者关注市场上各品牌新能源汽车销量的销售情况、定价策略、广告宣传等方面,探讨竞争对销量的影响,并提出相应的市场营销建议。

技术创新与产品研发:研究者关注新能源汽车销量技术创新对销量的推动作用,分析新技术应用、产品性能提升对销量的影响,以指导企业的研发方向。

成本控制与经济效益评估:针对新能源汽车销量生产成本、运营成本等方面进行分析,评估不同成本水平对销量的影响,以及新能源汽车销量的经济效益。

综合以上研究现状可以看出,新能源汽车销量分析已经成为学术界和产业界关注的热点问题,相关研究为新能源汽车销量行业发展提供了重要的理论支撑和实践指导。未来随着新能源汽车销量市场的不断发展和政策环境的变化,新能源汽车销量分析领域仍将继续深入研究和探索[4]。

    1. 本论文研究目标和主要研究内容

本文旨在基于数据挖掘技术,利用新能源销量平台的海量新能源汽车销量数据,构建一种可靠的新能源汽车销量影响预测模型。具体来说,研究目标包括以下几个方面:

(1)分析新能源汽车销量影响的形成机制和影响因素,探究如何从海量数据中提取有效特征的新能源汽车销量数据集。

(2)构建一种高效、准确、可靠的新能源汽车销量影响预测模型,能够对不同类型的新能源汽车销量作出准确的销量影响预测。

(3)对预测模型进行实验验证,验证其预测效果和优越性。

其中,新能源汽车销量数据采集和预处理:通过数据爬取,采集不同类型的新能源汽车销量数据,同时,还需要对原始数据进行处理和清洗数据。

特征提取和选择:根据分析新能源汽车销量影响的形成机制和影响因素,提取和选择合适的特征。具体来说,需要将原始数据转化为特征向量模型构建和训练:选择线性回归算法作为预测模型,在对模型训练和调参过程中利用交叉验证等技术,得到最优的预测模型[5]。

实验验证和分析:对构建的新能源汽车销量影响预测模型进行实验验证,分析预测结果的准确性和稳定性。

综上所述,本文的研究内容包括数据采集和预处理、特征提取和选择、模型构建和训练以及实验验证和分析等多个方面。通过使用线性回归算法对新能源销量平台的海量新能源汽车销量数据进行分析和建模,旨在为新能源汽车销量行业的发展和进步提供有效的支持和参考[6]。


  1. 理论基础与相关技术

本章将介绍完成流行新能源汽车销量趋势预测所需要的主要技术及相关基础理论。

2.1 基于Scrapy的网络爬虫技术

Scrapy是目前较为成熟的爬虫技术框架,一般采用Python语言开发程序,Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

在本设计中,由于需要获取到新能源汽车销量网站的原始数据,因此需要开发相应的网络爬虫程序完成对新能源汽车销量原始数据的采集,图2-1为爬取新能源汽车销量网站的新能源汽车销量数据的原理流程图[7]。

图2-1新能源汽车销量网站爬虫原理流程图

2.2 线性回归算法

线性回归算法是一种基于假设自变量和因变量之间存在线性关系的统计学习方法。也就是说,我们认为因变量y可以表示为自变量x的线性组合加上一个随机误差项。例如,如果我们有一个自变量x和一个因变量y,那么我们可以假设它们之间的关系为:

y = wx + b + e

其中w是线性系数,b是截距项,e是误差项。我们的目标是根据已知的x和y的数据,找到最合适的w和b,使得误差项e的平方和最小。这就是最小二乘法的思想。

如果我们有多个自变量x1,x2,...,xn和一个因变量y,那么我们可以假设它们之间的关系为:

y = w1x1 + w2x2 + ... + wnxn + b + e

其中w1,w2,...,wn是线性系数,b是截距项,e是误差项。我们同样要找到最合适的w1,w2,...,wn和b,使得误差项e的平方和最小[8]。

图 2-2 线性回归函数

线性回归算法的实现步骤主要包括以下几个步骤:

数据预处理:将原始数据进行归一化、缺失值处理、异常值处理等预处理操作,得到训练集和测试集。

特征提取:从原始数据中提取出自变量和因变量的特征,通常采用的是最小均方误差(LMSE)作为特征提取的度量标准。

模型建立:根据特征提取的结果,建立线性回归模型。线性回归模型的一般形式为:

y = w1 * x1 + w2 * x2 + …+ wn * xn + ε

其中,w1,w2,…,wn是线性系数,ε是随机误差项。

参数求解:梯度下降法求解模型的参数。根据步骤3,计算得到模型的参数w1,w2,…,wn和b。

模型训练:训练集对模型进行训练,得到最优的模型参数和训练集。

模型评估:测试集对模型进行评估,计算模型的预测结果与真实结果之间的均方误差(MSE),作为模型的评估指标[9]

2.3 Flask技术

Flask是一个开放源代码Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Flask Reinhardt来命名的。2019年12月2日,Flask 3. 0发布 。

Flask是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Flask具有较强的可扩展性 。Flask 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。其工作流程主要可划分为以下几步:

1.用manage .py runserver 启动Flask服务器时就载入了在同一目录下的settings .py。该文件包含了项目中的配置信息,如前面讲的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Flask哪个Python模块应该用作本站的URLConf,默认的是urls .py

2.当访问url的时候,Flask会根据ROOT_URLCONF的设置来装载URLConf。

3.然后按顺序逐个匹配URLConf里的URLpatterns。如果找到则会调用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是request)

4.最后该view函数负责返回一个HttpResponse对象

2.4 Echarts前端可视化技术

Apache ECharts 是一款基 于Javascript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。ECharts 开源来自百度商业前端数据可视化团队,基于htm15 Canvas, 它是一个纯Javascrint,图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力[10]。

2.5 本章小结

本章主要分析了系统开发过程中到的技术点和框架,通过研究这些技术的原理后,在本设计中加以应用,包括新能源汽车销量信息采集的爬虫技术,数据持久化存储技术,以及基于Flask框架的系统后台技术,通过预研上述技术点并加以应用从而开发出新能源汽车销量数据分析系统。


  1. 新能源汽车销量数据的采集存储

伴随互联网新能源汽车销量的飞速发展,产生了各种各样的销量数据,对于新能源汽车销量爱好者以及各大新能源汽车企业来说,对新能源汽车销量数据进行研究和分析从而预测新能源汽车销量的趋势,具有重大意义。所以,在新能源汽车销量影响预测研究中数据分析和处理至关重要,可以为后续建立模型奠定良好的基础。

    1. 数据爬虫设计

爬取汽车网的新能源汽车销量数据的设计步骤如下:

1、明确需求和目标网站的结构,确定需要爬取的数据以及爬取规则。

2、创建一个Scrapy项目,使用命令行工具创建一个新的Scrapy项目。

3、定义数据模型和item,即确定要爬取的数据结构。

4、编写爬虫类,使用Scrapy的Spider类编写爬虫程序,根据需求和目标网站的结构,确定爬取的起始URL,处理每个页面的响应数据,并根据规则提取需要的数据。

5、编写数据处理管道,对爬取的数据进行处理,包括清洗、去重、存储等操作。

6、配置Scrapy设置,包括请求头、代理、下载延迟等设置,以保证爬虫程序的稳定性和高效性。

7、运行爬虫程序,使用命令行工具运行爬虫程序,查看爬取结果。

8、调试和优化,根据爬取结果和日志信息,对爬虫程序进行调试和优化,提高爬取效率和数据质量。

总体来说,Scrapy爬虫的标准流程包括需求分析、项目创建、数据模型定义、爬虫编写、数据处理管道编写、设置配置、运行爬虫程序、调试和优化等步骤。

这个项目我们的主要目的是爬取汽车网的新能源汽车销量数据信息,包括新能源汽车销量、新能源汽车名称和新能源汽车描述和所属企业等具体详情信息,下面描述本文爬虫工程主要设计步骤。

表3-1 新能源销量爬虫代码

# -*- coding: utf-8 -*-

import math

import requests

import pandas as pd

class Dongchedi_class():

    '''懂车帝'''

    def __init__(self):

        self.header = {

            "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",

            "Referer":"https://www.dongchedi.com/auto/library/x-x-x-x-x-x-4-x-x-x-x",

            "Origin":"https://www.dongchedi.com",

        }

    def get_data(self,page=1,is_total=0):

        '''请求接口'''

        url = "https://www.dongchedi.com/motor/pc/car/brand/select_series_v2?aid=1839&app_name=auto_web_pc"

        # body参数

        data_dict = {

            "fuel_form": "4",

            "sort_new": "hot_desc",

            "city_name": "广州",

            "limit": 30,

            "page": page

        }

        res = requests.post(url=url, headers=self.header, data=data_dict).json()

        # print(res)

        #返回数据

        if res and 'status' in res and res['status']==0:

            if is_total:

                return res['data']['series_count']

            return res['data']['series']

        else:

            return []

    def data_deal(self,data_list=None):

        '''数据解析'''

        new_list = []

        for data_dict in data_list:

            #品牌ID

            brand_id = data_dict['brand_id']

            #品牌

            brand_name = data_dict['brand_name']

            #封面图

            cover_url = data_dict['cover_url']

            #车名

            outter_name = data_dict['outter_name']

            #官方指导价

            official_price = data_dict['official_price']

            #款式数量

            count = data_dict['count']

            #评分

            dcar_score = data_dict['dcar_score']            new_list.append([brand_id,brand_name,cover_url,outter_name,official_price,count,dcar_score])

        return new_list

    def data_to_csv(self,data_li=None):

        '''数据存储'''

        df = pd.DataFrame(data_li)

        df.to_csv("test1.csv", index=False)

    def run(self):

        #获取总页数

        total = self.get_data(page=1, is_total=1)

        if total>0:

            total_page = math.ceil(total/30)

            print("总数:",total,",总页数:",total_page)

            #翻页获取数据

            all_list = []

            all_list.append(["品牌ID", "品牌", "封面图", "车名", "官方指导价", "款式数量", "评分"])

            for page in range(1,total_page):

                print("当前页数:",page)

                data_list = self.get_data(page=page)

                out_date = self.data_deal(data_list=data_list)

                print("*"*100)

                print(out_date)

                all_list += out_date

            self.data_to_csv(data_li=all_list)

if __name__ == '__main__':

    ddc = Dongchedi_class()

    ddc.run()

item定义你要提取的内容(定义数据结构),比如我提取的内容为新能源汽车销量信息的所在城市和新能源汽车新能源汽车销量详情,于是需要在items类中新建对应的实体类,并需要设置相应的字段取出对应的数据。Field 方法实际上的做法是创建一个字典,给字典添加一个建,暂时不赋值,等待提取数据后再赋值。访问下载网页,Xpath语法提取内容[11]

3.2 数据库的设计

数据库设计是系统设计中特别重要的一部分。数据库的好坏决定着整个系统的好坏,并且,在之后对数据库的系统维护、更新等功能中,数据库的设计对整个程序有着很大的影响。

根据功能模块的划分结果可知,本系统的用户由于账号和密码进行登录,因此在本系统中需要分别进行数据记录。首先根据如下6个数据实体:用户、新能源汽车销量信息等数据库表。

图3-1 汽车销售表实体属性图

用户的属性包括用户编号、用户名、密码和性别、注册账号的时间。用户实体属性图如图3-2所示:

3-2 用户实体属性图

根据以上分析,各个实体之间有一定的关系,使实体与实体可以联系起来,建立成整个系统的逻辑结构,本系统中,普通用户通过对新能源汽车销量信息的管理,使新能源汽车销量信息与用户实体存在对应关系。

任何模型的训练都离不开数据,因此收集数据构建数据集是必不可少的环节。比如现在要预测汽车的售价,那么你必须先要收集历史售价,这样才能确保你预测的价格不会过高,或过低。如下表所示:

表3-2 爬虫数据表字段

字段名

字段说明

字段类型

备注

必填

month

销量榜时间

int

202108:表示2021年8月

count

返回的数据量

int

100:返回100辆车的数据

type

新能源汽车

int

1:纯电动 2:插电式混动

city

城市名称

varchar

rank

销量榜

int

11:销量榜

3.3 本章小结

新能源汽车销量影响因素新能源汽车销量产业中的重要指标之一,对于新能源汽车销售具有重要的指导意义。本节对新能源汽车销量平台中的销量信息进行了采集,通过数据清洗、处理和存储,这也为新能源汽车销量预测和分析提供了数据支撑和理论参考。

  1. 新能源汽车销量预测模型

新能源汽车销量预测模型的基本业务功能是采线性回归算法框架实现的, 在本文的第四章将详细介绍汽车销量预测模型的实现部分,包括详细阐述了模型的搭建过程,并展示说明了预测模型的底层实现

4.1 数据集划分

在开始建模之前,还需要把数据集拆分为两个部分:训练集和测试集。在普通的机器学习项目中,至少要包含这两个数据集,一个用于训练机器,确定模型,另一个用于测试模型的准确性。不仅如此,往往还需要一个验证集,以在最终测试之前增加验证环节。目前这个问题比较简单,数据量也少,我们简化了流程,合并了验证和测试环节[12]。

这两个数据集需要随机分配,两者间不可以出现明显的差异性。因此,在拆分之前,要注意数据是否已经被排序或者分类,如果是,还要先进行打乱。

使用下面的代码段将数据集进行80%(训练集)和20%(测试集)的分割:

表4-1 数据集划分代码

# 将数据集进行80%(训练集)和20%(验证集)的分割from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(特征数据x, 标签数据y,test_size=0.2, random_state=0)

Sklearn中的train_test_split函数,是机器学习中拆分数据集的常用工具。

test_size=0.2,表示拆分出来的测试集占总样本量的20%。

如果用print语句输出拆分之后的新数据集(如X_train、X_test)的内容,会发现这个工具已经为数据集进行了乱序(重新随机排序)的工作,因为其中的shuffle参数默认值为True。

而其中的random_state参数,则用于数据集拆分过程的随机化设定。如果指定了一个整数,那么这个数叫作随机化种子,每次设定固定的种子能够保证得到同样的训练集和测试集,否则进行随机分割。

4.2 数据归一化

特征缩放的常用方法,包括标准化、数据的压缩(也叫归一化),以及规范化等。特征缩放对于机器学习特别重要,可以让机器在读取数据的时候感觉更“舒服”,训练起来效率更高。

这里就对数据进行归一化。归一化是按比例的线性缩放。数据归一化之后,数据分布不变,但是都落入一个小的特定区间,比如0~1或者-1~+1,如图所示。

图4-1 数据归一化

通过Sklearn库中preprocessing(数据预处理)工具中的MinMaxScaler可以实现数据的归一化。核心代码如下:

表4-2 数据归一化代码

from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()

# 对特征归一化result = scaler.fit_transform(待归一化数据)

# 调用sklearn自动实现归一化from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()

 # 对特征归一化X_train,X_test = scaler.fit_transform(X_train),scaler.fit_transform(X_test)# 对标签归一化y_train,y_test = scaler.fit_transform(y_train),scaler.fit_transform(y_test) #print('自动归一化结果:',X_train)

4.3 模型构建和训练

现在准备训练模型,需要使用regressor对象。

首先从sklearn库中导入linear_model方法,用于实现线性回归,里面包括目标值:输入变量的线性组合。然后使用LinearRegression() 函数执行最小二乘法执行线性回归。最后fit函数用于拟合线性模型,需要传入两个参数:x_train,y_train。

表4-3 模型训练代码

# Create linear regression object

linear_regressor = linear_model.LinearRegression()

# Train the model using the training sets

linear_regressor.fit(x_train, y_train)

4.4模型分析

scikit-learn使从机器学习模型进行预测变得非常容易。只需要前创建的模型变量上调用预报方法。由于预测变量旨在进行预测,因此它仅接受x数组参数。这是需要使用predic方法从我们的模型生成预测的代码  :

predictions = model.predict(x_test)

 x_test 特征值 存储在 predictions 预测变量中。由于我们用  train_test_split  方法将实际  值存储  在  y_test中,因此下一步要做的是将  预测  数组的值与y_test的值进行  比较。一种简单的方法是使用散点图绘制两个数组。 使用  plt.scatter  方法很容易构建  plt.scatter(y_test, predictions)[13]。

图4-2 模型散点图分析

这段代码使用历史销量数据进行训练,然后基于线性回归模型预测未来销量。首先将数据集划分为训练集和测试集,然后创建并训练了一个线性回归模型。最后,我们使用模型对测试集进行预测并计算均方误差,同时也展示了如何用模型预测未来销量。

这段代码使用历史销量数据进行训练,然后基于线性回归模型预测未来销量。首先将数据集划分为训练集和测试集,然后创建并训练了一个线性回归模型。最后,我们使用模型对测试集进行预测并计算均方误差,同时也展示了如何用模型预测未来销量。

表4-4分析主要程序

import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LinearRegressionfrom sklearn.metrics import mean_squared_error

# 读取包含历史销量的数据集

data = {

    '年份': [2015, 2016, 2017, 2018, 2019],

    '销量': [100, 120, 140, 160, 180]

}

df = pd.DataFrame(data)

# 定义特征和目标变量

X = df[['年份']]

y = df['销量']

# 划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建线性回归模型

model = LinearRegression()

# 在训练集上训练模型

model.fit(X_train, y_train)

# 在测试集上进行预测

y_pred = model.predict(X_test)

# 计算均方误差

mse = mean_squared_error(y_test, y_pred)print('均方误差:', mse)

# 预测未来销量

future_years = [2020, 2021]

future_df = pd.DataFrame({'年份': future_years})

future_sales = model.predict(future_df)print('预测的未来销量:', future_sales)

  1. 系统结论

5.1 预测模型结果分析

实际应用中,因变量若为数值型变量,可以考虑线性回归模型。模型需满足如下假设:

  因变量(残差)服从正态分布,自变量之间不存在多重共线性,自变量和因变量之间存在线性关系,用于建模的数据不存在异常值,残差项满足方差异性和独立性。

正态性检验(直方图,pp图或qq图,shapiro检验和K-S检验)

多重共线性检验(VIF>10,存在多重共线性,>100则变量间存在严重的多重共线性)。

线性相关性(数据框的corrwith方法或者seaborn模块的pairplot函数作图观察)|p|~>=0.8 高度相关  ,0.5《 |p|《0.8 中度相关,0.3《 |p|《0.5 弱相关,|p|《0.3 几乎不相关。

异常值检验(帽子矩阵、DFFITS准则、学生化残差、Cook距离)。残差独立性检验(summary()方法观察Durbin-Watson值),DW值在2左右,则残差项之间不相关,偏离2较远,则不满足残差独立性假设。

方差齐性检验(图形法和BP检验)。

具体方法过程:正态性检测(模型的前提假设是残差服从(0,1)正态分布,实质上由方程y=Xβ+ε,因变量也应该服从正态分布),检测的是因变量是否符合正态分布[14]。

表5-1正态性检测代码

import seaborn as sns

import scipy.stats as stats

from pylab import *

mpl.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

sns.distplot(a = Profit_New.Profit,

            bins =10,

            fit = stats.norm,

            norm_hist = True,

            hist_kws = {'color':'green','edgecolor':'black'},

            kde_kws = {'color':'black','linestyle':'--','label':'核密度曲线'},

            fit_kws = {'color':'red','linestyle':':','label':'正态密度曲线'}

           )

plt.legend()

plt.show()

图 5-1 正态密度结果分布

图 5-2 PP图结果分布

图 5-3 QQ图结果分布

 观察到散点均均匀的分布在直线上,说明因变量近似服从正态分布。Shapiro检验和K-S检验(因变量数据量>5000 use K-S检验法,<5000 use Shapiro检验)。

stats.shapiro(Profit_New.Profit)

输出为(0.9793398380279541, 0.537902295589447),第一个值为shapiro检验的统计量值,第二个值为对应概率p值,p值大于0.05置信水平,利润变量服从正态分布假设。

K-S检验 KSValue = stats.kstest(rvs = datay,args = (datay.mean(),datay.std(),cdf = 'norm')),需要注意的是KS检验,必须指定args参数,来传递检验变量的均值和标准差。

5.2系统功能

5.2.1功能概要

该功能是用于用户登陆新能源汽车销量影响因素的分析系统,当用户输入用户名和密码之后,经过数据校验,成功则进入主页面。

5.2.2详细描述

该后台登录功能,通过向后台登录接口发送请求,如图5-4是后台登录界面。登陆成功,则提示登陆成功,并跳转到新能源汽车销量预测和分析主页界面.

图 5-4后台登录页面截图

5.2.3功能概要

新能源汽车销量影响因素的分析系统的数据管理功能是指用户可以通过图形化界面进行数据查询和筛选,获取符合特定条件的新能源销量数据,并以可视化方式展示结果。下面是一个关于可视化查询功能的简要描述:

界面设计: 可视化查询功能应该具有用户友好的交互式界面,包括输入框、下拉框、复选框等控件,可以方便用户进行数据查询和筛选。同时,界面还应该有一定的美观性和易用性,以提高用户的使用体验。

查询条件: 可视化查询功能应该提供多种查询条件,如时间范围、评论内容、商品类型、情感极性、评分等,使用户可以根据自己的需求进行筛选。查询条件还可以根据实际情况进行扩展和调整。

数据展示: 查询结果应以可视化方式呈现,如柱状图、折线图、饼图等,可以直观地展示数据的分布和趋势。同时,也可以提供表格或列表形式的展示方式,以方便用户查看更详细的数据信息。

交互式操作: 可视化查询功能还应该支持用户的交互式操作。例如,用户可以通过鼠标单击或拖动、缩放等方式对图表进行操作,以获得更精确的数据信息。同时,也可以提供导出数据、分享链接等功能,便于用户进行数据分析和共享。

5.2.4详细描述

图 5-5 数据管他界面

图 5-6 销量预测界面

5.4 本章小结

本章主要分析了新能源汽车销量影响因素的分析和预测系统的测试过程,包括系统架构各模块测试,用户登录测试,数据管理等功能测试等。

6总结与展望

新能源车销量分析系统是在新能源汽车市场快速发展的背景下应运而生的一种重要工具。该系统通过对销售数据的监测、分析和评估,为厂商、政府和其他利益相关者提供了市场洞察和决策支持。以下是对该系统的总结与展望:

6.1总结

新能源车销量分析系统通过收集、整合和分析各类销售数据,为各方提供了客观、准确的市场情报,有助于基于数据进行决策,而非凭借主观判断。通过对新能源车销售趋势的分析,系统能够帮助厂商和政府及时了解市场需求的变化,制定相应的销售策略和政策支持,提升市场竞争力。该系统能够识别不同地域的销售情况差异,为厂商在不同地区制定差异化的市场策略提供依据,从而更好地满足不同地区的需求。通过对购车用户的画像分析,系统可以帮助厂商更好地了解目标用户群体,定制更精准的营销方案和产品设计,提高市场占有率。系统能够评估政府对新能源车市场的政策支持和激励措施对销售的影响,为政府决策提供数据支持,促进政策的科学制定和调整[15]。

使用线性回归算法预测汽车销量是一种常见的方法。在这个过程中,首先需要准备好数据集,包括汽车销量和可能影响销量的因素,比如广告投入、竞争对手销量等。然后使用线性回归模型拟合这些数据,得到一个关于销量和因素之间关系的线性方程。最后,使用这个方程来预测未来的汽车销量,并评估模型的准确性。

评估线性回归模型的准确性通常使用均方误差(Mean Squared Error, MSE)或者R平方(R-squared)等指标。MSE衡量实际销量与模型预测销量之间的差异,而R平方则衡量模型对销量变化的解释程度,取值范围为0到1,值越接近1表示模型拟合得越好。

在评估模型时,可以将数据分为训练集和测试集,用训练集训练模型,用测试集评估模型的表现。另外,还可以使用交叉验证等方法来进一步提高模型评估的准确性。通过实验数据说明,本文使用线性回归算法预测销量具有一定的准确性,能提供一定价值。

总的来说,本文使用线性回归算法可以作为预测汽车销量的一种有效工具,但是在实际应用中需要根据具体情况选择合适的特征和模型评估方法,以确保模型的准确性和可靠性。

6.2展望

未来,新能源车销量分析系统将更加注重数据的智能化应用,通过人工智能和大数据技术,实现数据的自动化采集、处理和分析,提高数据利用效率和分析精度。

新能源车销量分析系统将会增强对多维度数据的分析能力,包括销售渠道、用户行为、竞争对手分析等,为各方提供更全面、深入的市场洞察。未来,新能源车销量分析系统将与其他行业的数据系统进行更加紧密的合作,如能源、交通等,实现跨行业数据的共享和交叉分析,为产业链上下游提供更多价值。基于历史销售数据和市场趋势分析,系统将进一步发展智能预测和规划功能,帮助厂商和政府更好地进行产能规划、市场推广和政策制定,提高决策的科学性和准确性。

综上所述,新能源车销量分析系统在促进新能源汽车市场健康发展、提升产业竞争力方面发挥着重要作用,未来将不断优化升级,为新能源汽车产业的可持续发展贡献更大的力量。

    


参考文献

  1. 孙晓莹,李晓.数据挖掘在股票价格组合预测中的应用[J].计算机仿真,2012(7).
  2. BreimanL.Randomforests.MerchineLearning.2001.1845(1):5-32.
  3. 姚明煌,骆炎民.改进的线性回归及其在遥感图像中的应用[J].计算机工程与应用,2016,52(4):168-173..
  4. 秦林林.数据挖掘技术在新能源汽车销量影响预测中的应用研究[D].西南大学,2019.
  5. 颜家康.BP神经网络算法在新能源汽车销量影响预测中的应用研究[D].西南交通大学,2017.吕郁伟生等.
  6. PalaniappanS,AwangR.Intelligentheartdiseasepredictionsystemusingdataminingtechniques[C]//IEEE/ACSInternationalConferenceonComputerSystems&Applications.IEEE,2008.
  7. 吴建蓉,杨涛.数据挖掘技术在水利水电工程中的应用[J].水利水电科技进展,2022,42(05):129.
  8. 季晨洋,林杰.基于线性回归方法的甲醇期货价格预测与交易策略研究[J].上海管理科学,2023,45(01):113-118.
  9. SergioGuidon,DanielJ.Reck,KayAxhausen.Expandinga(n)(electric)bicycle-sharingsystemtoanewcity:Predictionofdemandwithspatialregressionandrandomforests[J].JournalofTransportGeography,2020,84(C).
  10. 王祖铭,李永刚,马雪中,方舸.基于粒子群优化算法线性回归模型的体外冲击波治疗泌尿系统结石疗效预测研究[J].医疗装备,2023,36(05):22-26+31.
  11. Liu Jingxin,Pan Yue,Nelson Mindy C,Gooden Lauren K,Metsch Lisa R,Rodriguez Allan E,Tross Susan,Del Rio Carlos,Mandler Raul N,Feaster Daniel J. Strategies of Managing Repeated Measures: Using Synthetic Random Forest to Predict HIV Viral Suppression Status Among Hospitalized Persons with HIV.[J]. AIDS and behavior,2023.
  12. 田惠玲,朱建华,何潇,陈新云,简尊吉,李宸宇,郭学媛,黄国胜,肖文发.基于线性回归模型的东北三省乔木林生物质碳储量预测[J].林业科学,2022,58(04):40-50.
  13. H. Piri Sahragard,M. R. Pahlavan-Rad. Prediction of Soil Properties Using Random Forest with Sparse Data in a Semi-Active Volcanic Mountain[J]. Eurasian Soil Science,2020,53(9).
  14. 吕倩倩.基于机器学习的新能源汽车销量影响预测[D].兰州大学,2017.
  15. Xu Yichen,Wang Mingxun,Chen Hao,Hu Fan. Prediction Model of Music Popular Trend Based on NNS and DM Technology[J]. Journal of Function Spaces,2022,2022.

致谢

在完成本篇论文的过程中,我得到了许多人的支持和帮助,在此一并表示感谢。

首先,我要感谢我的导师,在整个研究过程中给予了我无私的指导和帮助,提供了宝贵的思路和建议。他的耐心指导和鼓励使我更加深入地了解了数据挖掘技术和新能源汽车销量影响预测的相关知识和方法,让我受益匪浅。

其次,我要感谢我的同学和朋友,在我遇到困难和问题时给予了我无私的帮助和支持,共同探讨和研究,让我在学术研究上更加自信和坚定。

最后,我要感谢我的家人,在我学业和生活中一直给予我无限的关爱和支持,他们的支持和鼓励是我不断前进的动力源泉。

感谢所有给予我帮助和支持的人,正是因为有了你们的支持,我才能够完成这篇论文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值