如何通过 make_pipeline() 标准化训练和测试数据集

Posted

技术标签:

【中文标题】如何通过 make_pipeline() 标准化训练和测试数据集【英文标题】:How to standardize a training and a test dataset through make_pipeline() 【发布时间】:2019-05-23 03:07:57 【问题描述】:

我正在学习如何使用 make_pipeline 运行 K-means 模型来标准化我的数据集列的值。

我正在学习 DataCamp 课程,但我不清楚为什么它们在同一数据集上拟合和预测模型 - 在 Datacamp 案例“运动”中,即每日股票价值数据集。我认为 K-means 模型的全部目的是在训练数据集上进行训练并预测测试数据集?

与 Datacamp 案例不同,我想在列标准化的训练数据集上训练我的模型,并在列标准化的测试数据集上对其进行测试。怎么做?我正在复制并粘贴下面的 Datacamp 代码以供参考。

# Import Normalizer
from sklearn.preprocessing import Normalizer 

# Create a normalizer: normalizer
normalizer = Normalizer()

# Create a KMeans model with 10 clusters: kmeans
kmeans = KMeans(n_clusters = 5)

# Make a pipeline chaining normalizer and kmeans: pipeline
pipeline = make_pipeline(normalizer, kmeans)

# Fit pipeline to the daily price movements
pipeline.fit(movements)

# Predict the cluster labels: labels
labels = pipeline.predict(movements)

【问题讨论】:

【参考方案1】:

我认为您对 KNN 和 K-Means 模型感到困惑。 KNN 是用于分类和回归的监督学习的模型,而 K-Means 是一个聚类模型,属于无监督学习(这里没有目标变量!),通常不进行训练和测试拆分.

如果您打算测量 K-Means 的性能,请阅读here

【讨论】:

非常感谢!你对混乱的看法是对的。我理解你的观点,我真的想知道 - 你为什么要在没有结果变量的情况下训练和测试数据集?或者说,你为什么要训练一个未标记的数据集?

以上是关于如何通过 make_pipeline() 标准化训练和测试数据集的主要内容,如果未能解决你的问题,请参考以下文章

SMOTE 函数在 make_pipeline 中不起作用

为啥在 scikit-learn 中使用 make_pipeline 时出现“管道的最后一步”错误?

SMOTE函数在make_pipeline中不起作用

NLP的Taskflow API

NLP的Taskflow API

NLP的Taskflow API