Python 如何为KNN分类创建PCA?
我正在尝试为自己的数据创建2D pca,但我不知道要更改什么 这是我的代码:Python 如何为KNN分类创建PCA?,python,numpy,machine-learning,scikit-learn,knn,Python,Numpy,Machine Learning,Scikit Learn,Knn,我正在尝试为自己的数据创建2D pca,但我不知道要更改什么 这是我的代码: data_df = pd.DataFrame.from_csv("fvectors.csv") data_df = data_df.reindex(np.random.permutation(data_df.index)) X = np.array(data_df[features].values) data_df2 = pd.DataFrame.from_csv("fvectors.csv"
data_df = pd.DataFrame.from_csv("fvectors.csv")
data_df = data_df.reindex(np.random.permutation(data_df.index))
X = np.array(data_df[features].values)
data_df2 = pd.DataFrame.from_csv("fvectors.csv")
y = np.array(data_df2[features1].replace("Circle",0).replace("Triangle",1)
.replace("Square",2).replace("Parallelogram",3)
.replace("Rectangle",4).replace("Pentagon",5)
.replace("Seal",6).values.tolist())
target_names = data_df.Label
plt.figure()
colors = ['navy', 'turquoise', 'darkorange']
lw = 2
pca = PCA(n_components=2)
X_r = pca.fit(X).transform(X)
for color, i, target_name in zip(colors, [0, 1, 2], target_names):
plt.scatter(X_r[y == i, 0], X_r[y == i, 1], color=color, alpha=.8, lw=lw,
label=target_name)
plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('PCA of 2D Shape Dataset')
我得到这个错误:
plt.scatter(X_r[y == i, 0], X_r[y == i, 1], color=color, alpha=.8, lw=lw, label=target_name)
IndexError: too many indices for array
我知道我可能在做傻事。是否有人知道如何修复此错误和我的数据代码的其余部分,使其正常工作
谢谢检查数据的内容。似乎没有列
target\u names
@pbreach我将其更改为“label”,这是列标题,然后我得到了这个plt.scatter(X\u r[y==I,0],X\u r[y==I,1],color=color,alpha=.8,lw=lw,label=target\u name)索引器错误:arrayOk的索引太多了,对于这个错误来说非常好,似乎X\u r
是一个从X
开始的一维数组。什么是功能
?它似乎需要一个列名列表,但可能只有一个。@pbreach features=[“边数”、“边数/周长的标准偏差”、“角度的标准偏差”、“最大角度”]Hmm好的,您可以尝试将X=np.array(data\u df[features].values)
更改为X=data\u df[features].values
,它将已经是一个数组。你从X.shape
和X\u.r.shape
中得到了什么?