我已经成功地尝试使用Python 2.7在PyCharm中使用iris数据集复制sklearn tutorials之一。但是,当尝试用我自己的数据重复此操作时,我遇到了一个问题。我一直在使用'np.genfromtxt'从.csv文件导入数据,但是由于某些原因,当我应该获得2列输出时,我一直为X_r2获得单列输出(请参见下文)。因此,我用一些随机生成的变量替换了我的数据以发布到SO上,但仍然遇到同样的问题。

我在下面添加了“问题”代码,我想知道自己做错了什么。我已广泛使用PyCharm中的调试功能来检查变量的类型和形状是否与原始sklearn示例相似,但对解决问题没有帮助。任何帮助或建议,将不胜感激。

import numpy as np
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

y = np.random.randint(2, size=500)
X = np.random.randint(1, high=1000, size=(500, 6))
target_names = np.array([['XX'], ['YY']])
lda = LinearDiscriminantAnalysis(n_components=2)
X_r2 = lda.fit(X, y).transform(X)

最佳答案

在您发布的示例中,数组y的值为0、1和2,而数组的值仅为0和1。此更改实现了您想要的:

import numpy as np
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

y = np.random.randint(3, size=500)
X = np.random.randint(1, high=1000, size=(500, 6))
target_names = np.array([['XX'], ['YY']])
lda = LinearDiscriminantAnalysis(n_components=2)
X_r2 = lda.fit(X, y).transform(X)

08-06 02:07