吴裕雄--天生自然 人工智能机器学习实战代码:线性判断分析LINEARDISCRIMINANTANALYSIS...
生活随笔
收集整理的這篇文章主要介紹了
吴裕雄--天生自然 人工智能机器学习实战代码:线性判断分析LINEARDISCRIMINANTANALYSIS...
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
import numpy as np
import matplotlib.pyplot as pltfrom matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
from sklearn.model_selection import train_test_split
from sklearn import datasets, linear_model,discriminant_analysisdef load_data():# 使用 scikit-learn 自帶的 iris 數(shù)據(jù)集iris=datasets.load_iris()X_train=iris.datay_train=iris.targetreturn train_test_split(X_train, y_train,test_size=0.25,random_state=0,stratify=y_train)#線性判斷分析LinearDiscriminantAnalysis
def test_LinearDiscriminantAnalysis(*data):X_train,X_test,y_train,y_test=datalda = discriminant_analysis.LinearDiscriminantAnalysis()lda.fit(X_train, y_train)print('Coefficients:%s, intercept %s'%(lda.coef_,lda.intercept_))print('Score: %.2f' % lda.score(X_test, y_test))# 產(chǎn)生用于分類的數(shù)據(jù)集
X_train,X_test,y_train,y_test=load_data()
# 調(diào)用 test_LinearDiscriminantAnalysis
test_LinearDiscriminantAnalysis(X_train,X_test,y_train,y_test) def plot_LDA(converted_X,y):'''繪制經(jīng)過 LDA 轉(zhuǎn)換后的數(shù)據(jù):param converted_X: 經(jīng)過 LDA轉(zhuǎn)換后的樣本集:param y: 樣本集的標(biāo)記'''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()def run_plot_LDA():'''執(zhí)行 plot_LDA 。其中數(shù)據(jù)集來自于 load_data() 函數(shù)'''X_train,X_test,y_train,y_test=load_data()X=np.vstack((X_train,X_test))Y=np.vstack((y_train.reshape(y_train.size,1),y_test.reshape(y_test.size,1)))lda = discriminant_analysis.LinearDiscriminantAnalysis()lda.fit(X, Y)converted_X=np.dot(X,np.transpose(lda.coef_))+lda.intercept_plot_LDA(converted_X,Y)# 調(diào)用 run_plot_LDA
run_plot_LDA() def test_LinearDiscriminantAnalysis_solver(*data):'''測試 LinearDiscriminantAnalysis 的預(yù)測性能隨 solver 參數(shù)的影響'''X_train,X_test,y_train,y_test=datasolvers=['svd','lsqr','eigen']for solver in solvers:if(solver=='svd'):lda = discriminant_analysis.LinearDiscriminantAnalysis(solver=solver)else:lda = discriminant_analysis.LinearDiscriminantAnalysis(solver=solver,shrinkage=None)lda.fit(X_train, y_train)print('Score at solver=%s: %.2f' %(solver, lda.score(X_test, y_test)))# 調(diào)用 test_LinearDiscriminantAnalysis_solver
test_LinearDiscriminantAnalysis_solver(X_train,X_test,y_train,y_test) def test_LinearDiscriminantAnalysis_shrinkage(*data):'''測試 LinearDiscriminantAnalysis 的預(yù)測性能隨 shrinkage 參數(shù)的影響'''X_train,X_test,y_train,y_test=datashrinkages=np.linspace(0.0,1.0,num=20)scores=[]for shrinkage in shrinkages:lda = discriminant_analysis.LinearDiscriminantAnalysis(solver='lsqr',shrinkage=shrinkage)lda.fit(X_train, y_train)scores.append(lda.score(X_test, y_test))## 繪圖fig=plt.figure()ax=fig.add_subplot(1,1,1)ax.plot(shrinkages,scores)ax.set_xlabel(r"shrinkage")ax.set_ylabel(r"score")ax.set_ylim(0,1.05)ax.set_title("LinearDiscriminantAnalysis")plt.show()
# 調(diào)用 test_LinearDiscr
test_LinearDiscriminantAnalysis_shrinkage(X_train,X_test,y_train,y_test)
?
轉(zhuǎn)載于:https://www.cnblogs.com/tszr/p/11177949.html
總結(jié)
以上是生活随笔為你收集整理的吴裕雄--天生自然 人工智能机器学习实战代码:线性判断分析LINEARDISCRIMINANTANALYSIS...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS常用宏定义大全
- 下一篇: 解决不能调试的问题