在 numpy 数组上使用拟合变换
Using fit transform on a numpy array
这是我的代码,用于将数据列表转换为 Kmeans 模型。我想使用 PCA 在二维图中可视化我的集群。
import numpy as np
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
#my data is longer than this but this is a sample :
search_terms = ['computer','usb port', 'phone adaptor']
clicks = [3,2,1]
bounce = [0,0,2]
conversion = [4,1,0]
X = np.array([bounce,conversion,clicks]).T
y = np.array(search_term)
num_clusters = 5
pca = PCA(n_components=2, whiten=True).fit_transform(X)
data2D = pca.transform(X)
km = KMeans(n_clusters=num_clusters, init='k-means++',n_init=10, verbose=1)
km.fit(X_pca)
centers2D = pca.transform(km.cluster_centers_)
plt.scatter( data2D[:,0], data2D[:,1], c=label_color)
这是我收到的错误:
data2D = pca.transform(X)
AttributeError: 'numpy.ndarray' object has no attribute 'transform'
我想我们不能在 numpy 数组上使用 pca 的 fit_transform。我可以做什么?
谢谢
看起来你打了两次fit_transform,这真的是你想做的吗?
这似乎对我有用:
pca = PCA(n_components=2, whiten=True).fit(X)
data2D = pca.transform(X)
data2D
Out[5]:
array([[-1.29303192, 0.57277158],
[ 0.15048072, -1.40618467],
[ 1.14255114, 0.8334131 ]])
这是我的代码,用于将数据列表转换为 Kmeans 模型。我想使用 PCA 在二维图中可视化我的集群。
import numpy as np
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
#my data is longer than this but this is a sample :
search_terms = ['computer','usb port', 'phone adaptor']
clicks = [3,2,1]
bounce = [0,0,2]
conversion = [4,1,0]
X = np.array([bounce,conversion,clicks]).T
y = np.array(search_term)
num_clusters = 5
pca = PCA(n_components=2, whiten=True).fit_transform(X)
data2D = pca.transform(X)
km = KMeans(n_clusters=num_clusters, init='k-means++',n_init=10, verbose=1)
km.fit(X_pca)
centers2D = pca.transform(km.cluster_centers_)
plt.scatter( data2D[:,0], data2D[:,1], c=label_color)
这是我收到的错误:
data2D = pca.transform(X)
AttributeError: 'numpy.ndarray' object has no attribute 'transform'
我想我们不能在 numpy 数组上使用 pca 的 fit_transform。我可以做什么?
谢谢
看起来你打了两次fit_transform,这真的是你想做的吗?
这似乎对我有用:
pca = PCA(n_components=2, whiten=True).fit(X)
data2D = pca.transform(X)
data2D
Out[5]:
array([[-1.29303192, 0.57277158],
[ 0.15048072, -1.40618467],
[ 1.14255114, 0.8334131 ]])