鸢尾花线性判别分析
數據集使用的是鳶尾花數據
from sklearn.datasets import load_iris
df = load_iris()
print(df.DESCR)
將數據集拆分為訓練集和測試集
from sklearn.model_selection import train_test_split
X_train, X_test,y_train,y_test = train_test_split(df.data,df.target,test_size=0.25,random_state=0,stratify=df.target)
使用help(train_test_split)查看幫助文檔
運行幫助文檔中的例子
import numpy as np
from sklearn.model_selection import train_test_split
X, y = np.arange(10).reshape((5, 2)), range(5)
X
引入線性判別模型、擬合、預測
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
LDA = LinearDiscriminantAnalysis()
LDA.fit(X_train,y_train)
畫圖對擬合后的結果進行展示
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
X = np.vstack((X_train,X_test)) #定義參數X
Y = np.vstack((y_train.reshape(y_train.size,1),\ #定義參數Y
y_test.reshape(y_test.size,1)))
X.shape
Y.shape
converted_X = np.dot(X,np.transpose(LDA.coef_)) +
LDA.intercept_
fig = plt.figure()
ax = Axes3D(fig)
colors = ‘rgb’
markers = ‘o*s’
for target,color,marker in zip([0,1,2],colors,markers):
pos = (Y == target).ravel()
X = converted_X[pos,:]
ax.scatter(X[:,0],X[:,1],X[:,2],
color=color,marker=marker,
label = “Label%d”%target)
ax.legend(loc=“best”)
fig.suptitle(“Iris After LDA”)
plt.show()
總結
- 上一篇: 使用Docker实现php代码在线测试执
- 下一篇: 哈工大软件构造课程知识点总结(一)