为kmeans和PCA转换数据

2024-06-12 11:11:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据集如下:

search_term = ['computer','usb port', 'phone adaptor']
clicks = [3,2,1]
bounce = [0,0,2]
conversion = [4,1,0]

我想把它输入到kmeans模型中,但是我很难将列表转换成矩阵格式,这样kmeans就可以接收它了。我还想用PCA来减少维数,这样它就可以在2d图中可视化了。在

我的代码是这样的:

^{pr2}$

这是我得到的错误:

TypeError: unsupported operand type(s) for -: 'numpy.ndarray' and 'numpy.ndarray'

另外,一旦聚类完成,我希望能够看到哪些搜索词属于哪个聚类,所以我不确定是否设置y=np.数组(搜索关键词)是否正确?在

请告知。在


Tags: 数据numpysearchportphone聚类computerusb
2条回答

你怎么不打这个

>>> X=np.array(clicks,bounce,conversion)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ValueError: only 2 non-keyword arguments accepted

错误?在

我假设您希望数据项按行排列:

^{pr2}$

如果希望按列显示,请删除.transpose()。在

下面的代码应该可以工作。如果不是这样,请告诉我。在

import numpy as np
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans

search_terms = ['computer','usb port', 'phone adaptor']
clicks = [3,2,1]
bounce = [0,0,2]
conversion = [4,1,0]

X = np.array([clicks, bounce, conversion]).T
y = np.array(search_terms)

num_clusters = 3

X_pca = PCA(n_components=2, whiten=True).fit_transform(X)

km = KMeans(n_clusters=num_clusters, init='k-means++',n_init=10, verbose=1)
km.fit(X_pca)

相关问题 更多 >