#费希尔判别分析实例
import pandas as pd
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
#读取数据
data = pd.read_excel('./examp5.4.1.xlsx')
data = data.values
x = data[:,0:4]
y = data[:,4]
#线性判别分析
lda = LinearDiscriminantAnalysis(n_components=2)
#用数据拟合LDA模型
lda.fit(x,y)
#将拟合好的模型用于数据变换
x_new = lda.transform(x)
#画出变换后图象的散点图
plt.scatter(x_new[:,0],x_new[:,1],marker = 'o', c=y)
plt.show()
#LDA变换前的散点图
plt.scatter(x[:,0],x[:,1],marker='o', c=y)
plt.show()
#利用LDA进行判别的正确率以及混淆矩阵
y_pred = lda.predict(x)
y_score = lda.score(x,y)
print(confusion_matrix(y,y_pred))
print('错误率=', 1 - y_score)