我已经成功地使用Python 2.7使用PyCharm中的iris数据集复制了其中一个sklearn教程。 但是,当尝试用我自己的数据重复此操作时,我遇到了一个问题。我一直在使用"np.genfromtxt"从.csv文件导入数据,但由于某种原因,我不断获得X_r2的单列输出(见下文),而我应该得到 2 列输出。因此,我用一些随机生成的变量替换了我的数据以发布到 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)