《機器學習與Python實踐》課件-02-02Scikit-learn_第1頁
《機器學習與Python實踐》課件-02-02Scikit-learn_第2頁
《機器學習與Python實踐》課件-02-02Scikit-learn_第3頁
《機器學習與Python實踐》課件-02-02Scikit-learn_第4頁
《機器學習與Python實踐》課件-02-02Scikit-learn_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

本章目錄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機器學習包,它封裝了一系列數(shù)據(jù)預處理、機器學習算法、模型選擇等工具,是數(shù)據(jù)分析師首選的機器學習工具包。自2007年發(fā)布以來,scikit-learn已經(jīng)成為Python重要的機器學習庫了,scikit-learn簡稱sklearn,支持包括分類,回歸,降維和聚類四大機器學習算法。還包括了特征提取,數(shù)據(jù)處理和模型評估三大模塊。2.Scikit-learn主要用法01

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

|

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

|

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

|

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

|

訓練集標簽.y_test

|

測試集標簽.y

|

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

preprocessingfromsklearn.model_selectionimporttrain_test_splitfromsklearn.linear_modelimportLinearRegressionfromsklearn.metricsimport

r2_score基本建模流程2.Scikit-learn主要用法Scikit-learn支持以NumPy的arrays對象、Pandas對象、SciPy的稀疏矩陣及其他可轉(zhuǎn)換為數(shù)值型arrays的數(shù)據(jù)結構作為其輸入,前提是數(shù)據(jù)必須是數(shù)值型的sklearn.datasets模塊提供了一系列加載和獲取著名數(shù)據(jù)集如鳶尾花、波士頓房價、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%作為訓練集,30%作為測試集,并使得測試集和訓練集中各類別數(shù)據(jù)的比例與原始數(shù)據(jù)集比例一致(stratify分層策略),另外可通過設置

shuffle=True

提前打亂數(shù)據(jù)數(shù)據(jù)劃分訓練集測試集數(shù)據(jù)集2.Scikit-learn主要用法使?Scikit-learn進?數(shù)據(jù)標準化fromsklearn.preprocessingimport

StandardScaler構建轉(zhuǎn)換器實例scaler=

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

處理后的數(shù)據(jù)均值為0,方差為12.Scikit-learn主要用法使用Scikit-learn進?數(shù)據(jù)變換數(shù)據(jù)預處理最小最大標準化One-Hot編碼歸一化二值化(單個特征轉(zhuǎn)換)標簽編碼缺失值填補多項式特征生成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),結合交叉驗證的遞歸特征消除法,自動選擇最優(yōu)特征個數(shù)

fs.SelectFromModel(estimator)

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

LinearRegression構建模型實例lr=

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

y_train)作出預測y_pred=

lr.predict(X_test)

LASSO linear_model.LassoRidge linear_model.RidgeElasticNet linear_model.ElasticNet回歸樹 tree.DecisionTreeRegressor2.Scikit-learn主要用法監(jiān)督學習算法-分類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

為每個樣本預測為“0”和“1”類的概率1.Scikit-learn概述邏輯回歸支持向量機樸素貝葉斯K近鄰linear_model.LogisticRegressionsvm.SVCnaive_bayes.GaussianNBneighbors.NearestNeighbors監(jiān)督學習算法-分類2.Scikit-learn主要用法監(jiān)督學習算法-集成學習sklearn.ensemble模塊包含了一系列基于集成思想的分類、回歸和離群值檢測方法.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主要用法無監(jiān)督學習算法sklearn.cluster模塊包含了一系列無監(jiān)督聚類算法.fromsklearn.clusterimport

KMeans構建聚類實例kmeans=KMeans(n_clusters=3,

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

y_pred)對于測試集而言,y_test即是y_true,大部分函數(shù)都必須包含真實值y_true和預測值y_pred.2.Scikit-learn主要用法評價指標回歸模型評價metrics.mean_absolute_error()

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

|

均方誤差MSEmetrics.r2_score()

|

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

metrics.precision_score()

|

各類精確率

metrics.f1_score()|F1值

metrics.log_loss()

|

對數(shù)損失或交叉熵損失

metrics.confusion_matrix

|

混淆矩陣metrics.classification_report

|含多種評價的分類報告2.Scikit-learn主要用法評價指標分類模型評價metrics.accuracy_score()|正確率.metrics.precision_score()

|

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

|

對數(shù)損失或交叉熵損失.metrics.confusion_matrix

|

混淆矩陣.metrics.classification_report

|含多種評價的分類報告.2.Scikit-learn主要用法交叉驗證及超參數(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折交叉驗證對決策樹模型進行評估,使用的評分函數(shù)為F1值sklearn提供了部分帶交叉驗證功能的模型類如LassoCV、LogisticRegressionCV等,這些類包含cv參數(shù)2.Scikit-learn主要用法交叉驗證及超參數(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)格上進行窮舉搜索,方法簡單但是搜索速度慢(超參數(shù)較多時),且不容易找到參數(shù)空間中的局部最優(yōu)2.Scikit-learn主要用法交叉驗證及超參數(shù)調(diào)優(yōu)超參數(shù)調(diào)優(yōu)?隨機搜索fromsklearn.model

溫馨提示

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

評論

0/150

提交評論