问题描述
目前,一名学生正在通过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
- 由于Kmeans聚类的输出将为X_train拆分中的每一行分配给我聚类,为什么还要在 pipeline.fit 中包括y_train参数作为目标? li>
- Aurelien说“ 将图像替换为与这50个簇的距离 ”是什么意思。再次,为什么我们不能仅将y_train分配为KMeans聚类的输出类?
如果我理解不正确,感谢您对概念的解释!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)