機器學習實例

小週天 豈安科技售前顧問
主要負責名詞解釋

引子

筆者做爲與機器學習同齡的一代,從小學時就開始了對 AI 的不斷鑽研,上上下下左右左右 BA 的代碼敲得無比熟練。常常在與 AI 的對戰中得到大勝。此刻筆者的兒子(與深度學習同齡)正跟他的爺爺奶奶(與人工智能同齡)展現如何把 AI 虐得不能自理。而此文的目的就是把我這兩個小時來對機器學習的初步而又深入的理解講給你們。程序員

bigsec

兩個小時前,我第一次在搜索引擎中打了「機器學習」幾個字。而後機器回覆瞭如下定義給我:算法

機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及機率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科……

此刻大家應該和我同樣已經失去了繼續讀下去的勇氣。segmentfault

簡而言之

這麼說吧,機器學習算法能夠再也不讓你明確地給出執行步驟或判斷規則,而讓電腦根據輸入數據本身建立規則並處理問題。機器學習

➤ 整點兒實際的:考慮下如何區分垃圾郵件?編輯器

首先是否是想到的要來個關鍵詞過濾?經過編寫一些規則來篩選判斷:if 匹配到關鍵字去垃圾箱,else 去收件箱。咱們全部的精力都會花在寫這些過濾條件上。寫了幾百條之後感受差很少了,可發件人又換說法了,金三胖進化成了胖三金,胖三金進化成了三月半。逼得咱們不斷地要對過濾條件進行更新。函數

bigsec

能不能有一種方法能讓機器本身總結這些敏感詞(特徵)就像歌裏唱的 「當你看着我我沒有開口已被你猜透」?機器學習的有趣之處正是與此。它的玩法是這樣的:學習

  • 首先咱們須要準備大量已經通過區分的郵件。
  • 而後把這些區分好的郵件餵給一個現成的無需二次開發的機器學習算法。

機器學習算法能夠經過識別兩組郵件的區別來建立本身的規則或模型,這一階段叫作機器訓練。
當模型準備完成後,當再次輸入未經區分的郵件時,機器學習算法便可按照模型的規則來自主判斷區分郵件。優化

在程序員的歡呼聲還沒停下時,我要說,然鵝,這都不算什麼。
更讓人驚喜的是一樣這個區分郵件的機器學習算法,不僅能夠用來區分郵件,當你把輸入的數據換成了驗證碼圖片,它又能夠被用來訓練識別驗證碼,而你不用爲此算法去多改一行代碼。搜索引擎

監督學習

在前面區分垃圾郵件的例子中,咱們給出的訓練郵件是已經通過標註區分的數據,機器學習算法能夠依照給定的數據和標註來進行建模而區分新的郵件。這種給定分類數據的學習方式叫作監督學習(Supervised Learning)。雖然機器學習中還包括其餘如無監督學習,加強學習等分支,但監督學習是目前應用場景最普遍也是最容易理解的一個分支。其最基本的邏輯是:告訴 SL 數據 X 和輸出結果 Y,讓它在輸入和輸出中創建合理的映射關係。人工智能

bigsec

好比給出:

  • 輸入爲2,2 輸出爲 4
  • 輸入爲3,3 輸出爲 6

監督學習模型就能夠經過分析以前的映射關係得出輸入輸出可能爲加法運算關係,當咱們再輸入4,5時便可利用監督學習生成的模型輸出9。
咱們下面的例子中也是利用監督學習來對輸出結果來進行一個預測。

實例簡介-價值預測

如何爲下圖中的房產估價?

一個熟練的房產中介也許看一眼就能夠根據面積,位置,環境等給出一個大概的市場估價,而做爲一個從未從事過此行業的你如何給出一個合理的估價呢?你去問了部門裏的老司機健林。健林說咱們這兒的估價通常都這麼計算:

  • 無論任何類型的房子咱們都設定一個底價:50000
  • 按照面積乘以單價1計算面積修正值:面積×單價1
  • 按照房間數乘以單價2計算房間修正值:房間數x單價2

最後把三部分相加得出估價。
總價=50000+(面積X單價1)+(房間數x單價2)

多虧了健林,模型有了。

因而這兩個單價就成了接下去的關鍵,但這個難不倒你。
首先咱們拿到了根據這個模型計算出的三條記錄(訓練數據)

450000=50000+(3800x單價1)+(5x單價2)
293000=50000+(2200x單價1)+(4x單價2)
175000=50000+(1150x單價1)+(2x單價2)

接下去感受就像解二元一次方程組同樣簡單啊。
但現實中即使是取準了房間和麪積兩個關鍵因素,房屋總價因存在其餘影響而不會在圖表上與上述關鍵因素100%正相關,從而在關係圖表中表現的是一組散點而非完美的線性關係。簡單的說咱們須要解決的是約等於的關係。
爲了解決這個問題,咱們使用一種通用的計算方式——猜,猜不少次直到猜中。

第一輪
1 假設猜想單價1=10,單價2=10
得出結果
案例1=88050 (真實值 450000)
案例2=72040 (真實值 293000)
案例3=61520 (真實值 175000)

2 計算誤差值Cost
Cost1= (450000-88050)+(293000-72040)+(175000-61520)
爲了能避某個案例存在較大誤差咱們須要對Cost1進一步優化來放大較爲嚴重的誤差
Cost2=

bigsec

有了 Cost2 之後咱們的最終目標就是經過不斷的猜想讓 Cost2 的值趨向於0。

而處理相似的值優化(線性迴歸)問題,比較常見的優化算法有 Gradient Descent(梯度降低),經過對初始輸入值的不斷調整迭代來讓誤差值 Cost2 儘量趨近爲0,最終 Gradient Descent 算法會返回一個理想的輸入值,在上面例子中最終會給出單價 1=92.1 單價 2=10001 ,
而這個 Gradient Descent 算法會包含在咱們下面要用到的函數庫中。

應用場景

用機器學習的方法來處理相似的數值預測的場景在咱們的生活中十分常見。在本文接下去的內容中咱們就會經過分析計算房屋的屬性來進行估值。在風控領域中當用戶在網上交易或申請貸款時供應商也會經過收集用戶的各類屬性來按照必定模型來進行風險評估從而輔助下一步的決定。經過相同的機器學習算法還能夠將用戶評論做爲輸入從而分析用戶對商品給出的是正面仍是負面評價。

下期預告

在這個主題的下一期中,咱們會徹底圍繞咱們本期中提到的房屋估價的實例,來介紹如何對房屋數據進行過濾和準備,若是選取合適屬性(Feature Engineering)如何經過現有數據建模。

bigsec

而且不斷進行優化

bigsec

bigsec

注:因爲segmentfault編輯器有部分圖片上傳失敗且緣由未知,如想閱讀完整原文,請移步:http://dwz.cn/77XkEI,謝謝

相關文章
相關標籤/搜索