Scikit学习使用Logistic回归问题使用K均值进行维数缩减时,我仍需要提供目标变量吗?

问题描述

目前,一名学生正在通过Scikit-Learn,Keras和TensorFlow 2nd Edition学习Aurelien Geron的机器学习实践。在聚类一章中,他介绍了一个管道,该管道首先使用KMeans聚类进行维降,然后对MNIST Digit数据集执行逻辑回归。

标准进口:

from sklearn.datasets import load_digits
X_digits,y_digits = load_digits(return_X_y = True)

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X_digits,y_digits)

作者然后引用:

“我们将创建一个管道,该管道首先将训练集聚类为50个聚类,然后 将图像及其距离替换为这50个聚类 ,然后应用Logistic回归模型“

from sklearn.pipeline import Pipeline
from sklearn.cluster import KMeans
from sklearn.linear_model import LogisticRegression

pipeline = Pipeline([
    ("kmeans",Kmeans(n_clusters=50)),("log_reg",LogisticRegression())
])

pipeline.fit(X_train,y_train)

>>>pipeline.score(X_test,y_test)
0.9777
  1. 由于Kmeans聚类的输出将为X_train拆分中的每一行分配给我聚类,为什么还要在 pipeline.fit 包括y_train参数作为目标?
  2. li>
  3. Aurelien说“ 将图像替换为与这50个簇的距离 ”是什么意思。再次,为什么我们不能仅将y_train分配为KMeans聚类的输出类?

如果我理解不正确,感谢您对概念的解释!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)