首页 > 解决方案 > 基于模型参数的聚类

问题描述

我一直在尝试基于 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.]))

标签: pythoninterceptfeature-clustering

解决方案


每次训练模型后,通过附加系数和截距数组来构建用于聚类的 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 值的聚类结果。


推荐阅读