Sme*_*tel 8 k-means scikit-learn
有人可以解释一下predict()scikit learn 的 kmeans 实现中方法的用途是什么吗?官方文档说明其用途为:
预测 X 中每个样本所属的最接近的簇。
但是我也可以通过在方法上训练模型来获得输入集 X 的每个样本的簇号/标签fit_transform()。那么方法有什么用呢predict()?它是否应该指出看不见的数据最近的簇?如果是,那么如果执行 SVD 等降维措施,如何处理新的数据点?
这是一个类似的问题,但我仍然认为它没有真正的帮助。
kaz*_*ase 11
Predict() 方法有什么用?它是否应该指出看不见的数据最近的簇?
对,就是这样。
那么如果执行 SVD 等降维措施,如何处理新的数据点呢?
在将未见过的数据传递给 之前,您可以对未见过的数据应用相同的降维方法.predict()。这是一个典型的工作流程:
# prerequisites:
# x_train: training data
# x_test: "unseen" testing data
# km: initialized `KMeans()` instance
# dr: initialized dimensionality reduction instance (such as `TruncatedSVD()`)
# fitting
x_dr = dr.fit_transform(x_train)
y = km.fit_predict(x_dr)
# ...
# working with unseen data (models have been fitted before)
x_dr = dr.transform(x_test)
y = km.predict(x_dr)
# ...
Run Code Online (Sandbox Code Playgroud)
实际上,诸如fit_transform和 之类的方法fit_predict是为了方便而存在的。y = km.fit_predict(x)相当于y = km.fit(x).predict(x).
我认为如果我们将拟合部分写成如下,会更容易看出发生了什么:
# fitting
dr.fit(x_train)
x_dr = dr.transform(x_train)
km.fit(x_dr)
y = km.predict(x_dr)
Run Code Online (Sandbox Code Playgroud)
除了在拟合过程中调用.fit()同样使用的模型以及未见过的数据之外。
概括:
.fit()是用数据训练模型。.predict()or的目的.transform()是将经过训练的模型应用于数据。.fit_predict()或.fit_transform()。| 归档时间: |
|
| 查看次数: |
26833 次 |
| 最近记录: |