<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給AI研習社
      發送

      0

      一個框架解決幾乎所有機器學習問題

      本文作者: AI研習社 2017-05-12 11:35
      導語:接下來就去行動吧!

      雷鋒網按:本文作者楊熹,原文載于作者個人博客,雷鋒網已獲授權。

      上周一個叫 Abhishek Thakur 的數據科學家,在他的 Linkedin 發表了一篇文章 Approaching (Almost) Any Machine Learning Problem,介紹他建立的一個自動的機器學習框架,幾乎可以解決任何機器學習問題,項目很快也會發布出來。這篇文章迅速火遍 Kaggle,他參加過100多個數據科學相關的競賽,積累了很多寶貴的經驗,看他很幽默地說“寫這樣的框架需要很多豐富的經驗,不是每個人都有這樣的經歷,而很多人有寶貴的經驗,但是他們不愿意分享,我呢恰好是又有一些經驗,又愿意分享的人”。當然這篇文章也是受到爭議的,很多人覺得并不全面。

      我最近也在準備參加 Kaggle,之前看過幾個例子,自己也總結了一個分析的流程,今天看了這篇文章,里面提到了一些高效的方法,最干貨的是,他做了一個表格,列出了各個算法通常需要訓練的參數。

      這個問題很重要,因為大部分時間都是通過調節參數,訓練模型來提高精度。作為一個初學者,第一階段,最想知道的問題,就是如何調節參數。因為分析的套路很簡單,就那么幾步,常用的算法也就那么幾個,以為把算法調用一下就可以了么,那是肯定不行的。實際過程中,調用完算法后,結果一般都不怎么好,這個時候還需要進一步分析,哪些參數可以調優,哪些數據需要進一步處理,還有什么更合適的算法等等問題。

      接下來一起來看一下他的框架。

      據說數據科學家 60-70% 的時間都花在數據清洗和應用模型算法上面,這個框架主要針對算法的應用部分。

      一個框架解決幾乎所有機器學習問題


        什么是 Kaggle? 

      Kaggle是一個數據科學競賽的平臺,很多公司會發布一些接近真實業務的問題,吸引愛好數據科學的人來一起解決,可以通過這些數據積累經驗,提高機器學習的水平。

      應用算法解決 Kaggle 問題,一般有以下幾個步驟:

      第一步:識別問題

      第二步:分離數據

      第三步:構造提取特征

      第四步:組合數據

      第五步:分解

      第六步:選擇特征

      第七步:選擇算法進行訓練

      當然,工欲善其事,必先利其器,要先把工具和包都安好。 
      最方便的就是安裝 Anaconda,這里面包含大部分數據科學所需要的包,直接引入就可以了,常用的包有: 

      - pandas:常用來將數據轉化成 dataframe 形式進行操作 
      - scikit-learn:里面有要用到的機器學習算法模型 
      - matplotlib:用來畫圖 
      - 以及 xgboost,keras,tqdm 等。

        第一步:識別問題

      在這一步先明確這個問題是分類還是回歸。通過問題和數據就可以判斷出來,數據由 X 和 label 列構成,label 可以一列也可以多列,可以是二進制也可以是實數,當它為二進制時,問題屬于分類,當它為實數時,問題屬于回歸。

        第二步:分離數據

      一個框架解決幾乎所有機器學習問題

      為什么需要將數據分成兩部分? 

      用 Training Data 來訓練模型,用 Validation Data 來檢驗這個模型的表現,不然的話,通過各種調節參數,模型可以在訓練數據集上面表現的非常出色,但是這可能會是過擬合,過擬合就是太依賴現有的數據了,擬合的效果特別好,但是只適用于訓練集,以致于來一個新的數據,就不知道該預測成什么了。所以需要有 Validation 來驗證一下,看這個模型是在那里自娛自樂呢,還是真的表現出色。

      在 scikit learn 包里就有工具可以幫你做到這些: 

      分類問題用 StrtifiedKFold

      from sklearn.cross_validation import StratifiedKFold

      回歸問題用 KFold

      from sklearn.cross_validation import KFold

        第三步:構造特征

      這個時候,需要將數據轉化成模型需要的形式。數據有三種類型:數字,類別,文字。當數據是類別的形式時,需要將它的每一類提取出來作為單獨一列,然后用二進制表示每條記錄相應的值。例如:

      record 1: 性別 女 
      record 2:性別 女 
      record 3:性別 男

      轉化之后就是:

      ??????女 男 
      record 1: 1 0 
      record 2:1 0 
      record 3:0 1

      這個過程 sklearn 也可以幫你做到:

      from sklearn.preprocessing import LabelEncoder

      或者

      from sklearn.preprocessing import OneHotEncoder

        第四步:組合數據

      處理完 Feature 之后,就將它們組合到一起。 
      如果數據是稠密的,就可以用 numpy 的 hstack:

      import numpy as np
      X = np.hstack((x1, x2, ...))

      如果是稀疏的,就用 sparse 的 hstack:

      from scipy import sparse
      X = sparse.hstack((x1, x2, ...))

      組合之后,就可以應用以下算法模型: 

      - RandomForestClassifier 
      - RandomForestRegressor 
      - ExtraTreesClassifier 
      - ExtraTreesRegressor 
      - XGBClassifier 
      - XGBRegressor

      但是不能應用線性模型,線性模型之前需要對數據進行正則化而不是上述預處理。

        第五步:分解

      這一步是為了進一步優化模型,可以用以下方法:

      一個框架解決幾乎所有機器學習問題

      PCA:Principal components analysis,主成分分析,是一種分析、簡化數據集的技術。用于減少數據集的維數,同時保持數據集中的對方差貢獻最大的特征。

      from sklearn.decomposition import PCA

      對于文字數據,在轉化成稀疏矩陣之后,可以用 SVD

      from sklearn.decomposition import TruncatedSVD

      SVD:Singular Value Decomposition,奇異值分解,是線性代數中一種重要的矩陣分解,它總能找到標準化正交基后方差最大的維度,因此用它進行降維去噪。

        第六步:選擇特征

      當特征個數越多時,分析特征、訓練模型所需的時間就越長,容易引起“維度災難”,模型也會越復雜,推廣能力也會下降,所以需要剔除不相關或亢余的特征。

      常用的算法有完全搜索,啟發式搜索,和隨機算法。

      例如,Random Forest:

      from sklearn.ensemble import RandomForestClassifier

      或者 xgboost:

      import xgboost as xgb

      對于稀疏的數據,一個比較有名的方法是 chi-2:

      from sklearn.feature_selection import SelectKBest

      from sklearn.feature_selection import chi2

        第七步:選擇算法進行訓練

      選擇完最相關的參數之后,接下來就可以應用算法,常用的算法有:

      Classification: 
      Random Forest 
      GBM 
      Logistic Regression 
      Naive Bayes 
      Support Vector Machines 
      k-Nearest Neighbors


      Regression 
      Random Forest 
      GBM 
      Linear Regression 
      Ridge 
      Lasso 
      SVR

      scikit-learn 里可以看到分類和回歸的可用的算法一覽,包括它們的原理和例子代碼。

      在應用各算法之前先要明確這個方法到底是否合適。 

      為什么那么多算法里,只提出這幾個算法呢,這就需要對比不同算法的性能了。 

      這篇神文 Do we Need Hundreds of Classifiers to Solve Real World Classification Problems 測試了179種分類模型在UCI所有的121個數據上的性能,發現Random Forests 和 SVM 性能最好。 

      我們可以學習一下里面的調研思路,看看是怎么樣得到比較結果的,在我們的實踐中也有一定的指導作用。

      一個框架解決幾乎所有機器學習問題

      但是直接應用算法后,一般精度都不是很理想,這個時候需要調節參數,最干貨的問題來了,什么模型需要調節什么參數呢?

      一個框架解決幾乎所有機器學習問題

      雖然在sklearn的文檔里,會列出所有算法所帶有的參數,但是里面并不會說調節哪個會有效。在一些mooc課程里,有一些項目的代碼,里面可以看到一些算法應用時,他們重點調節的參數,但是有的也不會說清楚為什么不調節別的。這里作者根據他100多次比賽的經驗,列出了這個表,我覺得可以借鑒一下,當然,如果有時間的話,去對照文檔里的參數列表,再查一下算法的原理,通過理論也是可以判斷出來哪個參數影響比較大的。

      調參之后,也并不就是大功告成,這個時候還是需要去思考,是什么原因造成精度低的,是哪些數據的深意還沒有被挖掘到,這個時候需要用統計和可視化去再一次探索數據,之后就再走一遍上面的過程。

      我覺得這里還提到了很有用的一條經驗是,把所有的 transformer 都保存起來,方便在 validation 數據集上面應用:

      一個框架解決幾乎所有機器學習問題

      文章里介紹了分析問題的思路,還提到了幾條很實用的經驗,不過經驗終究是別人的經驗,只能借鑒,要想提高自己的水平,還是要看到作者背后的事情,就是參加了100多次實戰,接下來就去行動吧,享受用算法和代碼與數據玩耍的興奮吧。

        TensorFlow & 神經網絡算法高級應用班” 要開課啦!

      從初級到高級,理論 + 實戰,一站式深度了解 TensorFlow!

      本課程面向深度學習開發者,講授如何利用 TensorFlow 解決圖像識別、文本分析等具體問題。課程跨度為 10 周,將從 TensorFlow 的原理與基礎實戰技巧開始,一步步教授學員如何在 TensorFlow 上搭建 CNN、自編碼、RNN、GAN 等模型,并最終掌握一整套基于 TensorFlow 做深度學習開發的專業技能。

      兩名授課老師佟達、白發川身為 ThoughtWorks 的資深技術專家,具有豐富的大數據平臺搭建、深度學習系統開發項目經驗。

      時間:每周二、四晚 20:00-21:00

      開課時長:總學時 20 小時,分 10 周完成,每周 2 次,每次 1 小時

      線上授課地址:http://www.mooc.ai/

      雷鋒網相關閱讀:

      一個實例告訴你:Kaggle 數據競賽都有哪些套路

      從 Kaggle 困局,看國內數據競賽平臺如何突圍

      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

      一個框架解決幾乎所有機器學習問題

      分享:
      相關文章

      編輯

      聚焦數據科學,連接 AI 開發者。更多精彩內容,請訪問:yanxishe.com
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 亚洲中文字幕久久久一区| 亚洲综合专区| 色综合久久成人综合网| 91在线小视频| 自拍偷自拍亚洲精品被多人伦好爽 | 久久精品国产国产精品四凭 | 人妻熟妇久久久久久精| 日韩精品国产另类专区| 亚洲人成色4444在线观看| 日本丰满熟妇乱子伦| 高清免费毛片| 曰本女人与公拘交酡| 宝丰县| 亚洲三区在线观看内射后入| 亚洲成人黄色| 中国精品一区二区| 亚洲AV第二区国产精品| 99久久免费精品国产色| 亚洲av无码片在线播放| 久久一本日韩精品中文字幕屁孩| 欧美性猛交ⅹxxx乱大交妖精| 精品国产av无码一道| 麻豆人人妻人人妻人人片av| 亚洲丝袜熟女在线樱桃 | 日本熟妇人妻xxxxx人hd| 91资源在线| 精品亚洲天堂| 亚洲精品一区中文字幕乱码| 一级欧美牲交大片免费观看| 亚洲中文久久久精品无码| 久久这里都是精品一区| 欧美日本中文| 一本久久a精品一区二区| 国产成人精品无码一区二区| 三年在线观看免费完整版中文| 久久99精品久久久久久hb无码| 亚洲国产精久久久久久久春色| 在线观看特色大片免费视频| 白浆网站| aa性欧美老妇人牲交免费| 国产乱妇无码毛片A片在线看下载|