当前位置: 首页 > news >正文

电商数据分析可视化预测系统

选用技术

爬虫技术:初期使用 DrissionPage 自动化采集技术,但因速度过慢更换。后期采用 request 技术,其请求响应快,能迅速获取数据。采集数据来源为京东平台。
模型:随机森林、逻辑回归模型。
前后端及可视化技术:
前端:html、css、js、echarts。
后端:python django。
数据库:mysql。

关键代码

模型预测代码:

import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import LabelEncoder, StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.metrics import accuracy_score, classification_report
from joblib import dumpfrom sklearn.preprocessing import OneHotEncoder# 关键参数:handle_unknown='ignore'(忽略未知类别,避免报错)
# 确保categories自动推断,或手动指定(避免混合类型)
encoder = OneHotEncoder(handle_unknown='ignore', sparse_output=False)
# 1. 读取数据集
data = pd.read_csv("result3.csv")# 2. 定义销量区间(基于总评数)
sales_bins = [0, 1000, 5000, 10000, float('inf')]
sales_labels = ['低销量', '中等销量', '高销量', '超高销量']
data['sales_range'] = pd.cut(data['总评数'], bins=sales_bins, labels=sales_labels, right=False)# 3. 特征和目标变量
features = ["价格", "品牌", "好评率", "平均得分"]
target = "sales_range"
X = data[features]
y = data[target]# 4. 目标变量编码(保持不变)
target_encoder = LabelEncoder()
y_encoded = target_encoder.fit_transform(y)# 5. 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y_encoded, test_size=0.2, random_state=42)# 6. 特征预处理管道(数值标准化+类别独热编码)
numeric_features = ["价格", "好评率", "平均得分"]
categorical_features = ["品牌"]preprocessor = ColumnTransformer(transformers=[('num', StandardScaler(), numeric_features),('cat', OneHotEncoder(handle_unknown='ignore'), categorical_features)])# 7. 随机森林模型(带超参数调优)
rf_pipeline = Pipeline([('preprocessor', preprocessor),('classifier', RandomForestClassifier(random_state=42))
])rf_param_grid = {'classifier__n_estimators': [100, 200],'classifier__max_depth': [None, 10, 20]
}rf_grid = GridSearchCV(rf_pipeline, rf_param_grid, cv=5, n_jobs=-1)
rf_grid.fit(X_train, y_train)
rf_model = rf_grid.best_estimator_# 8. 逻辑回归模型(解决收敛问题)
lr_pipeline = Pipeline([('preprocessor', preprocessor),('classifier', LogisticRegression(solver='saga',  # 适合高维数据和正则化max_iter=200,   # 增加迭代次数C=0.1,          # 正则化强度(可调优)random_state=42))
])
lr_pipeline.fit(X_train, y_train)# 9. 模型评估
# 随机森林
rf_predictions = rf_model.predict(X_test)
rf_accuracy = accuracy_score(y_test, rf_predictions)
print("随机森林模型的准确率:", rf_accuracy)
print("随机森林分类报告:\n", classification_report(y_test, rf_predictions, target_names=sales_labels))# 逻辑回归
lr_predictions = lr_pipeline.predict(X_test)
lr_accuracy = accuracy_score(y_test, lr_predictions)
print("逻辑回归模型的准确率:", lr_accuracy)
print("逻辑回归分类报告:\n", classification_report(y_test, lr_predictions, target_names=sales_labels))# 10. 保存模型和预处理工具
dump(rf_model, "rf_sales_model.joblib")
dump(lr_pipeline, "lr_sales_model.joblib")
dump(target_encoder, "target_encoder.joblib")

系统展示

资料获取

私信老师

http://www.dtcms.com/a/339608.html

相关文章:

  • GPT-5论文写作全流程提示词库
  • 点大餐饮独立版系统源码v1.0.3+uniapp前端+搭建教程
  • 图像采集卡与工业相机:机器视觉“双剑合璧”的效能解析
  • spring事务(@Transactional)失效的情景及处理
  • RabbitMQ:SpringAMQP 多消费者绑定同一队列
  • shenyu网关与与nacos业务网关的定位
  • 源网荷储 + 微电网:1+1 如何大于 2?能源协同解决方案
  • c++日志宏 INFO(...)
  • Webpack 5 配置完全指南:从入门到精通
  • Docker镜像--镜像分层、UnionFS、镜像发布、私有库Registry
  • Java -- 用户线程和守护线程--线程同步机制
  • 大模型问题:幻觉分类+原因+各个训练阶段产生幻觉+幻觉的检测和评估基准
  • OpenSCA开源社区每日安全漏洞及投毒情报资讯|18th Aug. , 2025
  • 【GNSS定位原理及算法杂记6】​​​​​​PPP(精密单点定位)原理,RTK/PPK/PPP区别讨论
  • usb通信中工作模式:主机模式和设备模式
  • 2025年渗透测试面试题总结-21(题目+回答)
  • 水闸安全监测的主要核心内容
  • Java NIO 核心精讲(上):Channel、Buffer、Selector 详解与 ByteBuffer 完全指南
  • 数字政务安全实战:等保2.0下OA系统的身份认证与数据防护
  • 微软AD国产化替换倒计时——不是选择题,而是生存题
  • 三次握手四次挥手
  • 决策树算法详解
  • Orange的运维学习日记--47.Ansible进阶之异步处理
  • ESP32应用——HTTP client(ESP-IDF框架)
  • STM32之MCU和GPIO
  • AT_abc397_f [ABC397F] Variety Split Hard
  • 高速传输的关键:8B/10B编码学习记录
  • 应用控制技术与内容审计技术
  • 系统架构设计师-操作系统-避免死锁最小资源数原理模拟题
  • 寻找旋转排序数组中的最小值