《人工智能技術(shù)開發(fā)框架》課件-第4章 機器學習框架Scikit-Learn_第1頁
《人工智能技術(shù)開發(fā)框架》課件-第4章 機器學習框架Scikit-Learn_第2頁
《人工智能技術(shù)開發(fā)框架》課件-第4章 機器學習框架Scikit-Learn_第3頁
《人工智能技術(shù)開發(fā)框架》課件-第4章 機器學習框架Scikit-Learn_第4頁
《人工智能技術(shù)開發(fā)框架》課件-第4章 機器學習框架Scikit-Learn_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

人工智能技術(shù)開發(fā)框架計算機與軟件學院第四章機器學習框架Scikit-Learn01AI應用開發(fā)概述02FlaskWEB應用開發(fā)03數(shù)據(jù)處理與分析工具04中國人工智能戰(zhàn)略05深度學習框架Tensorflow204機器學習框架Scikit-Learn機器學習框架sklearnsklearn是一個Python第三方提供的非常強力的機器學習庫,它包含了從數(shù)據(jù)預處理到訓練模型的各個方面。在實戰(zhàn)使用scikit-learn中可以極大的節(jié)省我們編寫代碼的時間以及減少我們的代碼量,使我們有更多的精力去分析數(shù)據(jù)分布,調(diào)整模型和修改超參機器學習流程數(shù)據(jù)采集和標注模型加載模型保存模型測試模型訓練算法選擇數(shù)據(jù)預處理(清洗)特征選擇模型應用數(shù)據(jù)預處理(清洗)數(shù)據(jù)預處理工具:Numpy,PandasAB12數(shù)據(jù)標準化數(shù)據(jù)正規(guī)化:sklearn.preprocessing.Normalizer(norm='l2')-正則化的過程是將每個樣本縮放到單位范數(shù)(每個樣本的范數(shù)為1),對每個樣本計算其p-范數(shù),然后對該樣本中每個元素除以該范數(shù),這樣處理的結(jié)果是使得每個處理后樣本的p-范數(shù)(L1-norm,L2-norm)等于1。數(shù)據(jù)歸一化(零均值):sklearn.preprocessing.StandardScaler()-將數(shù)據(jù)按其屬性(按列進行)減去其均值,然后除以其方差。最后得到的結(jié)果是,對每個屬性/每列來說所有數(shù)據(jù)都聚集在0附近,方差值為1。最大最小標準化:sklearn.preprocessing.MinMaxScaler(feature_range=(0,1))-將屬性縮放到一個指定的最大值和最小值(通常是1-0)之間。機器學習方法有監(jiān)督學習無監(jiān)督學習半監(jiān)督學習有監(jiān)督學習回歸分類很多算法既可以用于分類,也可以用于回歸,如:決策樹、支持向量機、隨機森林、Adaboost等回歸線性回歸多項式變換線性回歸線性回歸:sklearn.linear_model.LinearRegression()

-沒什么特別參數(shù),正常使用默認參數(shù)多項式變換背景:有時從己知數(shù)據(jù)里挖掘出更多的特征不是件容易的事情,此時可以用純數(shù)學的方法,增加多項式特征。比如,原來的輸入特征只有問X1,X2,優(yōu)化后可以增加特征,變成X1,X2,X1^2,X2^2。這樣也可以增加模型復雜度,從而改善欠擬合的問題。多項式特征變換后再線性回歸,本質(zhì)上是增加特征數(shù)量,構(gòu)造新的特征以解決欠擬合問題多項式變換:sklearn.preprocessing.PolynomialFeatures(degree=2)

-主要參數(shù)是degree,體現(xiàn)了變換的復雜性示例代碼:quadratic=PolynomialFeatures(degree=2)X_train=quadratic.fit_transform(X_train)X_test=quadratic.transform(X_test)分類邏輯回歸:sklearn.linear_model.LogisticRegression()決策樹(隨機森林的特例):sklearn.tree.DecisionTreeClassifier()樸素貝葉斯:sklearn.naive_bayes()K近鄰(KNN):sklearn.neighbors.KNeighborsClassifier(n_neighbors=k)支持向量機(SVM):sklearn.svm.SVC()。核函數(shù)的本質(zhì):線性不可分情況下,將數(shù)據(jù)進行非線性映射到高維空間,高維特征空間中變成線性可分集成學習:(1)隨機森林:sklearn.ensemble.RandomForestClassifier();(2)AdaBoost:sklearn.ensemble.AdaBoostClassifier()邏輯回歸sklearn.linear_model.LogisticRegression(penalty='l2’,C=1.0)主要參數(shù): Penalty:{‘l1’,‘l2’,‘elasticnet’,‘none’},default=’l2’。正則化方式。 C:float,default=1.0。正則化強度的倒數(shù);必須是正浮點數(shù)。與支持向量機一樣,較小的值指定更強的正則化。決策樹skleam.tree.DecisionTreeClassifier()主要參數(shù):criterion:{“gini”,“entropy”},default=”gini”。特征選擇算法。一種是基于信息熵,另外一種是基于基尼不純度。有研究表明,這兩種算法的差異性不大,對模型的準確性沒有太大的影響。相對而言,信息熵運算效率會低一些,因為它有對數(shù)運算splitter:{“best”,“random”},default=”best”。創(chuàng)建決策樹分支的選項,一種是選擇最優(yōu)的分支創(chuàng)建原則,另外一種是從排名靠前的特征中,隨機選擇一個特征來創(chuàng)建分支,這個方法和正則項的效果類似,可以避免過擬合問題maxdepth:int,default=None。指定決策樹的最大深度。通過指定該參數(shù),用來解決模型過擬合問題min_samples_split:intorfloat,default=2。這個參數(shù)指定能創(chuàng)建分支的數(shù)據(jù)集的大小,默認是2。如果一個節(jié)點的數(shù)據(jù)樣本個數(shù)小于這個數(shù)值,則不再創(chuàng)建分支。這也是一種前剪枝的方法min_samples_leaf:intorfloat,default=1。創(chuàng)建分支后的節(jié)點樣本數(shù)量必須大于等于這個數(shù)值,否則不再創(chuàng)建分支。這也是一種前剪枝的方法max_leaf_nodes:int,default=None。除了限制最小的樣本節(jié)點個數(shù),該參數(shù)可以限制最大的樣本節(jié)點個數(shù)min_impurity_split:float,default=0。可以使用該參數(shù)來指定信息增益的閥值。決策樹在創(chuàng)建分支時,信息增益必須大于這個閥值,否則不創(chuàng)建分支樸素貝葉斯伯努利分布:skleam.naive_bayes.BemoulliNB()多項式分布:skleam.naive_bayes.MultinomialNB()高斯分布:skleam.naive_bayes.GaussianNB()樸素貝葉斯算法在自然語言領域有廣泛的應用伯努利分布拋一枚硬幣,要么出現(xiàn)正面,要么出現(xiàn)反面(假設硬幣不會立起來〉。假如出現(xiàn)正面的概率是p,則出現(xiàn)反面的概率就是1-p。符合這種規(guī)律的概率分布,稱為伯努利分布(BernoulliDistribution)更一般的情況,即不止兩種可能性時,假設每種可能性是Pi,則滿足所有的概率Pi之和為1的概率分布,稱為類別分布(CategoricalDistribution)。例如投擲一個骰子,則會出現(xiàn)6種可能性,所有的可能性加起來的概率為1滿足伯努利分布的分類問題可以使用skleam.naive_bayes.BemoulliNB(),通常使用默認參數(shù)即可多項式分布多項式分布是指滿足類別分布的實驗,連續(xù)做n次后,每種類別出現(xiàn)的特定次數(shù)組合的概率分布情況投6次骰子,每個點數(shù)都出現(xiàn)一次,可以是(1,2,3,4,5,6),也可以是(1,3,2,4,5,6),那么出現(xiàn)(1,2,3,4,5,6)這樣特定順序組合的概率是滿足多項式分布的看一個例子,同時投擲6個質(zhì)地均勻的骰子,出現(xiàn)(1,2,3,4,5,6)這種組合的概率是多少?可以把這個問題轉(zhuǎn)換成連續(xù)6次投擲質(zhì)地均勻的骰子,每個類別都出現(xiàn)一次的概率,這是個典型的多項式分布問題實際應用中,涉及大量的自然語言處理的手段,包括中文分詞技術(shù)、文檔分類、詞的數(shù)學表示等,滿足多項式分布的特點,可以使用skleam.naive_bayes.MultinomialNB(),通常使用默認參數(shù)即可高斯分布高斯分布(GaussianDistribution)也稱為正態(tài)分布(NormalDistribution),是自然界最常見的一種概率密度函數(shù)。人的身高滿足高斯分布,特別高和特別矮的人出現(xiàn)的相對概率都比較低。人的智商也符合高斯分布,特別聰明的天才和特別笨的人出現(xiàn)的相對概率都比較低滿足高斯分布的分類問題可以使用skleam.naive_bayes.GaussianNB(),通常使用默認參數(shù)即可AB123K近鄰(KNN)分類器k近鄰算法的核心思想是未標記樣本的類別,由距離其最近的k個鄰居投票來決定。假設,有一個已經(jīng)標記的數(shù)據(jù)集,即己經(jīng)知道了數(shù)據(jù)集中每個樣本所屬的類別。此時,有一個未標記的數(shù)據(jù)樣本,任務是預測出這個數(shù)據(jù)樣本所屬的類別。k近鄰算法的原理是:計算待標記的數(shù)據(jù)樣本和數(shù)據(jù)集中每個樣本的距離,取距離最近的k個樣本。待標記的數(shù)據(jù)樣本所屬的類別,就由這k個距離最近的樣本投票產(chǎn)生skleam.neighbors.KNeighborsClassifier(n_neighbors=5)主要參數(shù)是k即n_neighbors。參數(shù)選擇需要根據(jù)數(shù)據(jù)來決定。k值越大,模型的偏差越大,對噪聲數(shù)據(jù)越不敏感,當k值很大時,可能造成模型欠擬合。k值越小,模型的方差就會越大,當k值太小,就會造成模型過擬合支持向量機(SVM)sklearn.svm.SVC(C=1.0,kernel='rbf',degree=3)主要參數(shù):C:float,default=1.0。懲罰參數(shù)kernel:kernel{‘linear’,‘poly’,‘rbf’,‘sigmoid’,‘precomputed’},default=’rbf’。常用的核函數(shù)是高斯徑向基核函數(shù)rbf、多項式核函數(shù)poly、sigmoid核函數(shù)。核函數(shù)的本質(zhì):線性不可分情況下,將數(shù)據(jù)進行非線性映射到高維空間,高維特征空間中變成線性可分Degree:int,default=3。當使用poly核函數(shù)時該參數(shù)有效,對于其他核函數(shù)則無效集成學習隨機森林:RandomForestClassifier()Adaboost:AdaBoostClassifier()集成算法(Ensemble)是一種元算法(Meta-algorithm),它利用統(tǒng)計學采樣原理,訓練出成百上千個不同的算法模型。當需要預測一個新樣本時,使用這些模型分別對這個樣本進行預測,然后采用少數(shù)服從多數(shù)原則,決定新樣本的類別。集成算法可以有效地解決過擬合問題。隨機森林sklearn.ensemble.RandomForestClassifier(),以決策樹作為基分類器(學習器)。主要參數(shù):n_estimators:int,default=100。森林中樹的數(shù)量criterion:{“gini”,“entropy”},default=”gini”。特征選擇算法。一種是基于信息熵,另外一種是基于基尼不純度。有研究表明,這兩種算法的差異性不大,對模型的準確性沒有太大的影響。相對而言,信息熵運算效率會低一些,因為它有對數(shù)運算maxdepth:int,default=None。指定決策樹的最大深度。通過指定該參數(shù),用來解決模型過擬合問題min_samples_split:intorfloat,default=2。這個參數(shù)指定能創(chuàng)建分支的數(shù)據(jù)集的大小,默認是2。如果一個節(jié)點的數(shù)據(jù)樣本個數(shù)小于這個數(shù)值,則不再創(chuàng)建分支。這也是一種前剪枝的方法min_samples_leaf:intorfloat,default=1。創(chuàng)建分支后的節(jié)點樣本數(shù)量必須大于等于這個數(shù)值,否則不再創(chuàng)建分支。這也是一種前剪枝的方法max_leaf_nodes:int,default=None。除了限制最小的樣本節(jié)點個數(shù),該參數(shù)可以限制最大的樣本節(jié)點個數(shù)min_impurity_split:float,default=None。可以使用該參數(shù)來指定信息增益的閥值。決策樹在創(chuàng)建分支時,信息增益必須大于這個闊值,否則不創(chuàng)建分支Adaboostsklearn.ensemble.AdaBoostClassifier(),默認以決策樹作為基分類器(學習器)。主要參數(shù):base_estimator:object,default=None。指定基分類器的類型,默認以決策樹作為基分類器。n_estimators:int,default=50。終止boosting算法的最大分類器數(shù)量。如果達到該數(shù)量則學習過程將提前停止learning_rate:float,default=1。在每次提升迭代中應用于每個分類器的權(quán)重。較高的學習率會增加每個分類器的貢獻。在learning_rate和n_estimators之間有一個折衷algorithm:{‘SAMME’,‘SAMME.R’},default=’SAMME.R’。‘SAMME.R’和‘SAMME’是兩種算法無監(jiān)督學習聚類降維聚類K均值聚類(K-Means):sklearn.cluster.KMeans(n_clusters=8)凝聚型層次聚類(agglomerative):sklearn.cluster.AgglomerativeClustering(n_clusters=2)K均值聚類(K-Means)

sklearn.cluster.KMeans(n_clusters=8)主要參數(shù):n_clusters:int,default=8。聚類的數(shù)量凝聚型層次聚類(agglomerative)

sklearn.cluster.AgglomerativeClustering(n_clusters=2,linkage=’ward’)主要參數(shù):n_clusters:intorNone,default=2。聚類的數(shù)量linkage:{‘ward’,‘complete’,‘a(chǎn)verage’,‘single’},default=’ward’。使用的鏈接標準。鏈接標準決定了樣本集之間的距離度量方式降維PCA:sklearn.decomposition.PCA()LDA:sklearn.discriminant_analysis.LinearDiscriminantAnalysis()PCAsklearn.decomposition.PCA()主要參數(shù):n_components:int,floator‘mle’,default=None。降維后保留的特征數(shù)量,默認為None即保留全部特征使用方法:model=sklearn.decomposition.PCA(n_components)#創(chuàng)建PCA模型model.fit_transform(X,y=None)

#對數(shù)據(jù)集X進行PCA降維操作,返回值為降維后的數(shù)據(jù)集LDAsklearn.discriminant_analysis.LinearDiscriminantAnalysis()主要參數(shù):solver:{‘svd’,‘lsqr’,‘eigen’},default=’svd’。降維求解算法n_components:int,default=None。保留的特征數(shù)量使用方法:model=sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver,n_components)#創(chuàng)建LDA模型model.fit_transform(X,y=None)

#對數(shù)據(jù)集X進行LDA降維操作,返回值為降維后的數(shù)據(jù)集訓練數(shù)據(jù)集劃分方法:通常將數(shù)據(jù)集的80%作為訓練集,20%作為測試集如果當數(shù)據(jù)量不是很大的時候(萬級別以下)的時候?qū)⒂柧毤?、驗證集以及測試集劃分為6:2:2;若是數(shù)據(jù)很大,可以將訓練集、驗證集、測試集比例調(diào)整為98:1:1;但是當可用的數(shù)據(jù)很少的情況下也可以使用一些高級的方法,比如留一法,K折交叉驗證等訓練方法:fit()方法。每一種算法都有相應的fit()方法,如SVM算法:sklearn.svm.SVC.fit(train_X,train_y),得到訓練完成的模型,此時模型參數(shù)已經(jīng)生成兩種訓練中出現(xiàn)的現(xiàn)象:過擬合:模型過于復雜,過度的擬合了訓練數(shù)據(jù)。解決方案:獲取更多的訓練數(shù)據(jù)、減少輸入的特征數(shù)量、降低模型復雜度,如減少網(wǎng)絡深度等欠擬合:模型過于簡單,連訓練數(shù)據(jù)都無法很好的擬合。解決方案:增加有價值的特征、增加模型的復雜性,如增加多項式特征,增加網(wǎng)絡深度等算法選擇預測sklearn的predict()方法每一種算法都有對應的predict()方法,如SVM算法:sklearn.svm.SVC.predict(test_X),返回值是預測的結(jié)果參數(shù)調(diào)優(yōu)不同算法的超參數(shù)舉例:KNN:K參數(shù)多項式回歸:多項式特征變換中的degree參數(shù)決策樹:樹的最大深度max_depth參數(shù)支持向量機:懲罰系數(shù)C參數(shù)、核函數(shù)種類kernel參數(shù)、gamma參數(shù)。C是懲罰系數(shù),即對誤差的寬容度。C越高,說明越不能容忍出現(xiàn)誤差,容易過擬合。C越小,容易欠擬合。C過大或過小,泛化能力變差。gamma是選擇RBF函數(shù)作為kernel后,該函數(shù)自帶的一個參數(shù)。隱含地決定了數(shù)據(jù)映射到新的特征空間后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的個數(shù)影響訓練與預測的速度。支持向量機(SVM)分類器(SVC)的超參數(shù):SVC(C=1.0,kernel=“rbf”,gamma=0.1):選擇rbf時的超參數(shù)SVC(C=1.0,kernel=“poly”,degree=2):選擇poly時的超參數(shù)SVC(C=1.0,kernel=“l(fā)inear”):選擇linear時的超參數(shù)超參數(shù):不是由算法訓練出來的,而是人為設定的,不同算法有不同的超參數(shù)模型選擇:交叉驗證交叉驗證法是一種超參數(shù)選擇的方法,也叫模型選擇,主要用于超參數(shù)調(diào)優(yōu),得分最佳的超參數(shù)為最優(yōu)超參數(shù),進行交叉驗證時需要用到驗證集。當數(shù)據(jù)集比較小的時候,交叉驗證可以“充分利用”有限的數(shù)據(jù)找到合適的模型參數(shù),防止過度擬合交叉驗證的使用方法:sklearn.model_selection.cross_val_score(),返回值是模型的得分列表score,包含了每一輪交叉驗證的得分,例如:對于10折交叉驗證,則score列表中包含10個得分,可以求取平均值作為最終得分,主要參數(shù):estimator:模型對象X:訓練集特征數(shù)據(jù)y:訓練集的標簽cv:int,cross-validationgeneratororaniterable,default=None,交叉驗證的輪數(shù),如K折交叉驗證,則cv=Kscoring:得分的類型,參數(shù)為字符串類型,可以選擇常用的‘a(chǎn)ccuracy’、‘precision’、‘f1’等模型評估分類:sklearn.metrics.classification_report()聚類:sklearn.metrics.silhouette_score()回歸:sklearn.metrics.r2_score()分類模型評估sklearn.metrics.classification_report(),返回值為模型綜合評估報告(包含了準確率Precision、

精確度accuracy、

召回率recall、f1-score)主要參數(shù):y_true:樣本的真實值y_pred:樣本的預測值digits:int,default=2,結(jié)果保留的小數(shù)點位數(shù)F1score=2*recall*precision/(recall+precision)Precision和Recall都是針對某個類而言的,比如正類別的Recall,負類別的Recall準確率(Precision):查準率sklearn.metrics.precision_score(),返回值為模型的precision得分主要參數(shù):y_true:樣本的真實值y_pred:樣本的預測值pos_label:strorint,default=1,正類的標簽值Precision和Recall都是針對某個類而言的,比如正類別的Precision,負類別的Precision例如:正樣本的Precision表示預測為正的樣本中有多少預測對了精確度(accuracy)sklearn.metrics.accuracy_score(),返回值為模型的accuracy得分主要參數(shù):y_true:樣本的真實值y_pred:樣本的預測值Accuracy表示在所有樣本中,有多少比例的樣

溫馨提示

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

評論

0/150

提交評論