吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用 Featuretools庫來了解自動化特征工程如何改變并優化機器學習的工作方式

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-09-05 09:17 ? 次閱讀

近年來,我們在自動模型選擇和超參數調優方面取得了進展,但機器學習流程中最重要的方面--特征工程,在很大程度上被我們所忽略。在本文中,我們將使用Featuretools庫來了解自動化特征工程如何改變并優化機器學習的工作方式。

Featuretools是一個開源的Python庫,用于自動化特征工程

自動化特征工程是一種相對較新的技術,用于解決真實世界數據集所面臨的一系列科學問題。自動特征工程能夠縮減時間成本,構建更優秀的預測模型,生成更有意義的特征,還能防止數據泄漏(data leakage)。它具有強大的功能,以至于我相信它將是任何機器學習工作流程的標準部分。

接下來,我們將通過以下兩個項目來進一步了解它的強大之處,這兩個項目都能體現自動化特征工程的一些優點:

貸款還款預測(Loan Repayment Prediction):相比于手動特征工程,自動化特征工程能夠將機器學習開發時間縮短10倍,同時還能提供更好的模型表現。

項目的Notebooks地址:

https://github.com/Featuretools/Automated-Manual-Comparison/tree/master/Loan%20Repayment

零售支出預測(Retail Spending Prediction):自動化特征工程能夠通過內部時間序列過濾器的處理,創造更有意義的特征,同時還能防止數據泄漏,從而成功實現模型的部署。

項目的Notebooks地址:

https://github.com/Featuretools/Automated-Manual-Comparison/tree/master/Retail%20Spending

手動特征工程 vs自動特征工程

特征工程是指獲取數據集并構建解釋的特征變量的過程,而特征變量能夠用于訓練機器學習模型并用于預測。通常,分布于多張表中的數據需要匯集到一張表中,其中行代表觀察量,而列代表特征。

手動特征工程是一種傳統的特征工程方法,它主要是利用領域知識來構建特征,一次只能產生一個特征,這是一個繁瑣,費時又易出錯的過程。此外,每次進行手動特征工程的代碼是針對特定的問題,當我們要解決一個新問題、新數據集時,我們需要重寫相關代碼。

自動化特征工程是通過從一組相關的數據表中自動提取有用且有意義的特征,這種方法能夠改變標準的工作流程,并適用于任務數據集的有關問題。此外,它不僅減少了特征工程所需的時間,還創建了可解釋性的特征,并通過過濾與時間相關的數據來防止數據泄漏。

貸款還款項目

更快更好地構建模型

Home Credit Loan 問題是于今日在 Kaggle上結束的一項機器學習競賽項目,其目標是預測客戶是否能夠償還貸款。對于數據科學家而言,這個問題的挑戰在于其數據的大小及所分布的范圍。我們來看下完整的數據集,可以看到分布在七張表中有5800萬行數據,而機器學習方法需要針對一張表進行模型訓練。此時,特征工程就需要將每個客戶的所有信息提取并融合到一個表中。

特征工程需要從數據表格集中獲取所有的數據信息并整合到一張表中

對于這個問題,我先是嘗試用傳統的手動特征工程來解決,共花了10個小時手動地創建一組特征。首先,我研究了其他數據科學家的工作,探索數據與研究,以便獲得必要的領域知識。然后我通過編程將所需的知識寫成代碼,每次構建一個特征。對于一個手動特征,我使用 3 個不同的表格,找到了客戶在之前貸款中延遲付款的總數。

最終,手動特征工程取得了相當不錯的表現:相比于基線特征,手動特征工程取得了 65% 的性能改進,表明了特征工程的適用性和重要性。

然而,由于這種方法的效率很低,我無法在這里展開描述整個過程。對于手動特征工程,每個特征花費超過 15 分鐘的時間,因為我用的這種方法一次只能創建一個特征。

手動特征工程流程

除了繁瑣性和耗時等缺點外,手動特征工程還有如下弊端:

只針對特定問題:對于這個項目,我寫了幾個小時的代碼不能應用于其他任何問題

容易出錯:每行代碼都有可能產生錯誤

此外,手動特征工程所提取的特征還會受到人類創造力和耐心的限制:對于一個問題,我們需要考慮大量的特征,而每個特征的構建又需要大量的時間。

從手動到自動的特征工程

像 Featuretools 可以實現的功能那樣,自動化特征工程能夠從一組相關的數據表中創建數千個特征,我們所需要知道的就是數據表的基本結構以及它們之間的關系。我們將單個數據結構稱為實體集(entity set),一旦擁有一個實體集,我們將在數據集中采用深度特征合成方法(DFS),通過調用一個函數來構建數千個特征。

使用 Featuretools進行自動化特征工程

DFS 使用稱為“基元 primitives”的函數來聚合并轉換我們的數據。這些primitives的獲取可以跟獲取列的平均值或最大值一樣得簡單,也可以通過基于主體的專業知識那樣相對復雜的方式來獲取,因為Featuretools允許我們針對任務自定義我們的 primitives。

特征基元(feature primitives)包括許多需要手動完成的操作,但通過 Featuretools,我們可以在任何關系數據庫中使用相同的確切語法,也就是說在不同的數據集上我們也不需要重寫代碼就能夠使用這些操作。此外,當我們將 primitives堆疊在一起以創建深層特征時,DFS的強大之處就盡顯無疑了。

有關 DFS的更多信息,可以參閱:

https://www.featurelabs.com/blog/deep-feature-synthesis/

下面,我將演示如何構建這個過程。這里,我只需要一行的代碼就能使用DFS 操作,并使用7張表格數據為每個客戶創建數千個功能,如下所示,其中 ft代表導入的 featuretools庫:

1#Deepfeaturesynthesis2feature_matrix,features=ft.dfs(entityset=es,3target_entity='clients',4agg_primitives=agg_primitives,5trans_primitives=trans_primitives)

以下是我們從 Featuretools自動獲得的 1820 個功能中的一部分,包括:

客戶以前貸款所支付的最高總額。這是使用 3 個表中的 MAX和 SUM值創建的。

客戶信用卡的平均債務排名。這是使用 2 個表中的 PERCENTILE和MEAN值創建的。

客戶是否在申請過程中提交了兩份文件。這是使用 AND轉換和 1 個表創建的。

每一個特征都是使用簡單的聚合構建的,因此它也是可解釋的。 Featuretools不僅能夠創建許多我們手動也能完成的相同特征,還有大量手動無法創建的特征。這些特征要么是我們所無法考慮到,要么是需要昂貴的時間成本構建。雖然并非每個特征都與我們的問題相關,而某些功能間還具有高相關性,所以相比于特征量不足而言,更多的特征可能會更有助于我們解決問題。

經過一些特征選擇和模型優化后,這些特征在預測模型中的性能表現也更好,而整個模型的運行時間為1小時,與手動過程相比縮減了 10 倍。Featuretools是個高校快速的自動特征工程庫,它需要較少的領域專業知識,因此所需編寫的代碼行數也比手動特征工程要少得多。

學習 Featuretools需要花費一些時間,但我認為這是一項值得、能夠帶來回報的投資。花了一小時時間學會 Featuretools,你可以將其應用于任何機器學習的特征工程問題。

以下圖表是我對貸款償還項目的一些總結:

自動化特征工程vs手動特征工程:開發時間、特征數以及性能對比

開發時間:考慮到最終的特征工程代碼所需的每一個特征時間--手動特征工程需要10小時,而自動化特征工程只需要 1 小時。

生成的特征數量:手動特征工程生成 30 個特征,而自動化特征工程創建了 1820 個特征。

使用提取的特征訓練模型所取得的相對于基線的性能改進:手動特征工程性能改進65%,而自動化特征工程取得了 66% 的提升。

此外,我為第一個項目編寫的 Featuretools代碼還可以應用于任何數據集,而手動工程代碼則需要為了一個新的數據集重寫代碼。

零售支出項目

構建有意義的功能并防止數據泄漏

第二個項目是客戶的零售支出預測,所使用的數據集是在線的客戶交易記錄。該預測問題是將客戶分為兩個部分,即下個月花費超過 500 美元的人和花費不超過 500 美元的人。每個客戶對應多個標簽,即將客戶在上個月的標簽作為下個月的預測使用。例如,我們可以將客戶在 5 月份的支出作為標簽,然后在 6 月份中使用,依此類推。

每個客戶都是多次使用的訓練樣本

多次使用客戶標簽會給創建訓練數據帶來困難:給定某個月份,當為客戶提取對應特征時,即便我們可以訪問這些數據,也無法從這個月中獲取未來幾個月的任何信息。在部署中,我們并沒有未來的數據,因此無法使用它來訓練模型。這也是我們經常在現實世界數據集上所面臨的的挑戰:由于模型無法在有效的數據集上進行訓練,因此在現實世界應用中,這種模型的性能通常都很糟糕。

幸運的是,這個問題在 Featuretools中能夠很容易地解決。在深度特征合成(DFS)函數中,如上所示,其中截止時間表示我們不能使用任何數據作為標簽的點,而 Featuretools在構建特征時會自動地將時間考慮在內。

給定某一月份,我們可以使用之前月份過濾掉的數據來構建客戶的特征。請注意,調用我們創建的特征集的過程與貸款還款項目中的調用相同,只是多了一個 cutoff_time參數

1#Deepfeaturesynthesis2feature_matrix,features=ft.dfs(entityset=es,3target_entity='customers',4agg_primitives=agg_primitives,5trans_primitives=trans_primitives,6cutoff_time=cutoff_times)

運行Deep Feature Synthesis得到的結果是一個特征表,即每個客戶在每個月對應一個特征。我們可以使用這些特征和標簽來訓練我們的模型,然后對往后的任何月份進行預測。此外,我們不用擔心構建模型所使用的特征會包含未來的信息,也不用擔心由此導致不公平性及錯誤的訓練得分。

利用自動化特征,我能夠構建一個機器學習模型并用于預測模型某月的支出。結果表明,相比于基線模型取得的0.69 ROC AUC表現,我們的模型明顯更優,能夠達到0.90 ROC AUC。

除了預測性能外,Featuretools實現還能提供一個很有價值的東西:可解釋性功能。下面,我們來看看隨機森林模型中 15 個最重要的特征:

利用Featuretools,隨機森林模型所獲取的15個最重要特征

特征重要性告訴我們,影響客戶下個月支出預測的最重要因素。在這里,我們可以知道,用戶上月支出總和 SUM(purchases.total)和購買數量 SUM(purchases.quantity)是影響下月支出預測的關鍵因素。雖然這些特征我們可以通過手動構建,但是我們擔心數據的泄漏,因此我們需要創建一個開發階段性能更好的模型。

如果該工具已經能夠自動創建一些有意義的特征而無需擔心其有效性,那么我們為什么還要手動實現呢?此外,對于這個問題,自動化特征是完全清晰的,也能夠向我們解釋現實世界的推理過程。

即使手動特征工程需要花費比 Featuretools多得多的時間,但我也無法創建出一組性能接近相同的特征。下圖顯示了使用在兩個數據集上使用訓練的模型對未來月客戶支出預測的 ROC 曲線,其中越靠近左上角的曲線代表更好的性能:

自動特征工程 vs手動特征工程的 ROC曲線

其中越靠近左上部分的曲線表示越好的性能

我甚至不確定手動特征是否是通過有效的數據創建的,但起碼 Featuretools是這樣實現的,因此我也不需要擔心時間相關問題中的數據泄漏問題。也許,無法通過手動設計一組有用的特征可以表明數據科學家的失敗,但是如果自動化工具能夠安全地我們實現,那為什么我們不使用呢?

結論

拋開以上這些項目,我相信自動化特征工程將會是機器學習工作流程中不可或缺的一部分。雖然該技術目前還不完美,但仍能顯著地提高我們的工作效率。

下面我總結了自動化特征工程的一些要點:

能將開發時間縮短 10 倍

能夠構建相同甚至更好性能的模型

提供具有現實意義的可解釋功能

防止模型使用無效的、不正確的數據特征

適合現有的工作流程和機器學習模型

通過自動化特征工程可以使這些工作變得更加簡單,我們之前為大家介紹的基于 Python 的自動特征工程可以教大家如何快速開始自動創建機器學習特征。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4828

    瀏覽量

    69061
  • 機器學習
    +關注

    關注

    66

    文章

    8441

    瀏覽量

    133092

原文標題:手動特征工程已經OUT了!自動特征工程才是改進機器學習的方式

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何輕松掌握機器學習概念和在工業自動化中的應用

    ,突破傳統自動化技術發展的天花板呢?面對人工智能、機器學習、深度學習、神經網絡……這些深奧的概念,如何快速了解和掌握呢? 今天,給我5分鐘,
    的頭像 發表于 01-16 09:45 ?3184次閱讀

    招聘自動化、電氣自動化自動化控制工程

    招聘自動化、電氣自動化自動化控制工程師,掛證,不坐班,要求持有相關專業的中級職稱證,用于我司資質申報工作上,湊資質人員申報資質,不存在風險
    發表于 10-24 18:06

    四元數視覺:CCD機器視覺系統運行原理及工作方式

    產品的自動化檢測、識別、定位等功能。CCD機器視覺的工作方式機器視覺系統采用CCD照相機,將被測的目標轉換成圖像信號,傳送給專用的圖像處理系統,根據像素分布和亮度、顏色等信息,轉變成數
    發表于 05-27 14:33

    CCD機器視覺系統運行原理及工作方式

    執行機構,實現產品的自動化檢測、識別、定位等功能。  CCD機器視覺的工作方式  機器視覺系統采用CCD照相機,將被測的目標轉換成圖像信號,傳送給專用的圖像處理系統,根據像素分布和亮度
    發表于 12-10 16:32

    PLC技術在電氣工程及其自動化控制中的應用

    電氣工程及其自動化控制中,技術人員應該要了解并且重視現場的傳感情況,然后根據具體情況,充分利用PLC技術的優勢。其次,在主站系統使用PLC技術時,技術人員應該做好準備工作
    發表于 01-18 16:20

    CCD機器視覺系統有哪些運行原理及工作方式

    產品的位置、尺寸、外觀信息,根據人為預先設定的標準進行合格與否的判斷,輸出其判斷信息給執行機構,實現產品的自動化檢測、識別、定位等功能。CCD機器視覺的工作方式
    發表于 08-18 16:48

    想掌握機器學習技術?從了解特征工程開始

    問題。解決這些問題的方法與數據預處理的方法在機器學習中被統稱為特征工程,今天我們就來了解一下吧。?◆??◆??◆
    的頭像 發表于 12-05 09:36 ?2167次閱讀

    自動化機器學習是什么情況

    機器學習發展中遇到的問題,一個核心因素是人,而機器學習工作又有大量的人工干預,如特征提取、模型
    發表于 11-04 16:35 ?1433次閱讀

    破解自動化機器學習的黑匣子的具體詳情

    麻省理工學院和其他地方的研究人員已經開發了一種交互式工具,該工具首次使用戶可以查看和控制自動化機器學習系統的工作方式。目的是建立對這些系統的信心
    的頭像 發表于 04-15 14:38 ?2034次閱讀

    9種方法來利用自動化軟件以更好地了解數據

    RPA通常被視為一種自動化工具,現在企業逐漸意識到這些工具也可以幫助實現自動化各種分析過程。企業正在越來越多地在分析任務中使用機器人流程自動化,從收集分布在整個公司的數據到分析業務流程
    的頭像 發表于 10-08 14:33 ?1810次閱讀

    人工智能和機器學習為DevOps帶來了新的自動化功能

    人工智能和機器學習為DevOps帶來了新的自動化功能,為此需要對這些技術如何優化組織運營的示例進行了解
    的頭像 發表于 10-16 14:31 ?1879次閱讀

    自動化立體工作原理

    自動化立體可以說是現代物流倉儲當中重要的組成部分,是企業現代的一種代表,可以實現存取自動化,操作簡便,那么你知不知道
    發表于 07-01 09:24 ?1837次閱讀

    機械自動化就業方向及前景就業市場的影響

    提高自動化是現實,自動化正在改變人們的工作方式,它將改變人們未來從事的工作類型。
    發表于 11-15 16:37 ?1740次閱讀

    改變工作方式的Git小技巧

    。 Git的特點: 1. 直接記錄快照,而非差異比較 2.近乎所有操作都是本地執行 3. 時刻保持數據完整性 和 Git 相關的改變工作方式的一些小技巧: 1、Git 中的自動糾錯 2、對提交進行計數 3、倉庫
    的頭像 發表于 01-30 11:11 ?1032次閱讀

    ZR執行器如何改變我們的工作方式-速程精密

    ZR執行器如何改變我們的工作方式-速程精密 隨著科技的飛速發展,各種智能工具和設備不斷涌現,為我們的生活和工作來了極大的便利。其中,ZR執行器作為近年來備受關注的一種
    的頭像 發表于 04-19 19:29 ?441次閱讀
    博彩| 百家乐官网强对弱的对打法| 德州扑克怎么玩| 百家乐群dmwd| 金城百家乐平台| 百家乐官网棋| 休闲百家乐官网的玩法技巧和规则 | 足球投注网址| 大发888娱乐城 真钱下载| 威尼斯人娱乐城网上赌场| 百家乐出千方法技巧| 百家乐专家赢钱打法| 百家乐官网乐百家娱乐场| 百家乐官网赌博规| 百家乐官网娱乐网网77scs| 澳门百家乐官网心| 多伦多百家乐官网的玩法技巧和规则 | 威尼斯人娱乐赌博| KK百家乐的玩法技巧和规则 | 百家乐玩法的秘诀| 百家乐游戏台| 百家乐网上投注代理商| 百家乐赌博玩法技巧| 百家乐五湖四海娱乐| 威尼斯人娱乐城平台| 大发888娱乐场下载co| 蓝盾百家乐的玩法技巧和规则 | 大发888国际娱乐平台| 百家乐官网款| 真钱百家乐公司哪个好| 怎么玩百家乐呀| 广州太阳城大酒店| 皇冠开户网址| 百家乐官网赚钱项目| 百家乐官网怎样玩才能赢| 88娱乐城网址tlyd| 大发888备用网址大发娱乐城| 凯旋门百家乐娱乐城| 涂山百家乐官网的玩法技巧和规则| 百家乐官网技巧玩法技巧| 百家乐二十一点游戏|