为 kmeans 和 PCA 转换数据
Transforming data for kmeans and PCA
我有一个如下所示的数据集:
search_term = ['computer','usb port', 'phone adaptor']
clicks = [3,2,1]
bounce = [0,0,2]
conversion = [4,1,0]
我想将它输入到 kmeans 模型中,但是我无法将列表转换为矩阵格式,以便它可以被 kmeans 摄取。我还想使用 PCA 减小尺寸,以便在二维图中可视化。
我的代码是这样的:
X = np.array(clicks, bounce, conversion)
y = np.array(search_terms)
num_clusters = 3
pca = PCA(n_components=2, whiten=True).fit(X)
X_pca = pca.transform(X)
km=KMeans(n_clusters=num_clusters, init='k-means++',n_init=10, verbose=1)
km.fit(X_pca)
print km.labels_[:10]
这是我得到的错误:
TypeError: unsupported operand type(s) for -: 'numpy.ndarray' and 'numpy.ndarray'
此外,一旦聚类完成,我希望能够看到哪些搜索词属于哪个聚类,所以我不确定是否设置 y = np.array(search_terms)正确吗?
请指教
你怎么不打这个
>>> X=np.array(clicks,bounce,conversion)
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: only 2 non-keyword arguments accepted
错误?
我假设您希望按行排列数据项:
X=np.array([clicks,bounce,conversion]).transpose()
如果您希望每列显示它们,请删除 .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)
我有一个如下所示的数据集:
search_term = ['computer','usb port', 'phone adaptor']
clicks = [3,2,1]
bounce = [0,0,2]
conversion = [4,1,0]
我想将它输入到 kmeans 模型中,但是我无法将列表转换为矩阵格式,以便它可以被 kmeans 摄取。我还想使用 PCA 减小尺寸,以便在二维图中可视化。
我的代码是这样的:
X = np.array(clicks, bounce, conversion)
y = np.array(search_terms)
num_clusters = 3
pca = PCA(n_components=2, whiten=True).fit(X)
X_pca = pca.transform(X)
km=KMeans(n_clusters=num_clusters, init='k-means++',n_init=10, verbose=1)
km.fit(X_pca)
print km.labels_[:10]
这是我得到的错误:
TypeError: unsupported operand type(s) for -: 'numpy.ndarray' and 'numpy.ndarray'
此外,一旦聚类完成,我希望能够看到哪些搜索词属于哪个聚类,所以我不确定是否设置 y = np.array(search_terms)正确吗?
请指教
你怎么不打这个
>>> X=np.array(clicks,bounce,conversion)
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: only 2 non-keyword arguments accepted
错误?
我假设您希望按行排列数据项:
X=np.array([clicks,bounce,conversion]).transpose()
如果您希望每列显示它们,请删除 .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)