引言
欢迎来到今天的实战案例分享,我们将利用魔搭平台实现一个直播带货的销售预测模型。如果您对魔搭平台还不熟悉,可以先阅读这篇文章 魔搭社区:遥遥领先! 开启AI时代的无限可能,它详细介绍了魔搭社区的基础信息和其在AI领域的优势。
而今天,我们将基于这个强大的平台,一步步构建我们的直播带货预测模型,探索如何将理论知识应用于实际问题中。
让我们先来一睹最终成果吧!
从图中可以看到,我们不仅成功建立了一个能够准确预测直播带货销售额的机器学习模型,而且通过可视化手段直观展示了模型的表现。准备好了吗?现在,我们正式开启这段充满挑战与乐趣的旅程。
一、 基础准备
1. 注册与入门
要使用魔搭平台,首先需要访问魔搭社区注册页面进行免费注册。
一旦完成注册,您将解锁一个充满无限可能的世界,这里不仅有预训练模型和代码示例等丰富资源等待您的探索,更是一个开发者交流和学习的理想场所。
2. 环境搭建
探索免费示例项目
这些示例不仅有助于您快速了解魔搭的功能和使用方法,还能为您提供宝贵的灵感和学习材料。
通过这些示例项目,您可以初步体验如何在魔搭平台上构建和部署机器学习模型。
获取强大的云端计算资源
通过注册阿里云账号,您可以轻松获取到足以支撑复杂计算任务的强大计算资源。这不仅解决了本地硬件限制的问题,还为大规模数据处理和深度学习模型训练提供了可能。
魔搭平台还提供了基于Jupyter Notebook的在线实验室(.ipynb文件),它不仅免去了环境配置的烦恼,还让协作变得更加简单快捷,这种云端实验室非常适合初学者或需要高性能计算资源的研究人员,使他们可以专注于算法设计和模型优化,而无需担心底层基础设施的搭建与维护。
通过结合阿里云的强大计算能力和魔搭平台便捷的在线实验室,我们能够迅速搭建起一个理想的机器学习开发环境,为接下来的直播带货预测项目奠定坚实的基础。现在,一切都已就绪,让我们继续前进,迎接新的挑战吧!
3. 新建项目
登录后,在魔搭平台上新建一个项目文件,这将成为我们接下来工作的起点。创建新项目时,您可以根据自己的需求选择合适的模板(这里我选择的是python),为后续的工作打下坚实的基础。
Python在AI应用开发中广受青睐,得益于其丰富的机器学习库如TensorFlow和PyTorch,以及简洁易懂的语法。它拥有活跃的社区支持和强大的数据处理能力,能够高效管理大规模数据集并提供直观的可视化工具。因此,Python的强大生态和灵活性使其成为构建和部署AI解决方案的理想选择。
4. 数据准备
数据是任何机器学习项目的基石。本次实验中,我准备了包含5840条记录的数据集,涵盖了直播带货的部分关键指标,更多数据通常意味着更精确的结果,因此如果您有条件的话,不妨尝试收集更大规模的数据集用于训练。
在这一阶段,我们不仅要关注数据的数量,更要重视数据的质量。良好的数据预处理工作可以显著提升模型的表现,减少不必要的误差来源。
二、 代码,搞起!
1. pandas 最流行的数据分析库
# python 模块引入
import pandas as pd
df_ads = pd.read_csv("直播带货.csv")
# 数据样本的尺寸
print(df_ads.size)
# 默认是 5条
df_ads.head(10)
在这里,我们引入了pandas
这个数据分析库,并通过这个库中的read_csv
引入我们本地的读取各种格式的文件。
一旦文件被成功加载,我们可以使用.size
属性来获取数据集中元素的总数(我这里是5840个数据),了解整体规模;同时,利用.head()
方法可以快速查看数据集的前几行,帮助我们初步理解数据结构和内容。
通过这一步骤,我们完成了数据的初步探索,为后续的数据清洗和分析奠定了基础。
2. matolitlib.pyplot 数据可视化的实现
import matplotlib.pyplot as plt
plt.plot(df_ads['转发量'], df_ads['成交额'], 'r.', label='data dot')
plt.xlabel('shares')
plt.ylabel('sales')
plt.legend()
plt.show()
matplotlib
是一个广泛使用的Python绘图库,能够生成高质量的图表以辅助数据分析。
上述代码展示了如何使用matplotlib
绘制“转发量”与“成交额”之间的散点图:
plt.plot()
:这是matplotlib
库中用于绘制图表的核心函数。通过传递两个序列作为参数(这里是df_ads['转发量']
和df_ads['成交额']
),它可以创建出两者的关联图形。'r.'
:这是一个格式化字符串,其中'r'
表示红色,.
表示点的形状为圆形,使得每个数据点在图表上以红色圆点形式呈现。plt.xlabel()
和plt.ylabel()
:分别为X轴和Y轴添加标签,提高图表的可读性。plt.legend()
:显示图例,帮助区分图表中的不同元素。
3. 数据训练
机器模型选择
# 简单模型 ,线性回归(Regression)
from sklearn.linear_model import LinearRegression
# 线性回归算法的模型实例
model = LinearRegression()
在这一阶段,我们基于对数据的理解和初步探索,选择了线性回归作为我们的预测模型。
线性回归是一种简单而有效的监督学习方法,特别适用于数值型目标变量(如本例中的“成交额”)的预测任务。
数据预处理
# 移除成交额 这一列
# 影响成交额的影响因子拿出来 训练
X = df_ads.drop(["成交额"], axis = 1)
# X
# 成交额 特征
y = df_ads.成交额
print(X.head())
y.head()
为了训练模型,我们需要将原始数据拆分为特征矩阵X
(所有可能影响成交额的因素)和目标向量y
(即实际成交额)。
这一步骤被称为特征提取或特征选择,对于提高模型性能至关重要。通过这种方式,我们可以专注于那些真正对结果有影响的因素,同时避免不必要的噪声干扰。
数据分割
# 数据训练---数据分为训练集、测试集
# 训练 测试
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)
sklearn
是Python中非常流行的机器学习库,提供了丰富的工具来支持各种机器学习任务。其中train_test_split
函数用于将数据集划分为训练集和测试集,这对于评估模型性能非常重要,再通过指定test_size=0.2
,我们将20%的数据保留为测试集,以便后续验证模型的泛化能力;同时,设置random_state
参数确保每次运行代码时都能得到相同的数据划分,从而提高实验结果的可重复性。
开始训练
# y= ax+ b 拿到趋势
# fit 方法是将模型与数据连接起来的关键步骤
model.fit(X_train, y_train)
fit
方法是Scikit-Learn中用于训练模型的核心函数。调用此方法时,模型会自动调整内部参数以尽可能好地拟合给定的训练数据。这是机器学习流程中的核心环节,决定了模型能否准确捕捉数据背后的规律。
4. 模型评估
# 拿到预期的结果数据 衡量模型的训练质量
y_pred = model.predict(X_test)
通过.predict
方法,我们可以使用训练好的线性回归模型对测试集中的特征数据进行预测。
5. 拷贝测试集数据并添加预测结果
df_ads_pred = X_test.copy()
df_ads_pred.head()
df_ads_pred['成交额真值'] = y_test
df_ads_pred['成交额预测值'] = y_pred
df_ads_pred
这段代码创建了一个新的DataFrame df_ads_pred
,它是测试集的一个副本,但额外包含了两列:一列是实际的“成交额真值”,另一列是模型预测的“成交额预测值”。这使得我们可以轻松地比较每个样本的真实值和预测值,从而更深入地了解模型的表现。
6. 最后进行性能评分
# 训练越多预测越准确
print("线性回归预测集评分", model.score(X_test, y_test))
print("线性回归训练集评分", model.score(X_train, y_train))
最后,我们通过score
方法计算模型在测试集和训练集上的决定系数(R²),以此衡量模型的整体性能。R²值反映了模型解释数据变异性的比例,范围从负无穷到1,其中1表示完美拟合。
一个好的模型应该在这两个集合上都表现出较高的得分,表明它既不会过分依赖训练数据,也能很好地泛化到未知数据上。
7. 源代码呈现
通过上述步骤,你能不能看懂下面的代码吗?
X = df_ads[['转发量']]
X.head()
y = df_ads.成交额
y.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)
# 画布 大小是10x6
plt.figure(figsize = (10,6))
# 散点图
plt.scatter(X_test, y_test, color='red', label ="true value")
plt.plot(X_test, y_pred, color='red', linewidth = 2, label = "predict value")
plt.xlabel("shares")
plt.ylabel("selles")
plt.title('share VS selles')
# 右上角
plt.legend()
# 表格
plt.grid(True)
plt.show()
这段代码展示了从数据准备到模型训练,再到结果可视化的完整机器学习流程:首先提取“转发量”作为特征变量X
和“成交额”作为目标变量y
,并查看前几行数据以确认加载正确;
接着使用train_test_split
将数据划分为80%的训练集和20%的测试集,并设置随机种子确保结果可重复;然后创建线性回归模型并用训练集数据进行拟合;
最后,对测试集进行预测,并通过绘制散点图(真实值)和折线图(预测值)来直观展示模型的表现,图表中还添加了标签、标题、图例和网格线以便更好地解读结果。
三、 结语
以上便是本次分享的全部内容。我们一同探讨了如何利用魔搭社区(ModelScope)提供的资源和工具,深入理解大模型(LLM)的应用,并通过实际代码示例展示了从数据预处理、模型选择与训练,到最终结果可视化的完整流程。