
无监督学习
|
245
df <- sp500_px[row.names(sp500_px) >= '2011-01-01', syms]
km <- kmeans(df, centers=5, nstart=10)
这个函数自动返回这
10
个不同启动点中的最优解。可以使用参数
iter.max
来设置每次随
机启动时算法的最大迭代次数。
在
scikit-learn
中,算法默认重复
10
次(
n_init
)。可以使用参数
max_iter
(默认值
300
)
控制迭代次数:
syms = sorted(['AAPL', 'MSFT', 'CSCO', 'INTC', 'CVX', 'XOM', 'SLB', 'COP',
'JPM', 'WFC', 'USB', 'AXP', 'WMT', 'TGT', 'HD', 'COST'])
top_sp = sp500_px.loc[sp500_px.index >= '2011-01-01', syms]
kmeans = KMeans(n_clusters=5).fit(top_sp)
7.2.3
簇的解释
聚类分析的一个重要部分是解释簇。
kmeans
最重要的两个输出就是簇的大小和簇的均值。
在上一节的例子中,最终簇的大小可以由以下
R
命令得出:
km$size
[1] 106 186 285 288 266
在
Python
中,可以使用标准库中的
collections.Counter
类来获取这种信息。由于具体实
现的差别,以及这种算法固有的随机性,结果会有所不同。
from collections ...