当前位置:   article > 正文

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

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

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

1. 项目简介

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

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

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

2. 汽车信息采集

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

  1. response = requests.get(url, headers=headers)
  2. response.encoding = 'gbk'
  3. soup = BeautifulSoup(response.text, 'lxml')
  4. cars = soup.select('div.list-cont')
  5. brand_cars = []
  6. for car in cars:
  7. try:
  8. car_info = {'品牌': brand}
  9. name = car.select('a.font-bold')[0].text
  10. score = car.select('span.score-number')
  11. if len(score) == 0:
  12. score = '暂无'
  13. else:
  14. score = score[0].text
  15. car_info['车系'] = name
  16. car_info['评分'] = score
  17. ul = car.select('ul.lever-ul')[0]
  18. for li in ul.select('li'):
  19. data = li.text.replace('\xa0', '').replace(' ', '').replace(' ', '').strip().split(':')
  20. if '颜色' in data[0]: continue
  21. if len(data) < 2: continue
  22. car_info[data[0]] = data[1]
  23. price = car.select('span.font-arial')[0].text
  24. price = price.split('-')
  25. if len(price) == 1:
  26. car_info['最低指导价'] = price[0]
  27. car_info['最高指导价'] = price[0]
  28. else:
  29. car_info['最低指导价'] = price[0] + '万'
  30. car_info['最高指导价'] = price[1]
  31. car_info['链接'] = url
  32. brand_cars.append(car_info)
  33. except:
  34. print('error...')
  35. continue

        汽车销量数据采集:

  1. def factory_car_sell_count_spider():
  2. """
  3. 中国汽车分厂商每月销售量
  4. https://XXXXXXX/factory.html
  5. """
  6. base_url = 'https://XXXXXXX/factory-{}-{}-{}.html'
  7. year_month = '201506'
  8. factory_month_sell_counts = []
  9. now_date = datetime.now().strftime("%Y%m")
  10. while year_month < now_date:
  11. for page_i in range(1, 5):
  12. try:
  13. url = base_url.format(year_month, year_month, page_i)
  14. print(url)
  15. resp = requests.get(url, headers=headers)
  16. resp.encoding = 'utf8'
  17. soup = BeautifulSoup(resp.text, 'lxml')
  18. table = soup.select('table.xl-table-def')
  19. trs = table[0].find_all('tr')
  20. for tr in trs:
  21. tds = tr.find_all('td')
  22. if len(tds) < 4: continue
  23. # 厂商logo
  24. ......
  25. factory_month_sell_counts.append((year_month, factory_logo, factory, sell_count, ratio))
  26. time.sleep(1)
  27. except:
  28. print('error...')
  29. continue
  30. # 下个月份
  31. ......

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

3.1 系统首页与注册登录

3.2 汽车销量分析

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

3.3 汽车品牌车系分析

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

3.4 汽车评分分析

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

3.5 汽车指导价分析

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

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

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

  1. df_columns = dataset.columns.values
  2. print('---> cv train to choose best_num_boost_round')
  3. all_y = np.log1p(all_y)
  4. dtrain = xgb.DMatrix(all_x, label=all_y, feature_names=df_columns)
  5. xgb_params = {
  6. 'learning_rate': 0.01,
  7. 'max_depth': 4,
  8. 'eval_metric': 'rmse',
  9. 'objective': 'reg:linear',
  10. 'nthread': -1,
  11. 'silent': 1,
  12. 'booster': 'gbtree'
  13. }
  14. cv_result = xgb.cv(dict(xgb_params),
  15. dtrain,
  16. num_boost_round=4000,
  17. early_stopping_rounds=100,
  18. verbose_eval=100,
  19. show_stdv=False,
  20. )
  21. best_num_boost_rounds = len(cv_result)
  22. mean_train_logloss = cv_result.loc[best_num_boost_rounds -
  23. 11: best_num_boost_rounds - 1, 'train-rmse-mean'].mean()
  24. mean_test_logloss = cv_result.loc[best_num_boost_rounds -
  25. 11: best_num_boost_rounds - 1, 'test-rmse-mean'].mean()
  26. print('best_num_boost_rounds = {}'.format(best_num_boost_rounds))
  27. print('mean_train_rmse = {:.7f} , mean_valid_rmse = {:.7f}\n'.format(
  28. mean_train_logloss, mean_test_logloss))
  29. print('---> training on total dataset to predict test and submit')
  30. model = xgb.train(dict(xgb_params),
  31. dtrain,
  32. num_boost_round=best_num_boost_rounds)
  33. # 特征重要程度
  34. feature_importance = model.get_fscore()
  35. feature_importance = sorted(
  36. feature_importance.items(), key=lambda d: d[1], reverse=True)

3.7 汽车个性化推荐

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

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

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

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

  1. def cos_sim(x, y):
  2. """
  3. 余弦相似性
  4. input: x(mat):以行向量的形式存储,可以是用户或者商品
  5. y(mat):以行向量的形式存储,可以是用户或者商品
  6. output: x和y之间的余弦相似度
  7. """
  8. x = x.reshape(1, -1)
  9. y = y.reshape(1, -1)
  10. numerator = x * y.T # x和y之间的内积
  11. denominator = np.sqrt(x * x.T) * np.sqrt(y * y.T)
  12. return (numerator / (denominator + 0.000001))[0, 0]
  13. def similarity(data):
  14. """
  15. 计算矩阵中任意两行之间的相似度
  16. input: data(mat):任意矩阵
  17. output: w(mat):任意两行之间的相似度
  18. """
  19. m = np.shape(data)[0] # 用户的数量
  20. # 初始化相似度矩阵
  21. w = np.mat(np.zeros((m, m)))
  22. for i in range(m):
  23. for j in range(i, m):
  24. if j != i:
  25. # 计算任意两行之间的相似度
  26. w[i, j] = cos_sim(data[i,], data[j,])
  27. w[j, i] = w[i, j]
  28. else:
  29. w[i, j] = 0
  30. return w
  31. def top_k(predict, k):
  32. """
  33. 为用户推荐前k个商品
  34. input: predict(list):排好序的商品列表
  35. k(int):推荐的商品个数
  36. output: top_recom(list):top_k个商品
  37. """
  38. top_recom = []
  39. len_result = len(predict)
  40. if k >= len_result:
  41. top_recom = predict
  42. else:
  43. for i in range(k):
  44. top_recom.append(predict[i])

4. 总结

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

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

精彩专栏推荐订阅:

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

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

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

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

闽ICP备14008679号