国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何用深度學習處理結(jié)構(gòu)化數(shù)據(jù)?

大數(shù)據(jù) 深度學習
在機器學習/深度學習或任何類型的預測建模任務中,都是先有數(shù)據(jù)然后再做算法/方法。這也是某些機器學習方法在解決某些特定任務之前需要做大量特征工程的主要原因,這些特定任務包括圖像分類、NLP 和許多其它「非常規(guī)的」數(shù)據(jù)的處理——這些數(shù)據(jù)不能直接送入 logistic 回歸模型或隨機森林模型進行處理。

這篇文章主要關(guān)注的是深度學習領(lǐng)域一個并不非常廣為人知的應用領(lǐng)域:結(jié)構(gòu)化數(shù)據(jù)。本文作者為舊金山大學(USF)在讀研究生 Kerem Turgutlu。

使用深度學習方法按照本文所介紹的步驟處理結(jié)構(gòu)化數(shù)據(jù)有這樣的好處:

  • 無需領(lǐng)域知識
  • 表現(xiàn)優(yōu)良

在機器學習/深度學習或任何類型的預測建模任務中,都是先有數(shù)據(jù)然后再做算法/方法。這也是某些機器學習方法在解決某些特定任務之前需要做大量特征工程的主要原因,這些特定任務包括圖像分類、NLP 和許多其它「非常規(guī)的」數(shù)據(jù)的處理——這些數(shù)據(jù)不能直接送入 logistic 回歸模型或隨機森林模型進行處理。相反,深度學習無需任何繁雜和耗時的特征工程也能在這些類型的任務取得良好的表現(xiàn)。大多數(shù)時候,這些特征需要領(lǐng)域知識、創(chuàng)造力和大量的試錯。當然,領(lǐng)域?qū)I(yè)知識和精巧的特征工程仍然非常有價值,但這篇文章將提及的技術(shù)足以讓你在沒有任何領(lǐng)域知識的前提下向 Kaggle 競賽的前三名看齊,參閱:http://blog.kaggle.com/2016/01/22/rossmann-store-sales-winners-interview-3rd-place-cheng-gui/ 

[[212355]]
圖 1:一只萌狗和一只怒貓

由于特征生成(比如 CNN 的卷積層)的本質(zhì)和能力很復雜,所以深度學習在各種各樣的圖像、文本和音頻數(shù)據(jù)問題上得到了廣泛的應用。這些問題無疑對人工智能的發(fā)展非常重要,而且這一領(lǐng)域的頂級研究者每年都在分類貓、狗和船等任務上你追我趕,每年的成績也都優(yōu)于前一年。但在實際行業(yè)應用方面我們卻很少看到這種情況。這是為什么呢?公司企業(yè)的數(shù)據(jù)庫涉及到結(jié)構(gòu)化數(shù)據(jù),這些才是塑造了我們的日常生活的領(lǐng)域。

首先,讓我們先定義一下結(jié)構(gòu)化數(shù)據(jù)。在結(jié)構(gòu)化數(shù)據(jù)中,你可以將行看作是收集到的數(shù)據(jù)點或觀察,將列看作是表示每個觀察的單個屬性的字段。比如說,來自在線零售商店的數(shù)據(jù)有表示客戶交易事件的列和包含所買商品、數(shù)量、價格、時間戳等信息的列。

下面我們給出了一些賣家數(shù)據(jù),行表示每個獨立的銷售事件,列中給出了這些銷售事件的信息。 

如何用深度學習處理結(jié)構(gòu)化數(shù)據(jù)?
圖 2:結(jié)構(gòu)化數(shù)據(jù)的 pandas dataframe 示例

 接下來我們談談如何將神經(jīng)網(wǎng)絡用于結(jié)構(gòu)化數(shù)據(jù)任務。實際上,在理論層面上,創(chuàng)建帶有任何所需架構(gòu)的全連接網(wǎng)絡都很簡單,然后使用「列」作為輸入即可。在損失函數(shù)經(jīng)歷過一些點積和反向傳播之后,我們將得到一個訓練好的網(wǎng)絡,然后就可以進行預測了。

盡管看起來非常簡單直接,但在處理結(jié)構(gòu)化數(shù)據(jù)時,人們往往更偏愛基于樹的方法,而不是神經(jīng)網(wǎng)絡。原因為何?這可以從算法的角度理解——算法究竟是如何對待和處理我們的數(shù)據(jù)的。

人們對結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的處理方式是不同的。非結(jié)構(gòu)化數(shù)據(jù)雖然是「非常規(guī)的」,但我們通常處理的是單位量的單個實體,比如像素、體素、音頻頻率、雷達反向散射、傳感器測量結(jié)果等等。而對于結(jié)構(gòu)化數(shù)據(jù),我們往往需要處理多種不同的數(shù)據(jù)類型;這些數(shù)據(jù)類型分為兩大類:數(shù)值數(shù)據(jù)和類別數(shù)據(jù)。類別數(shù)據(jù)需要在訓練之前進行預處理,因為包含神經(jīng)網(wǎng)絡在內(nèi)的大多數(shù)算法都還不能直接處理它們。

編碼變量有很多可選的方法,比如標簽/數(shù)值編碼和 one-hot 編碼。但在內(nèi)存方面和類別層次的真實表示方面,這些技術(shù)還存在問題。內(nèi)存方面的問題可能更為顯著,我們通過一個例子來說明一下。

假設我們列中的信息是一個星期中的某一天。如果我們使用 one-hot 或任意標簽編碼這個變量,那么我們就要假設各個層次之間都分別有相等和任意的距離/差別。 

如何用深度學習處理結(jié)構(gòu)化數(shù)據(jù)?
圖 3:one-hot 編碼和標簽編碼

 

但這兩種方法都假設每兩天之間的差別是相等的,但我們很明顯知道實際上并不是這樣,我們的算法也應該知道這一點!

「神經(jīng)網(wǎng)絡的連續(xù)性本質(zhì)限制了它們在類別變量上的應用。因此,用整型數(shù)表示類別變量然后就直接應用神經(jīng)網(wǎng)絡,不能得到好的結(jié)果。」[1]

基于樹的算法不需要假設類別變量是連續(xù)的,因為它們可以按需要進行分支來找到各個狀態(tài),但神經(jīng)網(wǎng)絡不是這樣的。實體嵌入(entity embedding)可以幫助解決這個問題。實體嵌入可用于將離散值映射到多維空間中,其中具有相似函數(shù)輸出的值彼此靠得更近。比如說,如果你要為一個銷售問題將各個省份嵌入到國家這個空間中,那么相似省份的銷售就會在這個投射的空間相距更近。

因為我們不想在我們的類別變量的層次上做任何假設,所以我們將在歐幾里得空間中學習到每個類別的更好表示。這個表示很簡單,就等于 one-hot 編碼與可學習的權(quán)重的點積。

嵌入在 NLP 領(lǐng)域有非常廣泛的應用,其中每個詞都可表示為一個向量。Glove 和 word2vec 是其中兩種著名的嵌入方法。我們可以從圖 4 看到嵌入的強大之處 [2]。只要這些向量符合你的目標,你隨時可以下載和使用它們;這實際上是一種表示它們所包含的信息的好方法。 

如何用深度學習處理結(jié)構(gòu)化數(shù)據(jù)?

圖 4:來自 TensorFlow 教程的 word2vec

盡管嵌入可以在不同的語境中使用(不管是監(jiān)督式方法還是無監(jiān)督式方法),但我們的主要目標是了解如何為類別變量執(zhí)行這種映射。

實體嵌入

盡管人們對「實體嵌入」有不同的說法,但它們與我們在詞嵌入上看到的用例并沒有太大的差異。畢竟,我們只關(guān)心我們的分組數(shù)據(jù)有更高維度的向量表示;這些數(shù)據(jù)可能是詞、每星期的天數(shù)、國家等等。這種從詞嵌入到元數(shù)據(jù)嵌入(在我們情況中是類別)的轉(zhuǎn)換使用讓 Yoshua Bengio 等人使用一種簡單的自動方法就贏得了 2015 年的一場 Kaggle 競賽——通常這樣做是無法贏得比賽的。參閱:https://www.kaggle.com/c/pkdd-15-predict-taxi-service-trajectory-i

「為了處理由客戶 ID、出租車 ID、日期和時間信息組成的離散的元數(shù)據(jù),我們使用該模型為這些信息中的每種信息聯(lián)合學習了嵌入。這種方法的靈感來自于自然語言建模方法 [2],其中每個詞都映射到了一個固定大小的向量空間(這種向量被稱為詞嵌入)。[3] 

如何用深度學習處理結(jié)構(gòu)化數(shù)據(jù)?

圖 5:使用 t-SNE 2D 投影得到的出租車元數(shù)據(jù)嵌入可視化

我們將一步步探索如何在神經(jīng)網(wǎng)絡中學習這些特征。定義一個全連接的神經(jīng)網(wǎng)絡,然后將數(shù)值變量和類別變量分開處理。

對于每個類別變量:

1. 初始化一個隨機的嵌入矩陣 mxD:

  • m:類別變量的不同層次(星期一、星期二……)的數(shù)量
  • D:用于表示的所需的維度,這是一個可以取值 1 到 m-1 的超參數(shù)(取 1 就是標簽編碼,取 m 就是 one-hot 編碼) 
\
圖 6:嵌入矩陣

2. 然后,對于神經(jīng)網(wǎng)絡中的每一次前向通過,我們都在該嵌入矩陣中查詢一次給定的標簽(比如為「dow」查詢星期一),這會得到一個 1xD 的向量。 

\
圖 7:查找后的嵌入向量

3. 將這個 1×D 的向量附加到我們的輸入向量(數(shù)值向量)上。你可以把這個過程看作是矩陣增強,其中我們?yōu)槊恳粋€類別都增加一個嵌入向量,這是通過為每一特定行執(zhí)行查找而得到的。 

如何用深度學習處理結(jié)構(gòu)化數(shù)據(jù)?

圖 8:添加了嵌入向量后

4. 在執(zhí)行反向傳播的同時,我們也以梯度的方式來更新這些嵌入向量,以最小化我們的損失函數(shù)。

輸入一般不會更新,但對嵌入矩陣而言有一種特殊情況,其中我們允許我們的梯度反向流回這些映射的特征,從而優(yōu)化它們。

我們可以將其看作是一個讓類別嵌入在每次迭代后都能進行更好的表示的過程。

注意:根據(jù)經(jīng)驗,應該保留沒有非常高的基數(shù)的類別。因為如果一個變量的某個特定層次占到了 90% 的觀察,那么它就是一個沒有很好的預測價值的變量,我們可能最好還是避開它。

好消息

通過在我們的嵌入向量中執(zhí)行查找并允許 requires_grad=True 并且學習它們,我們可以很好地在我們最喜歡的框架(最好是動態(tài)框架)中實現(xiàn)上面提到的架構(gòu)。但 Fast.ai 已經(jīng)實現(xiàn)了所有這些步驟并且還做了更多。除了使結(jié)構(gòu)化的深度學習更簡單,這個庫還提供了很多當前最先進的功能,比如差異學習率、SGDR、周期性學習率、學習率查找等等。這些都是我們可以利用的功能。你可以在以下博客進一步了解這些主題:

  • https://medium.com/@bushaev/improving-the-way-we-work-with-learning-rate-5e99554f163b
  • https://medium.com/@surmenok/estimating-optimal-learning-rate-for-a-deep-neural-network-ce32f2556ce0
  • https://medium.com/@markkhoffmann/exploring-stochastic-gradient-descent-with-restarts-sgdr-fa206c38a74e

使用 Fast.ai 實現(xiàn)

在這一部分,我們將介紹如何實現(xiàn)上述步驟并構(gòu)建一個能更有效處理結(jié)構(gòu)化數(shù)據(jù)的神經(jīng)網(wǎng)絡。

為此我們要看看一個熱門的 Kaggle 競賽:https://www.kaggle.com/c/mercari-price-suggestion-challenge/。對于實體嵌入來說,這是一個非常合適的例子,因為其數(shù)據(jù)基本上都是類別數(shù)據(jù),而且有相當高的基數(shù)(也不是過高),另外也沒有太多其它東西。

數(shù)據(jù):

約 140 萬行

  • item_condition_id:商品的情況(基數(shù):5)
  • category_name:類別名稱(基數(shù):1287)
  • brand_name:品牌名稱(基數(shù):4809)
  • shipping:價格中是否包含運費(基數(shù):2)

重要說明:因為我已經(jīng)找到了最好的模型參數(shù),所以我不會在這個例子包含驗證集,但是你應該使用驗證集來調(diào)整超參數(shù)。

第 1 步:

將缺失值作為一個層次加上去,因為缺失本身也是一個重要信息。 

  1. train.category_name = train.category_name.fillna('missing').astype('category' 
  2. train.brand_name = train.brand_name.fillna('missing').astype('category' 
  3. train.item_condition_id = train.item_condition_id.astype('category' 
  4. test.category_name = test.category_name.fillna('missing').astype('category' 
  5. test.brand_name = test.brand_name.fillna('missing').astype('category' 
  6. test.item_condition_id = test.item_condition_id.astype('category'

第 2 步:

預處理數(shù)據(jù),對數(shù)值列進行等比例的縮放調(diào)整,因為神經(jīng)網(wǎng)絡喜歡歸一化的數(shù)據(jù)。如果你不縮放你的數(shù)據(jù),網(wǎng)絡就可能格外重點關(guān)注一個特征,因為這不過都是點積和梯度。如果我們根據(jù)訓練統(tǒng)計對訓練數(shù)據(jù)和測試數(shù)據(jù)都進行縮放,效果會更好,但這應該影響不大。這就像是把每個像素的值都除以 255,一樣的道理。

因為我們希望相同的層次有相同的編碼,所以我將訓練數(shù)據(jù)和測試數(shù)據(jù)結(jié)合了起來。

  1. combined_x, combined_y, nas, _ = proc_df(combined, 'price', do_scale=True

第 3 步:

創(chuàng)建模型數(shù)據(jù)對象。路徑是 Fast.ai 存儲模型和激活的地方。 

  1. path = '../data/'  
  2. md = ColumnarModelData.from_data_frame(path, test_idx, combined_x, combined_y, cat_flds=cats, bs= 128 

第 4 步:

確定 D(嵌入的維度),cat_sz 是每個類別列的元組 (col_name, cardinality+1) 的列表。 

  1. # We said that D (dimension of embedding) is an hyperparameter  
  2. # But here is Jeremy Howard's rule of thumb  
  3. emb_szs = [(c, min(50, (c+1)//2)) for _,c in cat_sz]  
  4. # [(6, 3), (1312, 50), (5291, 50), (3, 2)] 

第 5 步:

創(chuàng)建一個 learner,這是 Fast.ai 庫的核心對象。 

  1. params: embedding sizes, number of numerical cols, embedding dropout, output, layer sizes, layer dropouts  
  2. m = md.get_learner(emb_szs, len(combined_x.columns)-len(cats), 

第 6 步:

這部分在我前面提及的其它文章中有更加詳細的解釋。

要充分利用 Fast.ai 的優(yōu)勢。

在損失開始增大之前的某個時候,我們要選擇我們的學習率……

  1. # find best lrm.lr_find()# find best lrm.sched.plot() 

 \
圖 9:學習率與損失圖

擬合

我們可以看到,僅僅過了 3 epoch,就得到:

  1. lr = 0.0001m.fit(lr, 3, metrics=[lrmse]) 

 \

更多擬合

  1. m.fit(lr, 3, metrics=[lrmse], cycle_len=1) 

 \

還有更多……

  1. m.fit(lr, 2, metrics=[lrmse], cycle_len=1) 

 \

所以,在短短幾分鐘之內(nèi),無需進一步的其它操作,這些簡單卻有效的步驟就能讓你進入大約前 10% 的位置。如果你真的有更高的目標,我建議你使用 item_description 列并將其作為多個類別變量使用。然后把工作交給實體嵌入完成,當然不要忘記堆疊和組合。

參考文獻

  • [1] Cheng Guo, Felix Berkhahn (2016, April, 22) Entity Embeddings of Categorical Variables. Retrieved from https://arxiv.org/abs/1604.06737.
  • [2] TensorFlow Tutorials: https://www.tensorflow.org/tutorials/word2vec
  • [3] Yoshua Bengio, et al. Artificial Neural Networks Applied to Taxi Destination Prediction. Retrieved from https://arxiv.org/pdf/1508.00021.pdf.
責任編輯:未麗燕 來源: 網(wǎng)絡大數(shù)據(jù)
相關(guān)推薦

2018-04-03 14:00:03

結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)數(shù)據(jù)庫

2021-12-12 08:37:18

結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)數(shù)據(jù)

2024-05-27 00:32:45

2021-12-29 10:51:19

JavaSPL架構(gòu)

2022-05-24 09:52:37

Spark SQL大數(shù)據(jù)處理Hive

2009-10-21 15:20:28

結(jié)構(gòu)化布線技術(shù)

2014-02-09 09:53:05

2022-10-19 08:00:00

2024-10-08 10:57:04

2023-07-25 17:21:20

綜合布線結(jié)構(gòu)化布線

2023-12-05 08:47:30

Pandas數(shù)據(jù)處理

2023-12-25 15:00:18

結(jié)構(gòu)化布線光纖

2019-07-13 15:00:17

結(jié)構(gòu)化SQLNOSQL數(shù)據(jù)庫

2009-02-02 09:05:08

GoogleWebWeb結(jié)構(gòu)化

2017-05-16 21:31:03

結(jié)構(gòu)化數(shù)據(jù)新模式

2023-09-12 07:01:33

非結(jié)構(gòu)化數(shù)據(jù)商業(yè)智能

2023-03-29 21:06:53

數(shù)據(jù)中心

2014-03-14 09:52:15

非結(jié)構(gòu)化數(shù)據(jù)

2021-11-14 20:29:56

web結(jié)構(gòu)化數(shù)據(jù)

2010-01-13 13:20:08

VB.NET結(jié)構(gòu)化異常
點贊
收藏

51CTO技術(shù)棧公眾號

国产人妻777人伦精品hd| 精品一区二区国产| 在线观看免费毛片| 99精品热视频只有精品10| 色狠狠久久aa北条麻妃| www.国产精品.com| 国产精品久久一卡二卡| 老司机精品福利在线观看| 日本欧美高清| 亚洲精选一区二区| 久青青在线观看视频国产| 久久蜜桃av一区精品变态类天堂 | 国产精品996| 高清在线观看日韩| 国产综合色一区二区三区| 国产精品丝袜在线播放| 亚洲精品一区中文| 成人av免费| 欧美午夜精品久久久久久人妖| 奇米影音第四色| 99久久伊人精品| av中文字幕av| 亚洲高清电影| 污视频在线免费观看一区二区三区 | 免费久久精品视频| 欧美午夜精品| 69影院欧美专区视频| 91精品影视| 欧美一区二区视频免费观看| 青青草在线播放| 亚洲午夜激情网页| 国产福利图片| 亚洲精品中文在线影院| 97超超碰碰| 欧美极品xxx| 91视频免费版污| 国产日韩欧美激情| 妞干网在线免费视频| 久久婷婷国产综合精品青草| 日韩a在线播放| 国产欧美日本一区二区三区| 波多野结衣综合网| 91视频在线看| 久久久国产欧美| 久久影院视频免费| 波多野结衣作品集| 欧美高清在线视频| 日本a级片免费| 尤物视频一区二区| 欧美日本一道本| 99在线热播| 校园春色综合网| 色狠狠久久av五月综合| 国产精品午夜电影| 国产精品久久久久久久久婷婷| 国产精品极品在线观看| 偷拍与自拍一区| 国产精品三级美女白浆呻吟| 亚洲wwwww| www.久久热| 欧美视频专区一二在线观看| 特级全黄一级毛片| 欧美日韩激情美女| 91在线网址| 亚洲国产高清福利视频| 欧美性xxx| 美女性感视频久久久| 天美av一区二区三区久久| 国产精品久久久久av免费| 欧美三级视频| 亚洲精品国产精品国自产| 成人免费视频网站在线观看| 天天干天天草天天| 亚洲成人动漫av| 很黄的网站在线观看| 亚洲欧美激情一区| 国产一区在线电影| http;//www.99re视频| 青青草国产精品亚洲专区无| 精品久久一二三| 午夜精品一区在线观看| 久久av色综合| 欧美激情精品久久久| 欧美精品日本| 麻豆映画在线观看| 亚洲免费观看高清完整版在线| 国产尤物视频在线| 国产亚洲欧洲高清一区| 国产影视精品一区二区三区| 国产综合欧美在线看| 成人午夜电影网站| 玖玖在线免费视频| 精品呦交小u女在线| 在线一级成人| 中文视频一区视频二区视频三区| 国产日韩三级在线| 日本视频在线观看| 欧美精品久久久久久久久久| 亚洲人妖在线| 天天综合网日韩| 日韩欧美国产系列| 99久久人爽人人添人人澡 | 久久久com| 91在线云播放| av资源网站在线观看| 啊v视频在线一区二区三区| 999国产精品视频| 日本免费成人网| 一本久道久久综合中文字幕| 高清亚洲高清| 久久久av水蜜桃| 亚洲黄色小说网站| 成人午夜在线| 日本一区二区免费看| 一区二区三区在线视频观看| 成年美女黄网站色大片不卡| 91精品中文在线| 久久久久久久网| 性爽视频在线| 超碰97网站| 1000精品久久久久久久久| 中文字幕这里只有精品| 粉嫩高清一区二区三区精品视频| 中文字幕第一区综合| 国产资源在线观看入口av| 亚洲精品女av网站| 国产精品久久久久久久久晋中 | 日本乱码一区二区三区不卡| 成人黄色短视频在线观看| 91一区一区三区| 欧美aa在线| 美女亚洲精品| 亚洲狠狠爱一区二区三区| 国产精品国产亚洲精品| 色噜噜一区二区| 在线观看日产精品| 国产精品欧美三级在线观看| 日韩精品一区二区三区不卡| 日韩精品免费视频| 在线综合欧美| 国产69久久| 91在线播放视频| 午夜欧美一区二区三区在线播放| 99re8这里有精品热视频免费| 国产白丝袜美女久久久久| 亚洲精品91美女久久久久久久| 99精品国产福利在线观看免费| 视频一区二区三区在线看免费看| 国产97在线|日韩| 国产亚洲一区二区三区在线观看| 中老年在线免费视频| 亚洲国产精品久久久久婷婷老年| 欧美少妇一区二区| 欧美日韩国产成人精品| 亚州av电影免费在线观看| 国产精品久久久久国产a级| 亚洲丝袜制服诱惑| 国产伦精品一区二区三区在线播放 | 欧美日韩国产精品自在自线| 99久久婷婷这里只有精品| 国产区视频在线观看| 久久久久久久香蕉网| 久久久久久一级片| 日韩av综合| 亚洲欧美aⅴ...| jlzzjlzz欧美| 日韩免费av一区二区| 国产精品成人免费在线| 精品视频高潮| 日本不卡1区2区3区| 国产日韩换脸av一区在线观看| 亚洲愉拍自拍另类高清精品| 欧美午夜精彩| 成人在线免费看| 欧洲精品国产| 亚洲欧美激情视频| 91视视频在线直接观看在线看网页在线看| 免费一区二区三区四区| 欧美三级午夜理伦三级| 亚洲欧美日韩中文播放 | 91福利精品视频| 欧美体内she精视频在线观看| 污视频在线观看免费| 91国产成人在线| 日本高清不卡一区| 国产精一品亚洲二区在线视频| 精品视频自拍| 国产嫩草在线视频| 深夜福利成人| 久久亚洲成人精品| 69堂精品视频| 久久久亚洲国产美女国产盗摄| 怡红院成人在线| 国产美女免费观看| 免费久久久久久| 欧美一级淫片播放口| 色综合久久久久综合体| 亚洲精品免费在线观看| 成人免费毛片嘿嘿连载视频| 麻豆一区二区在线|