Python 线性判别分析后,只绘制了2个聚类,而不是3个聚类
我不能把我所有的数据都放进图表里。这就是我得到的 这就是我需要得到的 我正在使用以下代码:Python 线性判别分析后,只绘制了2个聚类,而不是3个聚类,python,python-2.7,matplotlib,Python,Python 2.7,Matplotlib,我不能把我所有的数据都放进图表里。这就是我得到的 这就是我需要得到的 我正在使用以下代码: import pandas import matplotlib.pyplot as plt from sklearn.discriminant_analysis import LinearDiscriminantAnalysis import numpy as np dataset = np.loadtxt("wine.data.csv", delimiter=",") print(dataset
import pandas
import matplotlib.pyplot as plt
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
import numpy as np
dataset = np.loadtxt("wine.data.csv", delimiter=",")
print(dataset)
X = dataset[:,1:14]
y = dataset[:,0]
target_names = ['class_0', 'class_1', 'class_2']
lda = LinearDiscriminantAnalysis(n_components=2)
X_lda = lda.fit(X,y).transform(X)
plt.figure()
for c, i, target_name in zip("rgb", [0, 1, 2], target_names):
plt.scatter(X_lda[y == i, 0], X_lda[y == i, 1], c=c, label=target_name)
plt.show()
plt.plot([-6,2],[-6,4],"k-")
plt.plot([5,0],[-6,4],"k-")
plt.legend()
plt.title('LDA of WINE dataset')
plt.show()
数据集是从这里下载的。我也在使用Python2.7。我是新手,希望能得到任何帮助。
提前谢谢你 移除第一个
plt.show()
只要调用plt.show()
,就会生成绘图,此行下面的所有代码都将被忽略
此外,将[0,1,2]
更改为[1,2,3]
:
for c, i, target_name in zip("rgb", [1, 2, 3], target_names):
plt.scatter(X_lda[y == i, 0], X_lda[y == i, 1], c=c, label=target_name)
现在您获得了所需的输出。但是我的第三个集群仍然丢失。。。这就是问题所在。谢谢你的评论!添加了解决方案。非常感谢!
for c, i, target_name in zip("rgb", [1, 2, 3], target_names):
plt.scatter(X_lda[y == i, 0], X_lda[y == i, 1], c=c, label=target_name)