基于点赞数和热度指数预测微信软文浏览量的Python机器学习项目

本项目使用Python和机器学习模型,基于点赞数和热度指数预测微信软文浏览量。

1. 数据准备

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)

2. 数据分析

# 分析点赞数、热度指数、浏览量之间的相关性
sns.pairplot(df_ads[['点赞数', '热度指数', '浏览量']])
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()

3. 特征工程

# 将点赞数和热度指数都加入到特征中
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)

4. 模型构建和评估

# 使用随机森林模型
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('平均绝对误差:%.2f' % np.mean(np.abs(y_test - y_pred)))
print('解释方差:%.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('平均绝对误差:%.2f' % np.mean(np.abs(y_test - y_pred)))
print('解释方差:%.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('平均绝对误差:%.2f' % np.mean(np.abs(y_test - y_pred)))
print('解释方差:%.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
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
print("神经网络预测集评分:", model_mlp.score(X_test, y_test))
print("神经网络训练集评分:", model_mlp.score(X_train, y_train))

总结

本项目使用Python和机器学习模型,基于点赞数和热度指数预测微信软文浏览量。通过分析模型评估指标,可以帮助你了解如何使用数据分析和机器学习进行预测。

注意:

  • 本项目仅供学习参考,实际应用中需要根据具体情况进行调整和优化。
  • 数据集 '易速鲜花微信软文.csv' 需要自行准备。
Python机器学习项目:基于点赞数和热度指数预测微信软文浏览量

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

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