Python 多种算法模型对比
生活随笔
收集整理的這篇文章主要介紹了
Python 多种算法模型对比
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Python 多種算法模型對比
1 聲明
本文的數(shù)據(jù)來自網(wǎng)絡(luò),部分代碼也有所參照,這里做了注釋和延伸,旨在技術(shù)交流,如有冒犯之處請聯(lián)系博主及時(shí)處理。
2 算法模型對比簡介
可以對同一份訓(xùn)練數(shù)據(jù)集應(yīng)用多個(gè)算法模型,通過交叉驗(yàn)證的方法計(jì)算出準(zhǔn)確率進(jìn)行比較以選擇效果較好的算法。應(yīng)用交叉驗(yàn)證的好處是當(dāng)用新的數(shù)據(jù)檢驗(yàn)?zāi)P偷谋憩F(xiàn)時(shí),可以在一定程度上減小過擬合。
注:
1 這里的數(shù)據(jù)集來自pima-indians-diabetes(最初來自國家糖尿病/消化/腎臟疾病研究所。數(shù)據(jù)集的目標(biāo)是基于數(shù)據(jù)集中包含的某些診斷測量來診斷性的預(yù)測 患者是否患有糖尿病)。
2 當(dāng)前代碼僅為演示多模型對比的用法,該數(shù)據(jù)集的特征并未做預(yù)處理。
3 KNN代碼示例
# Step1 加載數(shù)據(jù)、各種分類包 from pandas import read_csv from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import KFold from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.linear_model import LogisticRegression from sklearn.svm import SVC from sklearn.naive_bayes import GaussianNB from sklearn.model_selection import cross_val_score from matplotlib import pyplot from sklearn.neighbors import KNeighborsClassifier # 導(dǎo)入數(shù)據(jù) filename = '../input/pima-indians-diabetes.csv' names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] data = read_csv(filename, names=names) # 將數(shù)據(jù)分為輸入數(shù)據(jù)和輸出結(jié)果 array = data.values X = array[:, 0:8] Y = array[:, 8] num_folds = 10 seed = 1007 kfold = KFold(n_splits=num_folds, random_state=seed) models = {} models['LR'] = LogisticRegression(solver='liblinear') models['LDA'] = LinearDiscriminantAnalysis() models['KNN'] = KNeighborsClassifier() models['CART'] = DecisionTreeClassifier() models['SVM'] = SVC(gamma='auto') models['NB'] = GaussianNB() results = [] for name in models:result = cross_val_score(models[name], X, Y, cv=kfold)results.append(result)msg = '%s: %.3f (%.3f)' % (name, result.mean(), result.std())print(msg) # 圖表顯示 fig = pyplot.figure() from matplotlib.font_manager import FontProperties #設(shè)置支持中文字體 fp= FontProperties(fname="c:/windows/fonts/simsun.ttc", size=12) fig.suptitle('各分類算法比較',fontproperties=fp) ax = fig.add_subplot(111) pyplot.boxplot(results) ax.set_xticklabels(models.keys()) pyplot.show()?
LR: 0.770 (0.048) LDA: 0.773 (0.052) KNN: 0.727 (0.062) CART: 0.689 (0.067) SVM: 0.651 (0.072) NB: 0.755 (0.043)?
4 總結(jié)
無
?
?
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Python 多种算法模型对比的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 收到信用卡不激活可以吗
- 下一篇: Axie火的一塌糊涂 到底算不算区块链游