Python 如何为KNN分类创建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"

我正在尝试为自己的数据创建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")
    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
中得到了什么?