您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關大數據中如何使用機器學習模型快速進行圖像分類識別,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
我們介紹借助sklearn庫創建用于進行分類預測的機器學習模型。對分類問題進行預測同樣屬于監督學習的范疇,通過對已知數據的類別的標記,來實現對未知數據的類別的預測和判定。
常見的應用領域包括:垃圾郵件識別、垃圾短信識別、圖像分類識別等等。
常見的應用算法則有:SVM(支持向量機)、K緊鄰、樸素貝葉斯、隨機森林等等。
下面,我們就通過Digits手寫數字集來進行機器學習分類模型的介紹。
本篇選用的手寫數字數據集同樣來自有sklearn.datasets子模塊,其由著名的UCI 機器學習庫提供:
該數據集由1797個8x8圖像組成。每個圖像,都是手寫數字。
就像上一篇導入波士頓數據集一樣,我們從sklearn模塊中進行導入:
接著查看數據集中包含的子方法:
與波士頓數據集類似,其提供了images、target_names、target、data、DESCR等方法。其中:
images:表示圖像的原始數組;
target_names:表示圖像分類中所有的數字;
target:表示圖像數組對應的數字名稱;
data:表示圖像的一維特征數組;
DESCR:表示數據集描述信息;
從這兩個數據集可以發現,sklearn的API還是挺統一和規范的,很方便進行學習和調用。接下來,我們看看每個方法中到底都是些什么。
通過查看images的形狀,以及已知的圖像為8×8的形狀,我們可以得知,這個數據集中有1797個圖像。看看其中一個圖像的內容:
這就是一個圖像轉換成數組之后的形式,我們怎么知道這是個什么圖像呢?可以借助于matplotlib模塊來將圖像數組還原為圖像。
可能之前搭建環境的時候沒有安裝這個模塊,我們先來安裝一下:
然后引入matplotlib模塊,調用imshow()方法:
可以發現,iamges中的第一個圖像似乎數字0。我們繼續看下面的內容。
data的target_name信息顯示,我們的數據代表的數字分類類別為0到9。
數據的目標值與數據集時匹配的,最后再看看data的data:
數據量還是1797條,但是形狀已經從二維的(8, 8)變成了一維的64,我們從一個具體的數據中看看:
可以發現,data.data中的數組將之前8*8的數組合成為了一個數組,這樣才能方便對圖像的數組運用算法進行訓練和計算。那又如何將一維的圖像數組還原為圖像呢,通過是上面的方法,但是需要先將一維數組轉換一下形狀:
我們同樣將數據集的特征和目標轉換為pandas的DataFrame,方便各位同學理解數據集的形狀:
同樣使用sklearn提供的train_test_split方法來對數據集進行訓練集和測試集的分割:
在此,我們同樣選擇隨機森林算法 作為機器學習模型估計器的基本算法來創建一個機器學習分類器并進行訓練:
在訓練完成模型之后,我們同樣可以使用模型的predict()方法獲取到測試集的預測結果:
在面對回歸模型的時候,我們可以使用平均絕對誤差、均方差等方法對模型的效果進行評估,而在分類算法模型中,我們使用其他的方法進行模型效果的評估,比如:精度分類評分、召回評分等。而這些方法,也都在sklearn模塊的metrics子模塊下。
我們來對分類模型進行效果評估:
兩種評估方法的最佳結果值都是1,看起來我們的模型準確度還是蠻高的,大家可以嘗試其他的算法構建分類模型。
以上就是大數據中如何使用機器學習模型快速進行圖像分類識別,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。