計算機(jī)視覺與應(yīng)用 課件 9.4 基于機(jī)器學(xué)習(xí)的圖像分類算法_第1頁
計算機(jī)視覺與應(yīng)用 課件 9.4 基于機(jī)器學(xué)習(xí)的圖像分類算法_第2頁
計算機(jī)視覺與應(yīng)用 課件 9.4 基于機(jī)器學(xué)習(xí)的圖像分類算法_第3頁
計算機(jī)視覺與應(yīng)用 課件 9.4 基于機(jī)器學(xué)習(xí)的圖像分類算法_第4頁
計算機(jī)視覺與應(yīng)用 課件 9.4 基于機(jī)器學(xué)習(xí)的圖像分類算法_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

9.4基于機(jī)器學(xué)習(xí)的圖像分類算法CONTENTS目錄概述01KNN算法02決策樹03伯努利分布樸素貝葉斯04支持向量機(jī)SVM05CONTENTS目錄概述01KNN算法02決策樹03伯努利分布樸素貝葉斯04支持向量機(jī)SVM05機(jī)器學(xué)習(xí)的算法很多,很多算法是一類算法,而有些算法又是從其他算法中延伸出來的??梢岳靡韵滤惴ㄟM(jìn)行圖片分類:KNN、決策樹、樸素貝葉斯、支持向量機(jī)SVC。概述CONTENTS目錄概述01KNN算法02決策樹03伯努利分布樸素貝葉斯04支持向量機(jī)SVM051.KNN算法(1)概念kNN算法又稱為K近鄰分類(k-nearestneighborclassification)算法。最簡單平凡的分類器也許是那種死記硬背式的分類器,記住所有的訓(xùn)練數(shù)據(jù),對于新的數(shù)據(jù)則直接和訓(xùn)練數(shù)據(jù)匹配,如果存在相同屬性的訓(xùn)練數(shù)據(jù),則直接用它的分類來作為新數(shù)據(jù)的分類。這種方式有一個明顯的缺點,那就是很可能無法找到完全匹配的訓(xùn)練記錄。kNN算法則是從訓(xùn)練集中找到和新數(shù)據(jù)最接近的K條記錄,然后根據(jù)他們的主要分類來決定新數(shù)據(jù)的類別。該算法涉及3個主要因素:訓(xùn)練集、距離或相似的衡量、K的大小。KNN算法(2)KNN特點KNN是一種非參的、惰性的算法模型。非參的意思并不是說這個算法不需要參數(shù),而是意味著這個模型不會對數(shù)據(jù)做出任何的假設(shè),與之相對的是線性回歸。也就是說KNN建立的模型結(jié)構(gòu)是根據(jù)數(shù)據(jù)來決定的。惰性又是什么意思呢?同樣是分類算法,邏輯回歸需要先對數(shù)據(jù)進(jìn)行大量訓(xùn)練(tranning),最后才會得到一個算法模型。而KNN算法卻不需要,它沒有明確的訓(xùn)練數(shù)據(jù)的過程,或者說這個過程很快。1)優(yōu)點簡單,易于理解,易于實現(xiàn),無需估計參數(shù),無需訓(xùn)練。適合對稀有事件進(jìn)行分類(例如當(dāng)流失率很低時,比如低于0.5%,構(gòu)造流失預(yù)測模型)。特別適合于多分類問題(multi-modal,對象具有多個類別標(biāo)簽),例如根據(jù)基因特征來判斷其功能分類,kNN比SVM的表現(xiàn)要好。2)缺點懶惰算法,對測試樣本分類時的計算量大,內(nèi)存開銷大,評分慢??山忉屝暂^差,無法給出決策樹那樣的規(guī)則。KNN算法(3)KNN訓(xùn)練和評估1)導(dǎo)入分類問題:fromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitfromsklearn.neighborsimportKNeighborsClassifier回歸問題:fromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitfromsklearn.neighborsimportKNeighborsRegressorKNN算法2)加載數(shù)據(jù)加載iris的數(shù)據(jù),把屬性存在X,類別標(biāo)簽存在y:iris=datasets.load_iris()iris_x=iris.datairis_y=iris.targetprint(iris_x)print(iris_y)把數(shù)據(jù)集分為訓(xùn)練集和測試集,其中test_size=0.3,即測試集占總數(shù)據(jù)的30%:x_train,x_test,y_train,y_test=train_test_split(iris_x,iris_y,test_size=0.3)print(y_train)print(y_test)KNN算法3)訓(xùn)練knnclf=KNeighborsClassifier(n_neighbors=5)knnrgr=KNeighborsRegressor(n_neighbors=3)knnclf.fit(X_train,y_train)4)預(yù)測y_pre=knnclf.predict(x_test)KNN算法CONTENTS目錄概述01KNN算法02決策樹03伯努利分布樸素貝葉斯04支持向量機(jī)SVM052、決策樹決策樹(decisiontree)是一個樹結(jié)構(gòu)(可以是二叉樹或非二叉樹)。其每個非葉節(jié)點表示一個特征屬性上的測試,每個分支代表這個特征屬性在某個值域上的輸出,而每個葉節(jié)點存放一個類別。使用決策樹進(jìn)行決策的過程就是從根節(jié)點開始,測試待分類項中相應(yīng)的特征屬性,并按照其值選擇輸出分支,直到到達(dá)葉子節(jié)點,將葉子節(jié)點存放的類別作為決策結(jié)果。決策樹的優(yōu)點:1)易于理解和解釋。樹木可以被可視化;2)只需要很少的數(shù)據(jù)準(zhǔn)備,數(shù)據(jù)可以不規(guī)范化,但是需要注意的是,決策樹不能有丟失的值;3)使用該樹的花費是用于訓(xùn)練樹的數(shù)據(jù)點個數(shù)的對數(shù);4)能夠處理多輸出問題。5)使用白盒模型。如果給定的情況在模型中是可觀察到的,那么對這種情況的解釋很容易用布爾邏輯來解釋。相比之下,在黑盒模型中(例如,在人工神經(jīng)網(wǎng)絡(luò)中),結(jié)果可能更難以解釋。6)可以使用統(tǒng)計測試來驗證模型。決策樹決策樹的缺點:1)容易過擬合。為了避免這個問題,可以進(jìn)行樹的剪枝、或在葉節(jié)點上設(shè)置所需的最小樣本數(shù)量或設(shè)置樹的最大深度。2)決策樹是不穩(wěn)定的,數(shù)據(jù)中的微小變化可能會導(dǎo)致生成完全不同的樹。在集成中使用決策樹可以緩解這個問題。3)有些概念很難學(xué),因為決策樹不容易表達(dá)它們,例如異或奇偶性或多路復(fù)用問題。4)如果某些類別占主導(dǎo)地位,決策樹學(xué)習(xí)器就會創(chuàng)建有偏見的樹。因此,建議在與決策樹匹配之前平衡數(shù)據(jù)集。決策樹(3)訓(xùn)練和評估鳶尾花分類為例:1)導(dǎo)入fromsklearnimportdatasetsimportpandasaspdfromsklearn.model_selectionimporttrain_test_splitfromsklearn.treeimportDecisionTreeClassifierimportgraphvizfromsklearn.treeimportexport_graphviz決策樹2)加載iris=datasets.load_iris()features=pd.DataFrame(iris.data,columns=iris.feature_names)target=pd.DataFrame(iris.target,columns=['type'])train_feature,test_feature,train_targets,test_targets=train_test_split(features,target,test_size=0.33,random_state=42)model=DecisionTreeClassifier()model.fit(train_feature,train_targets)model.predict(test_feature)決策樹3)評價訓(xùn)練模型fromsklearn.metricsimportaccuracy_scoreaccuracy_score(test_targets.values.flatten(),model.predict(test_feature))4)預(yù)測image=export_graphviz(model,out_file=None,feature_names=iris.feature_names,class_names=iris.target_names)graphviz.Source(image)決策樹CONTENTS目錄概述01KNN算法02決策樹03伯努利分布樸素貝葉斯04支持向量機(jī)SVM053.伯努利分布樸素貝葉斯適用于伯努利分布,也適用于文本數(shù)據(jù)(此時特征表示的是是否出現(xiàn),例如某個詞語的出現(xiàn)為1,不出現(xiàn)為0)絕大多數(shù)情況下表現(xiàn)不如多項式分布,但有的時候伯努利分布表現(xiàn)得要比多項式分布要好,尤其是對于小數(shù)量級的文本數(shù)據(jù)伯努利分布樸素貝葉斯(3)訓(xùn)練和評估1)導(dǎo)入fromsklearn.naive_bayesimportBernoulliNB2)創(chuàng)建模型bNB=BernoulliNB()3)將字符集轉(zhuǎn)詞頻集fromsklearn.feature_extraction.textimportTfidfVectorizertf=TfidfVectorizer()tf.fit(X_train,y_train)X_train_tf=tf.transform(X_train)4)訓(xùn)練bNB.fit(X_train_tf,y_train)5)預(yù)測x_test=tf.transform(test_str)bNB.predict(x_test)伯努利分布樸素貝葉斯CONTENTS目錄概述01KNN算法02決策樹03伯努利分布樸素貝葉斯04支持向量機(jī)SVM054、支持向量機(jī)SVM支持向量機(jī)SVM可以解決線性分類和非線性分類問題。(1)線性分類在訓(xùn)練數(shù)據(jù)中,每個數(shù)據(jù)都有n個的屬性和一個二類類別標(biāo)志,我們可以認(rèn)為這些數(shù)據(jù)在一個n維空間里。我們的目標(biāo)是找到一個n-1維的超平面(hyperplane),這個超平面可以將數(shù)據(jù)分成兩部分,每部分?jǐn)?shù)據(jù)都屬于同一個類別。其實這樣的超平面有很多,我們要找到一個最佳的。因此,增加一個約束條件:這個超平面到每邊最近數(shù)據(jù)點的距離是最大的。也成為最大間隔超平面(maximum-marginhyperplane)。這個分類器也成為最大間隔分類器(maximum-marginclassifier)。支持向量機(jī)是一個二類分類器。(2)非線性分類SVM的一個優(yōu)勢是支持非線性分類。它結(jié)合使用拉格朗日乘子法和KKT條件,以及核函數(shù)可以產(chǎn)生非線性分類器。支持向量機(jī)SVM(3)訓(xùn)練和評估1)導(dǎo)入處理分類問題:fromsklearn.svmimportSVC2)創(chuàng)建模型(回歸時使用SVR)svc=SVC(kernel='linear')svc=SVC(kernel='rbf')svc=SVC(kernel='

溫馨提示

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

最新文檔

評論

0/150

提交評論