《機(jī)器學(xué)習(xí)與Python實(shí)踐》課件-02-02Scikit-learn_第1頁(yè)
《機(jī)器學(xué)習(xí)與Python實(shí)踐》課件-02-02Scikit-learn_第2頁(yè)
《機(jī)器學(xué)習(xí)與Python實(shí)踐》課件-02-02Scikit-learn_第3頁(yè)
《機(jī)器學(xué)習(xí)與Python實(shí)踐》課件-02-02Scikit-learn_第4頁(yè)
《機(jī)器學(xué)習(xí)與Python實(shí)踐》課件-02-02Scikit-learn_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本章目錄01

Scikit-learn概述02Scikit-learn主要用法03Scikit-learn案例1.Scikit-learn概述01

Scikit-learn概述02Scikit-learn主要用法03Scikit-learn案例1.Scikit-learn概述Scikit-learn是基于NumPy、SciPy和Matplotlib的開源Python機(jī)器學(xué)習(xí)包,它封裝了一系列數(shù)據(jù)預(yù)處理、機(jī)器學(xué)習(xí)算法、模型選擇等工具,是數(shù)據(jù)分析師首選的機(jī)器學(xué)習(xí)工具包。自2007年發(fā)布以來(lái),scikit-learn已經(jīng)成為Python重要的機(jī)器學(xué)習(xí)庫(kù)了,scikit-learn簡(jiǎn)稱sklearn,支持包括分類,回歸,降維和聚類四大機(jī)器學(xué)習(xí)算法。還包括了特征提取,數(shù)據(jù)處理和模型評(píng)估三大模塊。2.Scikit-learn主要用法01

Scikit-learn概述02Scikit-learn主要用法03Scikit-learn案例X_train

|

訓(xùn)練數(shù)據(jù).X_test

|

測(cè)試數(shù)據(jù).X

|

完整數(shù)據(jù).符號(hào)標(biāo)記2.Scikit-learn主要用法y_train

|

訓(xùn)練集標(biāo)簽.y_test

|

測(cè)試集標(biāo)簽.y

|

數(shù)據(jù)標(biāo)簽.2.Scikit-learn主要用法導(dǎo)入工具包fromsklearnimportdatasets,

preprocessingfromsklearn.model_selectionimporttrain_test_splitfromsklearn.linear_modelimportLinearRegressionfromsklearn.metricsimport

r2_score基本建模流程2.Scikit-learn主要用法Scikit-learn支持以NumPy的arrays對(duì)象、Pandas對(duì)象、SciPy的稀疏矩陣及其他可轉(zhuǎn)換為數(shù)值型arrays的數(shù)據(jù)結(jié)構(gòu)作為其輸入,前提是數(shù)據(jù)必須是數(shù)值型的sklearn.datasets模塊提供了一系列加載和獲取著名數(shù)據(jù)集如鳶尾花、波士頓房?jī)r(jià)、Olivetti人臉、MNIST數(shù)據(jù)集等的工具,也包括了一些toy

data如S型數(shù)據(jù)等的生成工具fromsklearn.datasetsimportload_irisiris=

load_iris()X=

iris.datay=

iris.target加載數(shù)據(jù)2.Scikit-learn主要用法fromsklearn.model_selectionimporttrain_test_splitX_train,X_test,y_train,y_test=train_test_split(X,y,random_state=12,stratify=y,test_size=0.3)將完整數(shù)據(jù)集的70%作為訓(xùn)練集,30%作為測(cè)試集,并使得測(cè)試集和訓(xùn)練集中各類別數(shù)據(jù)的比例與原始數(shù)據(jù)集比例一致(stratify分層策略),另外可通過設(shè)置

shuffle=True

提前打亂數(shù)據(jù)數(shù)據(jù)劃分訓(xùn)練集測(cè)試集數(shù)據(jù)集2.Scikit-learn主要用法使?Scikit-learn進(jìn)?數(shù)據(jù)標(biāo)準(zhǔn)化fromsklearn.preprocessingimport

StandardScaler構(gòu)建轉(zhuǎn)換器實(shí)例scaler=

StandardScaler()擬合及轉(zhuǎn)換scaler.fit_transform(X_train)數(shù)據(jù)預(yù)處理Z-Score標(biāo)準(zhǔn)化

處理后的數(shù)據(jù)均值為0,方差為12.Scikit-learn主要用法使用Scikit-learn進(jìn)?數(shù)據(jù)變換數(shù)據(jù)預(yù)處理最小最大標(biāo)準(zhǔn)化One-Hot編碼歸一化二值化(單個(gè)特征轉(zhuǎn)換)標(biāo)簽編碼缺失值填補(bǔ)多項(xiàng)式特征生成MinMaxScalerOneHotEncoderNormalizerBinarizerLabelEncoderImputerPolynomialFeatures歸一化(最大-最小規(guī)范化)

將數(shù)據(jù)映射到[0,1]區(qū)間2.Scikit-learn主要用法特征選擇fromsklearnimportfeature_selectionas

fsfs.SelectKBest(score_func,

k)

過濾式(Filter),保留得分排名前k的特征(top

k方式)fs.RFECV(estimator, scoring=“r2”)封裝式(Wrap-per),結(jié)合交叉驗(yàn)證的遞歸特征消除法,自動(dòng)選擇最優(yōu)特征個(gè)數(shù)

fs.SelectFromModel(estimator)

嵌入式(Embedded),從模型中自動(dòng)選擇特征,任何具有coef_或者feature_importances_的基模型都可以作為estimator參數(shù)傳入2.Scikit-learn主要用法監(jiān)督學(xué)習(xí)算法-回歸fromsklearn.linear_modelimport

LinearRegression構(gòu)建模型實(shí)例lr=

LinearRegression(normalize=True)訓(xùn)練模型lr.fit(X_train,

y_train)作出預(yù)測(cè)y_pred=

lr.predict(X_test)

LASSO linear_model.LassoRidge linear_model.RidgeElasticNet linear_model.ElasticNet回歸樹 tree.DecisionTreeRegressor2.Scikit-learn主要用法監(jiān)督學(xué)習(xí)算法-分類fromsklearn.treeimportDecisionTreeClassifierclf=DecisionTreeClassifier(max_depth=5)clf.fit(X_train,

y_train)y_pred=clf.predict(X_test)y_prob=

clf.predict_proba(X_test)使用決策樹分類算法解決二分類問題,

y_prob

為每個(gè)樣本預(yù)測(cè)為“0”和“1”類的概率1.Scikit-learn概述邏輯回歸支持向量機(jī)樸素貝葉斯K近鄰linear_model.LogisticRegressionsvm.SVCnaive_bayes.GaussianNBneighbors.NearestNeighbors監(jiān)督學(xué)習(xí)算法-分類2.Scikit-learn主要用法監(jiān)督學(xué)習(xí)算法-集成學(xué)習(xí)sklearn.ensemble模塊包含了一系列基于集成思想的分類、回歸和離群值檢測(cè)方法.fromsklearn.ensembleimportRandomForestClassifierclf=RandomForestClassifier(n_estimators=20)clf.fit(X_train,

y_train)y_pred=clf.predict(X_test)y_prob=

clf.predict_proba(X_test)AdaBoost基于梯度提升ensemble.AdaBoostClassifierensemble.AdaBoostRegressorensemble.GradientBoostingClassifierensemble.GradientBoostingRegressor2.Scikit-learn主要用法無(wú)監(jiān)督學(xué)習(xí)算法sklearn.cluster模塊包含了一系列無(wú)監(jiān)督聚類算法.fromsklearn.clusterimport

KMeans構(gòu)建聚類實(shí)例kmeans=KMeans(n_clusters=3,

random_state=0)擬合kmeans.fit(X_train)預(yù)測(cè)kmeans.predict(X_test)2.Scikit-learn主要用法無(wú)監(jiān)督學(xué)習(xí)算法-降維sklearn.decomposition模塊包含了一系列無(wú)監(jiān)督降維算法fromsklearn.decompositionimportPCA導(dǎo)入PCA庫(kù),設(shè)置主成分?jǐn)?shù)量為3,n_components代表主成分?jǐn)?shù)量pca=PCA(n_components=3)訓(xùn)練模型pca.fit(X)投影后各個(gè)特征維度的方差比例(這里是三個(gè)主成分)print(pca.explained_variance_ratio_)投影后的特征維度的方差print(pca.explained_variance_)2.Scikit-learn主要用法無(wú)監(jiān)督學(xué)習(xí)算法-聚類DBSCAN層次聚類譜聚類cluster.DBSCANcluster.AgglomerativeClusteringcluster.SpectralClustering2.Scikit-learn主要用法評(píng)價(jià)指標(biāo)sklearn.metrics模塊包含了一系列用于評(píng)價(jià)模型的評(píng)分函數(shù)、損失函數(shù)以及成對(duì)數(shù)據(jù)的距離度量函數(shù).fromsklearn.metricsimportaccuracy_scoreaccuracy_score(y_true,

y_pred)對(duì)于測(cè)試集而言,y_test即是y_true,大部分函數(shù)都必須包含真實(shí)值y_true和預(yù)測(cè)值y_pred.2.Scikit-learn主要用法評(píng)價(jià)指標(biāo)回歸模型評(píng)價(jià)metrics.mean_absolute_error()

|平均絕對(duì)誤差MAEmetrics.mean_squared_error()

|

均方誤差MSEmetrics.r2_score()

|

決定系數(shù)R2.2.Scikit-learn主要用法評(píng)價(jià)指標(biāo)分類模型評(píng)價(jià)metrics.accuracy_score()|正確率

metrics.precision_score()

|

各類精確率

metrics.f1_score()|F1值

metrics.log_loss()

|

對(duì)數(shù)損失或交叉熵?fù)p失

metrics.confusion_matrix

|

混淆矩陣metrics.classification_report

|含多種評(píng)價(jià)的分類報(bào)告2.Scikit-learn主要用法評(píng)價(jià)指標(biāo)分類模型評(píng)價(jià)metrics.accuracy_score()|正確率.metrics.precision_score()

|

各類精確率.metrics.f1_score()|F1值.metrics.log_loss()

|

對(duì)數(shù)損失或交叉熵?fù)p失.metrics.confusion_matrix

|

混淆矩陣.metrics.classification_report

|含多種評(píng)價(jià)的分類報(bào)告.2.Scikit-learn主要用法交叉驗(yàn)證及超參數(shù)調(diào)優(yōu)fromsklearn.model_selectionimportcross_val_scoreclf=

DecisionTreeClassifier(max_depth=5)scores=cross_val_score(clf,X_train,y_train,cv=5,

scoring=’f1_weighted’)使用5折交叉驗(yàn)證對(duì)決策樹模型進(jìn)行評(píng)估,使用的評(píng)分函數(shù)為F1值sklearn提供了部分帶交叉驗(yàn)證功能的模型類如LassoCV、LogisticRegressionCV等,這些類包含cv參數(shù)2.Scikit-learn主要用法交叉驗(yàn)證及超參數(shù)調(diào)優(yōu)超參數(shù)調(diào)優(yōu)?網(wǎng)格搜索fromsklearn.model_selectionimportGridSearchCVfromsklearnimport

svmsvc=

svm.SVC()params={‘kernel’:[‘linear’,‘rbf’],‘C’:[1,10]}grid_search=GridSearchCV(svc,params,cv=5)grid_search.fit(X_train,y_train)grid_search.best_params_在參數(shù)網(wǎng)格上進(jìn)行窮舉搜索,方法簡(jiǎn)單但是搜索速度慢(超參數(shù)較多時(shí)),且不容易找到參數(shù)空間中的局部最優(yōu)2.Scikit-learn主要用法交叉驗(yàn)證及超參數(shù)調(diào)優(yōu)超參數(shù)調(diào)優(yōu)?隨機(jī)搜索fromsklearn.model

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論