版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、機器學習實戰(zhàn)K-近鄰算法(2)上一小結學習了簡單的k-近鄰算法的實現方法,但是這并不是完整的k-近鄰算法流程,k-近鄰算法的一般流程:收集數據:可以使用爬蟲進行數據的收集,也可以使用第三方提供的免費或收費的數據。一般來講,數據放在txt文本文件中,按照一定的格式進行存儲,便于解析及處理。準備數據:使用Python解析、預處理數據。分析數據:可以使用很多方法對數據進行分析,例如使用Matplotlib將數據可視化。測試算法:計算錯誤率。使用算法:錯誤率在可接受范圍內,就可以運行k-近鄰算法進行分類。實戰(zhàn)例程1:使用kNN改進某約會網站的配對效果實戰(zhàn)背景海倫女士一直使用在線約會網站尋找適合自己的約
2、會對象。盡管約會網站會推薦不同的人選,但她并不是喜歡每一個人。經過一番總結,她發(fā)現自己交往過的人可以進行如下分類:1.不喜歡的人2.魅力一般的人3.極具魅力的人海倫收集約會數據已經有了一段時間,她把這些數據存放在文本文件datingTestSet.txt中,每個樣本數據占據一行,總共有1000行。海倫收集的樣本數據主要包含以下3種特征:1.每年獲得的飛行??屠锍虜?.玩視頻游戲所消耗時間百分比3.每周消費的冰淇淋公升數在將上述特征數據輸入到分類器前,必須將待處理的數據的格式改變?yōu)榉诸惼骺梢越邮盏母袷?。分類器接收的數據是什么格式的?從上?jié)講解我們已經知道,要將數據分類兩部分,即特征矩陣和對應的分
3、類標簽向量。下面我們先處理數據。截取的部分數據格式如下:運行結果如下:可以看到,我們已經順利導入數據,并對數據進行解析,格式化為分類器需要的數據格式。接著我們需要了解數據的真正含義??梢酝ㄟ^友好、直觀的圖形化的方式觀察數據。準備數據:數據歸一化我們很容易發(fā)現,上面方程中數字差值最大的屬性對計算結果的影響最大,也就是說,每年獲取的飛行??屠锍虜祵τ谟嬎憬Y果的影響將遠遠大于其他兩個特征,即玩視頻游戲所耗時間占比和每周消費冰淇淋公斤數的影響。而產生這種現象的唯一原因,僅僅是因為飛行??屠锍虜颠h大于其他特征值。但海倫認為這三種特征是同等重要的,因此作為三個等權重的特征之一,飛行常客里程數并不應該如此嚴
4、重地影響到計算結果。歸一化:處理這種不同取值范圍的特征值時,我們通常采用的方法是將數值歸一化,如將取值范圍處理為到或者-到之間。下面的公式可以將任意取值范圍的特征值轉化為到區(qū)間內的值:newValue = (oldValue - min) / (max - min)其中min和max分別是數據集中的最小特征值和最大特征值。雖然改變數值取值范圍增加了分類器的復雜度,但為了得到準確結果,我們必須這樣做。運行結果可以看到,我們已經順利將數據歸一化了,并且求出了數據的取值范圍和數據的最小值,這兩個值是在分類的時候需要用到的,直接先求解出來,也算是對數據預處理了測試算法:驗證分類器 機器學習算法一個很重
5、要的工作就是評估算法的正確率,通常我們只提供已有數據的90%作為訓練樣本來訓練分類器,而使用其余的10%數據去測試分類器,檢測分類器的正確率。需要注意的是,10%的測試數據應該是隨機選擇的,由于海倫提供的數據并沒有按照特定目的來排序,所以我們可以隨意選擇10%數據而不影響其隨機性。截取的部分運行結果如下:我們可以改變函數datingClassTest內變量hoRatio和分類器k的值,檢測錯誤率是否隨著變量值的變化而增加。依賴于分類算法、數據集和程序設置,分類器的輸出結果可能有很大的不同。使用算法:構建完整可用系統(tǒng) 我們可以給海倫一個小段程序,通過該程序海倫會在約會網站上找到某個人并輸入他的信
6、息。程序會給出她對男方喜歡程度的預測值。輸入數據(12,5000,0.5),預測結果是”你可能有些喜歡這個人”,也就是這個人魅力一般。一共有三個檔次:討厭、有些喜歡、非常喜歡,對應著不喜歡的人、魅力一般的人、極具魅力的人。實戰(zhàn)背景 對于需要識別的數字已經使用圖形處理軟件,處理成具有相同的色彩和大?。簩捀呤?2像素x32像素。盡管采用本文格式存儲圖像不能有效地利用內存空間,但是為了方便理解,我們將圖片轉換為文本格式,數字的文本格式如下。實戰(zhàn)例程2:手寫識別系統(tǒng)與此同時,這些文本格式存儲的數字的文件命名也很有特點,格式為:數字的值_該數字的樣本序號對于這樣已經整理好的文本,我們可以直接使用Pyth
7、on處理,進行數字預測。數據集分為訓練集和測試集,使用前面的方法,同樣可以實現分類。運行的部分分類結果如下:Sklearn實現k-近鄰算法簡介Scikit learn 也簡稱sklearn,是機器學習領域當中最知名的python模塊之一。sklearn包含了很多機器學習的方式:Classification 分類Regression 回歸Clustering 非監(jiān)督分類Dimensionality reduction 數據降維Model Selection 模型選擇Preprocessing 數據與處理使用sklearn可以很方便地讓我們實現一個機器學習算法。一個復雜度算法的實現,使用sklea
8、rn可能只需要調用幾行API即可。所以學習sklearn,可以有效減少我們特定任務的實現周期。sklearn.neighbors模塊實現了k-近鄰算法。內容如下:我們知道數字圖片是32x32的二進制圖像,為了方便計算,我們可以將32x32的二進制圖像轉換為1x1024的向量。對于sklearn的KNeighborsClassifier輸入可以是矩陣,不用一定轉換為向量,不過為了跟之前的k-近鄰算法分類器對應上,這里也做了向量化處理。然后構建kNN分類器,利用分類器做預測。部分結果如下:上述代碼使用的algorithm參數是auto,更改algorithm參數為brute,使用暴力搜索,我們會發(fā)現,運行時間變長了。更改n_neighbors參數,會發(fā)現不同的值檢測精度也是不同的。我們可以自己可以嘗試更改這些參數的設置,加深對其函數的理解??偨YkNN算法的優(yōu)缺點優(yōu)點:1.簡單好用,容易理解,精度高,理論成熟,既可以用來做分類也可以用來做回歸;2.可用于數值型數據和離散型數據;3.訓練時間復雜度為O(n);無
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年國際足球賽事場地租賃合同
- 2024年建筑施工勞務承包簡約合同樣本
- 2024樁基礎工程專業(yè)分包合同模板
- 2024代理合同樣式
- 2024技術參股合作協(xié)議書
- 2024版藥品代理合同
- 二手房交易合同
- 店面承租協(xié)議書范本
- 2024項目開發(fā)全過程專項法律服務合同
- 2024常用合作合同范本
- 2023~2024學年第一學期高一期中考試數學試題含答案
- 2023年全國中學生英語能力競賽初三年級組試題及答案
- (完整版)青年就業(yè)創(chuàng)業(yè)見習基地匯報材料(完整版)
- 月光(羽泉)原版五線譜鋼琴譜正譜樂譜.docx
- 660MW機組空預器聲波吹灰器可行性研究報告最新(精華版)
- 控制柜安裝施工方案
- 動車組火災檢測(報警)系統(tǒng)
- 水面垃圾自動打撈船的設計 (全套圖紙)
- 煙草企業(yè)安全生產標準化 規(guī)范
- 裝飾施工技術標準及要求
- 2018秋七年級虎外考試卷英語試卷
評論
0/150
提交評論