这两个代码片段的区别只在于 train_test_split 函数的 random_state 参数不同。第一个代码中 random_state 为 0,第二个代码中 random_state 为 10。

random_state 参数的作用是控制数据划分的随机性,保证每次运行的结果一致。不同的 random_state 值会使得数据划分不同,从而会对模型的表现产生一定的影响。

第一个代码片段:

import pandas as pd
df_ads = pd.read_csv('易速鲜花微信软文.csv') 
df_ads.head(10)
df_ads.isna().sum()
df_ads = df_ads.dropna()
import matplotlib.pyplot as plt
import seaborn as sns
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) 
fig.axis(ymin=0, ymax=800000);
X = df_ads.drop(['浏览量'],axis=1) 
y = df_ads.浏览量
X.head()
y.head()
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
from sklearn.linear_model import LinearRegression 
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
df_ads_pred = X_test.copy() 
df_ads_pred['浏览量真值'] = y_test 
df_ads_pred['浏览量预测值'] = y_pred 
df_ads_pred
print('线性回归预测集评分:', model.score(X_test, y_test))
print('线性回归训练集评分:', model.score(X_train, y_train))

第二个代码片段:

import pandas as pd
df_ads = pd.read_csv('易速鲜花微信软文.csv') 
df_ads.head(10)
df_ads.isna().sum()
df_ads = df_ads.dropna()
import matplotlib.pyplot as plt
import seaborn as sns
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) 
fig.axis(ymin=0, ymax=800000);
X = df_ads.drop(['浏览量'],axis=1) 
y = df_ads.浏览量
X.head()
y.head()
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=10)
from sklearn.linear_model import LinearRegression 
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
df_ads_pred = X_test.copy() 
df_ads_pred['浏览量真值'] = y_test 
df_ads_pred['浏览量预测值'] = y_pred 
df_ads_pred
print('线性回归预测集评分:', model.score(X_test, y_test))
print('线性回归训练集评分:', model.score(X_train, y_train))

需要注意的是,由于数据划分的随机性,random_state 参数的不同会导致模型的训练集和测试集不同,进而影响模型的性能。因此,在实际应用中,需要根据具体情况选择合适的 random_state 值,并进行多次实验,以获得最佳模型性能。

Python 数据分析:train_test_split 中 random_state 参数的影响

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

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