0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用 Featuretools庫來了解自動化特征工程如何改變并優(yōu)化機器學(xué)習(xí)的工作方式

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

近年來,我們在自動模型選擇和超參數(shù)調(diào)優(yōu)方面取得了進(jìn)展,但機器學(xué)習(xí)流程中最重要的方面--特征工程,在很大程度上被我們所忽略。在本文中,我們將使用Featuretools庫來了解自動化特征工程如何改變并優(yōu)化機器學(xué)習(xí)的工作方式。

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

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

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

貸款還款預(yù)測(Loan Repayment Prediction):相比于手動特征工程,自動化特征工程能夠?qū)C器學(xué)習(xí)開發(fā)時間縮短10倍,同時還能提供更好的模型表現(xiàn)。

項目的Notebooks地址:

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

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

項目的Notebooks地址:

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

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

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

手動特征工程是一種傳統(tǒng)的特征工程方法,它主要是利用領(lǐng)域知識來構(gòu)建特征,一次只能產(chǎn)生一個特征,這是一個繁瑣,費時又易出錯的過程。此外,每次進(jìn)行手動特征工程的代碼是針對特定的問題,當(dāng)我們要解決一個新問題、新數(shù)據(jù)集時,我們需要重寫相關(guān)代碼。

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

貸款還款項目

更快更好地構(gòu)建模型

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

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

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

最終,手動特征工程取得了相當(dāng)不錯的表現(xiàn):相比于基線特征,手動特征工程取得了 65% 的性能改進(jìn),表明了特征工程的適用性和重要性。

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

手動特征工程流程

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

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

容易出錯:每行代碼都有可能產(chǎn)生錯誤

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

從手動到自動的特征工程

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

使用 Featuretools進(jìn)行自動化特征工程

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

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

有關(guān) DFS的更多信息,可以參閱:

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

下面,我將演示如何構(gòu)建這個過程。這里,我只需要一行的代碼就能使用DFS 操作,并使用7張表格數(shù)據(jù)為每個客戶創(chuàng)建數(shù)千個功能,如下所示,其中 ft代表導(dǎo)入的 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值創(chuàng)建的。

客戶信用卡的平均債務(wù)排名。這是使用 2 個表中的 PERCENTILE和MEAN值創(chuàng)建的。

客戶是否在申請過程中提交了兩份文件。這是使用 AND轉(zhuǎn)換和 1 個表創(chuàng)建的。

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

經(jīng)過一些特征選擇和模型優(yōu)化后,這些特征在預(yù)測模型中的性能表現(xiàn)也更好,而整個模型的運行時間為1小時,與手動過程相比縮減了 10 倍。Featuretools是個高??焖俚淖詣犹卣鞴こ處?,它需要較少的領(lǐng)域?qū)I(yè)知識,因此所需編寫的代碼行數(shù)也比手動特征工程要少得多。

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

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

自動化特征工程vs手動特征工程:開發(fā)時間、特征數(shù)以及性能對比

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

生成的特征數(shù)量:手動特征工程生成 30 個特征,而自動化特征工程創(chuàng)建了 1820 個特征。

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

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

零售支出項目

構(gòu)建有意義的功能并防止數(shù)據(jù)泄漏

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

每個客戶都是多次使用的訓(xùn)練樣本

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

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

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

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得到的結(jié)果是一個特征表,即每個客戶在每個月對應(yīng)一個特征。我們可以使用這些特征和標(biāo)簽來訓(xùn)練我們的模型,然后對往后的任何月份進(jìn)行預(yù)測。此外,我們不用擔(dān)心構(gòu)建模型所使用的特征會包含未來的信息,也不用擔(dān)心由此導(dǎo)致不公平性及錯誤的訓(xùn)練得分。

利用自動化特征,我能夠構(gòu)建一個機器學(xué)習(xí)模型并用于預(yù)測模型某月的支出。結(jié)果表明,相比于基線模型取得的0.69 ROC AUC表現(xiàn),我們的模型明顯更優(yōu),能夠達(dá)到0.90 ROC AUC。

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

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

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

如果該工具已經(jīng)能夠自動創(chuàng)建一些有意義的特征而無需擔(dān)心其有效性,那么我們?yōu)槭裁催€要手動實現(xiàn)呢?此外,對于這個問題,自動化特征是完全清晰的,也能夠向我們解釋現(xiàn)實世界的推理過程。

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

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

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

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

結(jié)論

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

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

能將開發(fā)時間縮短 10 倍

能夠構(gòu)建相同甚至更好性能的模型

提供具有現(xiàn)實意義的可解釋功能

防止模型使用無效的、不正確的數(shù)據(jù)特征

適合現(xiàn)有的工作流程和機器學(xué)習(xí)模型

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68625
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8418

    瀏覽量

    132655

原文標(biāo)題:手動特征工程已經(jīng)OUT了!自動特征工程才是改進(jìn)機器學(xué)習(xí)的方式

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何輕松掌握機器學(xué)習(xí)概念和在工業(yè)自動化中的應(yīng)用

    ,突破傳統(tǒng)自動化技術(shù)發(fā)展的天花板呢?面對人工智能、機器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)……這些深奧的概念,如何快速了解和掌握呢? 今天,給我5分鐘,
    的頭像 發(fā)表于 01-16 09:45 ?3133次閱讀

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

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

    四元數(shù)視覺:CCD機器視覺系統(tǒng)運行原理及工作方式

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

    CCD機器視覺系統(tǒng)運行原理及工作方式

    執(zhí)行機構(gòu),實現(xiàn)產(chǎn)品的自動化檢測、識別、定位等功能?! CD機器視覺的工作方式  機器視覺系統(tǒng)采用CCD照相機,將被測的目標(biāo)轉(zhuǎn)換成圖像信號,傳送給專用的圖像處理系統(tǒng),根據(jù)像素分布和亮度
    發(fā)表于 12-10 16:32

    PLC技術(shù)在電氣工程及其自動化控制中的應(yīng)用

    電氣工程及其自動化控制中,技術(shù)人員應(yīng)該要了解并且重視現(xiàn)場的傳感情況,然后根據(jù)具體情況,充分利用PLC技術(shù)的優(yōu)勢。其次,在主站系統(tǒng)使用PLC技術(shù)時,技術(shù)人員應(yīng)該做好準(zhǔn)備工作
    發(fā)表于 01-18 16:20

    CCD機器視覺系統(tǒng)有哪些運行原理及工作方式?

    產(chǎn)品的位置、尺寸、外觀信息,根據(jù)人為預(yù)先設(shè)定的標(biāo)準(zhǔn)進(jìn)行合格與否的判斷,輸出其判斷信息給執(zhí)行機構(gòu),實現(xiàn)產(chǎn)品的自動化檢測、識別、定位等功能。CCD機器視覺的工作方式
    發(fā)表于 08-18 16:48

    想掌握機器學(xué)習(xí)技術(shù)?從了解特征工程開始

    問題。解決這些問題的方法與數(shù)據(jù)預(yù)處理的方法在機器學(xué)習(xí)中被統(tǒng)稱為特征工程,今天我們就來了解一下吧。?◆??◆??◆
    的頭像 發(fā)表于 12-05 09:36 ?2141次閱讀

    自動化機器學(xué)習(xí)是什么情況

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

    破解自動化機器學(xué)習(xí)的黑匣子的具體詳情

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

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

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

    人工智能和機器學(xué)習(xí)為DevOps帶來了新的自動化功能

    人工智能和機器學(xué)習(xí)為DevOps帶來了新的自動化功能,為此需要對這些技術(shù)如何優(yōu)化組織運營的示例進(jìn)行了解
    的頭像 發(fā)表于 10-16 14:31 ?1848次閱讀

    自動化立體工作原理

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

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

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

    改變工作方式的Git小技巧

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

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

    ZR執(zhí)行器如何改變我們的工作方式-速程精密 隨著科技的飛速發(fā)展,各種智能工具和設(shè)備不斷涌現(xiàn),為我們的生活和工作來了極大的便利。其中,ZR執(zhí)行器作為近年來備受關(guān)注的一種
    的頭像 發(fā)表于 04-19 19:29 ?402次閱讀