python - 基于模型参数的聚类
问题描述
我一直在尝试基于 SGD 模型参数(系数和截距)进行聚类。coef_ 持有权重 w,intercept_ 持有 b。这些参数如何与一组学习模型上的聚类(KMedoids)一起使用?
import numpy as np
from sklearn import linear_model
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
Y = np.array([1, 1, 2, 2])
clf = linear_model.SGDClassifier()
clf.fit(X, Y)
所以我想基于每个学习模型clf.coef_ (array([[19.47419669, 9.73709834]]))
进行 聚类。clf.intercept_ (array([-10.]))
解决方案
每次训练模型后,通过附加系数和截距数组来构建用于聚类的 X 数据集,即:
X = np.vstack((X, np.hstack((clf.coeff_, clf.intercept_))))
一旦您将 X 中的所有数据提供给它一个 KMedoids 模型,即:
from sklearn_extra.cluster import KMedoids
kmed = KMedoids(n_clusters=N).fit(X)
请注意,您已经指定了 N,并且您可能应该在基于一个或多个聚类指标选择最佳值之前测试多个 N 值的聚类结果。
推荐阅读
- javascript - 带有路径列表的 PHP 面包屑
- visual-studio-cordova - 科尔多瓦的自签名证书有什么办法吗?
- reactjs - Enzyme/Jest Context API 注入(React)不起作用
- java - 在 Spring Boot 和谷歌云中返回 arraylist
- reactjs - 将转译的“jsx”代码缩小为浏览器可读格式的问题
- c# - 按两个不同的列表排序列表
- javascript - Ajax 不断重定向到 php 页面
- ios - Swift 4 和 Xcode 10。在应用启动时播放视频,完成后显示视图控制器
- node.js - 需要解析SQS消息
- python - 如何在 Python 中成功进行单元测试?