小白也可以直播预测 😱| 数据分析、可视化、数据训练 | 魔搭社区🤔

前言

大家好 , 我是浪遏 , 今天学习黄佳老师的 AI 课程 , 受益良多 , 和大家一起分享 。

想直接复现的倔友 ,可移至文末 , 有在 Notebook 的全部截图 , 数据样本可在文中 gitee 地址获取

我将从需求出发 , 而不是一上来就开始思想绑架 , 告诉你这段代码干啥 ?

不明白需求 , 小白可能只看到代码(我的代码也只是调包调参,没啥看的🤡) , 所以我的文章将从需求出发 , 之后先思考如何实现 , 在给出代码 。防止大家关注点在代码上😁 , 同时也在训练我自己的思考能力 , 远离成为调包、调参侠🤡

需求分析

随着抖音"病毒式"的传播 , 现在已经是全民刷抖音的时代了 , 于是 , 短视频运营商就面临着这样的问题 :

  • 如何分析出数据之间的关系 ?
    • 比如某些变量是否具有正相关
  • 如何对数据进行预测 , 将未来趋势可视化 ?
    • 比如将数据放入坐标系 , 形成散点图 , 之后用线性回归方程去匹配
    • 如此 , 你高中的数学题 , 在大学就真真切切的实现啦 🤡
  • 甚至我们可不可以进行数据训练 , 最后将训练的数据与预测的数据进行对比 ?
    • 评估模型的训练质量 , 看看训练的模型可不可靠 ?

综合以上分析 , 我们清楚 , 我们需要干两件事情

  • 数据预测 | 数据分析及数据可视化
  • 数据训练 | 结合数据对训练的模型打分

请明确这两件事情 , 无论后面有多少代码 , 都在干这两件事情 , 不要一入代码深似海

前置准备

开发环境准备

结合我们的需求 , 我们需要实现数据预测数据训练 , 很显然本地配置环境很复杂 ,

且模型训练对 算力 要求比较高 , 我们本地的电脑带不动 , 硬上的话可能卡成 PPT

于是我采取我上次学习的魔搭社区开发环境 , 原因如下:

  • 阿里提供了虚拟机 , 环境已经配好 ,开箱即用
  • 提供python + ai机器学习环境
  • 免费🤡

我使用魔搭社区提供的如下环境 :

关于魔搭社区的使用 , 可以移步我的这篇文章 , 里面详细展示了魔搭社区的使用方法 : 开箱即用的LLM,遥遥领先!!! --魔搭社区超级详细教程前言 今天搞搞魔搭社区,涉及 LLM (大语言模型) , 而基 - 掘金 (juejin.cn)

你还可以学到 , 如何实现情感分析 ~

数据采集

我将使用通过后台导出 的 csv 文件 , 对 转发量 品类热度 流量推送 成交额 相关数据处理

CSV(Comma-Separated Values)是一种以纯文本形式存储表格数据的文件格式,常用于数据交换和导入导出。

我们只研究转发量与成交额之间的关系

数据全貌如下 :

CSV 文件可上我的 gitee 上取 : gitee.com/luli1314520...

将 CSV 文件上传至 Notebook

前置准备好 , 二话不说就开干 !!!

数据预测

实现数据预测关注以下两步

  • 数据分析
    • 使用 pandas 库
  • 数据可视化
    • 使用matplotlib 中的 pyplot 库

1.首先使用 pandas 库 , 读取文件

python 复制代码
# python 模块引入
# python 最流行的数据分析库
import pandas as pd
# js 异步的  IO 操作 
# python 同步
df_ads = pd.read_csv("直播带货.csv")
# 数据样本的尺寸
# print(df_ads.size)
# 显示前10条 , head()默认指定数据的前5条
df_ads.head(10)

2.使用matplotlib库, 数据可视化

python 复制代码
# 数据可视化
import matplotlib.pyplot as plt
# 调用plot函数 , 传入自变量df_ads['转发量'],传入因变量df_ads['成交额'],散点的颜色(红色),图例(data dot)
plt.plot(df_ads['转发量'], df_ads['成交额'], 'r.', label='data dot')
# 设置x轴标签
plt.xlabel('shares')
# 设置y轴标签
plt.ylabel('sales')
# 显示图例: data dot
plt.legend()
# 展示图形
plt.show()

根据高中所学 , 我们应该根据图的走势 , 来选择合适的方程来模拟 , 从图上可以看出数据呈现正相关 ,

所以我们才会选用 y = ax + b 线性函数 , 使用最小二乘法等来匹配上面的散列图 , 我们高中不也是这样的吗? 只不过在大学这个可以实际的做出来 。

数据训练

为了不晕掉 , 我把我的思路逻辑展现在这里:

实现数据训练的思路

  • 使用机器学习库 : sklearn
  • 数据分类
    • 特征数据 x (去除表中的"成交额"一列)
    • 目标数据 y (表中的"成交额"一列)
    • 并将上面的数据按指定比例分为
      • 测试集 20% (x_test , y_test)
      • 训练集 80% (x_train , y_train)
  • 数据训练 : 采用LinearRegression
    • 一个线性回归算法的模型
  • 模型测评
    • 数据训练后 , 对模型预测进行打分 , 得分理想 , 进行下一步
    • 得分不理想 , 更换数据再次训练 , 或者更换模型(我们思路是基于模型训练模型)
  • 数据可视化
    • 可视化为散列图
    • 使用线性回归方程拟合散列图
  1. 什么是sklearn ?

sklearn.linear_model 是Python中Scikit-learn库下的一个模块,它提供了多种线性模型相关的类和工具,涵盖了像线性回归(如 LinearRegression)、岭回归(Ridge)、套索回归(Lasso)等常见线性模型,可用于解决回归分析问题,能进行模型的创建、训练、预测以及对模型参数进行调整等一系列操作,在数据分析、机器学习领域应用广泛,助力挖掘数据中的线性关系以及完成预测任务。

  1. 数据为什么要分为测试集合训练集 ?

模型训练的思路之一就是 , 一定量数据进行训练 ,一部分的数据进行测试

  1. 使用机器学习库
python 复制代码
#数据训练
from sklearn.linear_model import LinearRegression

# 线性回归算法的模型实例
model = LinearRegression()
  1. 数据分类
python 复制代码
"""
80% 的数据用于训练 ,得到线性回归方程 : y = ax + b
20% 的数据用于测试 ,对得到的线性回归方程进行测试 :test_size=0.2
如果数据得分在90%以上则通过 , 否则不通过
使用了 Scikit-learn 库中的 train_test_split 函数,
它的作用是将数据集 x(特征数据)和 y(目标数据)按照指定的比例(这里测试集占比 test_size 为 0.2,即 20%)
随机划分为训练集(x_train、y_train)和测试集(x_test、y_test),
同时通过设置 random_state 为 0 保证每次划分的随机性是可复现的,
便于后续进行模型训练、评估等操作。
"""
from sklearn.model_selection import train_test_split
# train_test_split 将数据分为训练数据 ,测试部分
x_train,x_test,y_train,y_test = train_test_split(x , y,test_size=0.2,random_state=0)
  1. 数据训练
python 复制代码
# 训练 y = ax + b 
model.fit(x_train,y_train)
  1. 模型测评
python 复制代码
# 大模型自己打分 , 拿到预期的结果数据
# 按照测试数据
y_pred = model.predict(x_test)
python 复制代码
"""
对成交额实际值与成交额预测值进行对比

"""

#拷贝测试数据集
df_ads_pred = x_test.copy()
# 成交额实际值
df_ads_pred['成交额实际值'] = y_test
# 得到 成交额预测值
df_ads_pred['成交额预测值'] = y_pred
df_ads_pred

对比结果如下 :

进行打分

python 复制代码
# 数据量较小 , 得分较低
print("线性回归预测集评分" , model.score(x_test,y_test))
# 数据量较大 , 得分较高
print("线性回归训练集评分" , model.score(x_train,y_train))

# 数据量越大 ,得分越高 , 说明了线性回归模型适合采用

5.进行数据可视化

python 复制代码
"""
探讨转发量和成交额关系

"""

x = df_ads[['转发量']]
x.head()
x_train ,x_test , y_train , y_test = train_test_split(x,y,test_size=0.2,random_state=0)
model = LinearRegression()
# 使用训练的模型进行训练
model.fit(x_train,y_train)
# 使用测试集进行测试
y_pred = model.predict(x_test)
# 使用画布 大小是10 x 6
plt.figure(figsize=(10,6))
# 散点图
plt.scatter(x_test,y_test,color='blue',label="true value")
# 线性方程
plt.plot(x_test,y_pred,color='red',linewidth=2,label="presict value")
# 设置x轴标签
plt.xlabel("shares")
# 设置y轴标签
plt.ylabel("selles")
# 设置标题
plt.title('shares VS selles')
plt.legend()
# 使用网格
plt.grid(True)
plt.show()

总结

本文实验重点体验

  • 数据分析 ,
  • 数据可视化
  • 数据训练

的思考过程 , 我们可以了解简答的模型训练是如何实现的 , 至于代码只是在调包调参 , 重点理解数据训练的流程 , 而我的这次分享 , 在兼顾理论的同时 , 也在魔搭社区做到了落地. 欢迎大家复现 .

下次我将分享更多 AI 机器学习相关的知识 , 点赞收藏+评论~

实验全貌

以下图片是在魔搭社区 Notebook 上的全部代码实验截图 , 方便倔友对代码进行复现

相关推荐
追寻光6 分钟前
Java 绘制图形验证码
java·前端
前端snow7 分钟前
爬取数据利用node也行,你知道吗?
前端·javascript·后端
村头一颗草13 分钟前
高德爬取瓦片和vue2使用
前端·javascript·vue.js
远山无期20 分钟前
vue3+vite项目接入qiankun微前端关键点
前端·vue.js
陈随易25 分钟前
告别Node.js:2025年,我为何全面拥抱Bun
前端·后端·程序员
还是鼠鼠28 分钟前
Node.js--exports 对象详解:用法、示例与最佳实践
前端·javascript·vscode·node.js·web
CQU_JIAKE28 分钟前
2.5[frontEnd]
前端
Conqueror71232 分钟前
机器学习丨八股学习分享 EP1
人工智能·机器学习
Moment33 分钟前
前端性能指标 —— FMP
前端·javascript·面试
boring_student36 分钟前
自动驾驶与车路协同
人工智能·机器学习·自动驾驶