Regression"回归"是机器学习中的一个术语,指的是预测一个连续的数值,而不是分类的类别。这个词通常被翻译为"回归"。这个翻译有时候感觉有点晦涩难懂,也可以考虑使用"数值预测"或者"回归预测"理解上会更容易一些。
"回归"意味着预测一个数字,而不是其中的一个类别。我们将基于评论文本的嵌入来预测评分。我们将数据集分为训练集和测试集,以便于所有后续任务在未见过的数据上进行真实的性能评估。数据集是在Obtain_dataset.ipynb创建的。
这次学习的代码是,Regression_using_embeddings.ipynb
它目的是使用随机森林回归器(RandomForestRegressor)预测亚马逊评论的评分。
1.导入的库:sklearn.ensemble 中的 RandomForestRegressor 是用于回归预测的模型,sklearn.model_selection 中的 train_test_split 用于将数据集划分为训练集和测试集,sklearn.metrics 中的 mean_squared_error 和 mean_absolute_error 用于评估模型的预测性能。
2.数据划分:使用 train_test_split 函数将数据集划分为训练集和测试集。这里,80% 的数据用于训练,剩余的 20% 用于测试。
3.模型训练:初始化一个 RandomForestRegressor 模型,然后使用训练集的数据进行训练。
几个关键代码段的解释:
- X_train, X_test, y_train, y_test = train_test_split(list(df.embedding.values), df.Score, test_size=0.2, random_state=42)
-
- rfr = RandomForestRegressor(n_estimators=100)
-
- rfr.fit(X_train, y_train)
- preds = rfr.predict(X_test)
- mse = mean_squared_error(y_test, preds)
- mae = mean_absolute_error(y_test, preds)
X_train, X_test, y_train, y_test = train_test_split(list(df.embedding.values), df.Score, test_size=0.2, random_state=42)
: 这行代码是使用 train_test_split
函数将数据集划分为训练集和测试集。df.embedding.values
是评论的嵌入向量,df.Score
是评论的评分,test_size=0.2
表示测试集占总数据集的 20%,random_state=42
是随机数生成器的种子,用于确保每次运行代码时数据集的划分方式相同。
rfr = RandomForestRegressor(n_estimators=100)
: 这行代码是创建一个随机森林回归器(RandomForestRegressor)对象。参数 n_estimators=100
表示随机森林中包含 100 棵决策树。
rfr.fit(X_train, y_train)
: 这行代码是调用随机森林回归器的 fit
方法进行模型训练。X_train
是训练集的特征,y_train
是训练集的目标值。
preds = rfr.predict(X_test)
: 这行代码是使用训练好的模型对测试集进行预测。X_test
是测试集的特征,返回的 preds
是模型对测试集的预测值。
mse = mean_squared_error(y_test, preds)
: 这行代码是计算预测结果的均方误差(Mean Squared Error,MSE)。y_test
是测试集的真实值,preds
是模型对测试集的预测值。
mae = mean_absolute_error(y_test, preds)
: 这行代码是计算预测结果的平均绝对误差(Mean Absolute Error,MAE)。