今天我想送給大家兩句話:1:在這個浮躁的社會中,每個人都想找到捷徑,那么我想認真踏實地做好一件事也便是最大的捷徑了。2:不要管別人做什么,有自己的目標,可能你現在的環境牛人多多,讓你壓力巨大,也可能你身處的環境廢物多多,讓你感慨你本可以讓自己更加強大。不要管這些,只要相信自己選擇的,走下去。
以上獻給迷茫的人們,同時也自勉。不多說,進入八大分類器。
引言:樹葉有好多種,如下圖:
目標:寫一個系統,讓系統區分各種樹葉屬於哪個品種。
我的思路如下圖:
特征提取:也就是我們前幾張說的xi,抽取能代表這個物體的特征。比如讓你去識別另外一個人,一般從臉型,膚色,身高,體重…..這些特征去標記,現在計算機識別樹葉可能就從葉子啊,形狀啊,寬度啊,有無鋸齒啊,這些去識別。這個詳細我們暫時不說,下次再說。
訓練分類器:就是找到一個有某些特征的樣本,我們只需要對新來的特征和前面出現類似的特征進行比對,那么找出最可能的類別,我們就說這個新的樣本是屬於這個類別的。
測試數據:當這個模型找出來了,我們是不是得測試一下這個人可不可信對吧,就好像我們生活中的,有的人酷愛吹牛逼,那么我們對他說的話,是不是就抱着懷疑的態度?而有的人幾乎很少說謊話,那么他說的話是不是可信度就大,這個測試數據就是這個道理,測試效果越好,那么這個模型分類器可能效果就越好。
下面是代碼講解部分,為了方便我先以截圖的形式,呈上代碼,最后用百度雲上傳我的數據集和源代碼,希望大家學得愉快。
一 代碼講解
這一段代碼沒什么好說的,就是導入matplotlib,pandas,sklearn的這些包.python這個語言最強大的地方就是可以直接引用別的語言寫的代碼包,其實python作為一門腳本語言它本身的執行速度是很慢的,但是它就像膠水一樣把其他語言實現的功能粘合起來,那么就很厲害了,類似於劉邦,馭人於千里之外。所以它又叫膠水語言。
這一段代碼是讀取train.csv和test.csv數據。然后把train.csv中的species項作為標簽項,除了id項,其他項作為特征項。y_test作為數據的原始標簽,留着和以后的預測值作比較。
這一段代碼就是把k近鄰,svc,隨機森林這些分類器的名稱寫在classifiers這個列表里,等着我們之后調用它。Svc我們這里用的是rbf核,也就是高斯核。
這里for 循環就是調用列表里的分類器,然后fit(),也就是訓練一下,輸入的參數是特征集和標簽集,44行,分別用剛剛訓練出來的參數,對x_text進行預測,得到預測值。接着再用預測值與原本的樣本標簽就行比較,求出正確率和損失值。
這一段就是畫出結果圖沒什么好說的。
二 結果分析
可以看出隨機森林和gridentboosting表現最好,這個gridentboosting用梯度下降算法保證最后的結果最好,這個算法就是三個臭皮匠賽過一個諸葛亮。。。。但是Adaboost算法瞬間打我臉有木有,這個的結果差的離譜,我現在還沒有想出來是為什么原因。。。。。。等我下次繼續做實驗驗證吧。。
給大家看看ACC和loss圖吧,這些都是說明這個模型的靠譜程度,不是那種吹牛逼模式。
三 源碼鏈接
本文的源碼百度雲鏈接為:鏈接:http://pan.baidu.com/s/1kV9ClIR 密碼:mv2n
謝謝大家觀看。哈哈。