基于 Python 的机器学习项目:使用随机森林、决策树、线性回归、支持向量机和神经网络预测微信软文浏览量

本项目使用 Python 的机器学习算法(随机森林、决策树、线性回归、支持向量机和神经网络)对易速鲜花微信软文数据进行分析,并预测浏览量。项目包含数据清洗、特征工程、模型构建、评估等步骤,并展示了散点图和直方图等图表。

代码:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_squared_error
from sklearn.neural_network import MLPRegressor
from sklearn.svm import SVR

# 读取数据
df_ads = pd.read_csv('易速鲜花微信软文.csv')
print(df_ads.head(10))

# 数据清洗
df_ads.isna().sum()   # NaN出现的次数
print(df_ads.isna().sum())
df_ads = df_ads.dropna() # 删除NaN值
print(df_ads)

# 数据分析
# 散点图
plt.scatter(df_ads['点赞数'], df_ads['浏览量'], label='Training data')
plt.xlabel('点赞数')
plt.ylabel('浏览量')
plt.legend()
plt.show()

# 直方图
sns.histplot(df_ads['浏览量'], kde=True)
plt.xlabel('浏览量')
plt.ylabel('频数')
plt.show()

plt.plot(df_ads['点赞数'], df_ads['浏览量'], 'r.', label='Training data')
plt.xlabel('点赞数')
plt.ylabel('浏览量')
plt.legend()
plt.show()

data = pd.concat([df_ads['浏览量'], df_ads['热度指数']], axis=1) # 浏览量和热度指数
fig = sns.boxplot(x='热度指数', y='浏览量', data=data) # 用seaborn的箱线图画图
fig.axis(ymin=0, ymax=800000); #设定y轴坐标
plt.show()

# 特征工程
X = df_ads[['点赞数']]
y = df_ads['浏览量']

# 数据拆分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# 模型构建
model = RandomForestRegressor()
model.fit(X_train, y_train)

# 预测结果
y_pred = model.predict(X_test)

# 模型评估
print('随机森林模型评估:')
print('均方误差:%.2f' % mean_squared_error(y_test, y_pred))
print('R2得分:%.2f' % model.score(X_test, y_test))

# 模型构建
model = DecisionTreeRegressor()
model.fit(X_train, y_train)

# 预测结果
y_pred = model.predict(X_test)

# 模型评估
print('决策树模型评估:')
print('均方误差:%.2f' % mean_squared_error(y_test, y_pred))
print('R2得分:%.2f' % model.score(X_test, y_test))

# 模型构建
model = LinearRegression()
model.fit(X_train, y_train)

# 预测结果
y_pred = model.predict(X_test)

# 模型评估
print('线性回归模型评估:')
print('均方误差:%.2f' % mean_squared_error(y_test, y_pred))
print('R2得分:%.2f' % model.score(X_test, y_test))

model_svr = SVR(kernel='rbf', C=1e3, gamma=0.1)
model_svr.fit(X_train, y_train)
y_pred_svr = model_svr.predict(X_test)
df_ads_pred_svr = X_test.copy()
df_ads_pred_svr['浏览量真值'] = y_test
df_ads_pred_svr['浏览量预测值'] = y_pred_svr
df_ads_pred_svr
print('支持向量机预测集评分:', model_svr.score(X_test, y_test))
print('支持向量机训练集评分:', model_svr.score(X_train, y_train))

model_mlp = MLPRegressor(hidden_layer_sizes=(100,50,10), max_iter=1000, alpha=0.001, solver='adam', verbose=0, random_state=21)
model_mlp.fit(X_train, y_train)
y_pred_mlp = model_mlp.predict(X_test)
df_ads_pred_mlp = X_test.copy()
df_ads_pred_mlp['浏览量真值'] = y_test
df_ads_pred_mlp['浏览量预测值'] = y_pred_mlp
df_ads_pred_mlp
print('神经网络预测集评分:', model_mlp.score(X_test, y_test))
print('神经网络训练集评分:', model_mlp.score(X_train, y_train))

项目步骤:

  1. 数据读取与清洗: 从'易速鲜花微信软文.csv' 文件中读取数据,并进行数据清洗,删除缺失值(NaN)。
  2. 数据分析:
    • 使用散点图分析点赞数和浏览量之间的关系。
    • 使用直方图分析浏览量的分布情况。
    • 使用箱线图分析热度指数和浏览量之间的关系。
  3. 特征工程: 选择'点赞数'作为特征变量,'浏览量'作为目标变量。
  4. 数据拆分: 将数据集拆分为训练集和测试集,比例为 8:2。
  5. 模型构建: 构建了五个机器学习模型:随机森林、决策树、线性回归、支持向量机和神经网络,并分别进行训练。
  6. 模型评估: 使用均方误差和 R2 得分对模型进行评估。

结论:

本项目使用多种机器学习算法对微信软文浏览量进行预测,并通过评估结果比较了不同模型的性能。您可以根据具体的需求选择合适的模型进行应用。

未来展望:

  • 可以尝试加入更多特征变量,例如发布时间、文章标题、内容等,来提高预测模型的准确率。
  • 可以尝试使用更复杂的模型,例如深度学习模型,进一步提高预测精度。
  • 可以将模型应用到实际业务场景中,例如预测文章的阅读量,为内容创作提供参考。
基于 Python 的机器学习项目:使用随机森林、决策树、线性回归、支持向量机和神经网络预测微信软文浏览量

原文地址: https://www.cveoy.top/t/topic/oIu3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录