色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

為什么特征工程如此重要?把數據轉換成圖像

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-09-05 09:00 ? 次閱讀

創造力一直是人類進化的本質。數千年來,人類已經在歷史長河中發掘了不少奇妙發現,而這種行為的起源契機可能是第一個輪子開始滾動,或是某個瘋狂想法背后的思維火花崩現。從石器時代到今天,創造力始終倍受贊賞,而它也確實也給我們帶來了源源不斷的進步動力。

現如今,各個領域正在豐富創造力的內涵,其中,數據科學應該是最歡迎它的領域之一:從零假設、數據預處理、構建模型——創造性洞察力在其中發揮著重要作用。

攝影:Franki Chamaki

一位Kaggle大師曾對我說:

你解決問題的次數越多,你對某些想法、挑戰的理解就越深,你會發現某些東西對于特定問題會有奇效。

放在競賽實踐中,這種經驗在特征工程上表現得尤為明顯。所謂特征工程,指的就是從數據中抽取包含大量信息的特征,方便模型易于學習的過程。

為什么特征工程如此重要?

現在數據科學的許多初學者都“迷信”LGBM和XGBoost,因為它們的效果確實好,準確率很高。相應的,傳統的線性回歸和KNN開始淡出人們的視野。

但在某些情況下,線性回歸的效果其實不一定比GBM樹差,甚至有時還更好。以我個人的經歷為例,線性回歸模型在曾在不少競賽中幫助我取得優勢。

統計學家喬治·博克有一句話,被不少統計學從業者奉為圭臬:

所有的模型都是錯誤的,但其中有些是有用的。

這意味著模型只有在發現某些和目標變量有重大關系的特征時,它才是強大的。而這就是特征工程發揮作用的地方——我們設計、創建新特征,以便模型從中提取重要相關性。

之前我參加過DataHack的一個競賽,內容是用數據集預測電力消耗。通過熱圖和探索性數據分析,我繪制了以下這幅圖:

熱圖的縱坐標DOW表示一周7天,橫坐標則是一天24小時。很明顯,周末整天的用電情況和工作日深夜的用電情況十分類似。由此,我創建了一個特征——weekend proximity,它不僅提高了模型得分,還幫我最終贏得了比賽。

因此,在機器學習競賽中善用創造力十分重要,下面是幾個大家都知道但不常用的特征工程技巧,其中部分還有些旁門左道:

把數據轉換成圖像

Meta-leaks

表征學習特征

均值編碼

轉換目標變量

把數據轉換成圖像

Kaggle上有一個微軟惡意軟件分類挑戰,它的數據集包含一組已知的惡意軟件文件,對于每個文件,原始數據包含文件二進制內容的十六進制表示。此前,參賽者在網上從沒接觸過類似的數據集,而他們的目標是開發最優分類算法,把測試集中的文件放到各自所屬的類別中。

比賽進行到最后,“say NOOOOO to overfittttting”贏得了第一名,他們的制勝法寶是把原始數據的圖像表示作為特征。

我們把惡意文件的字節文檔看成黑白圖像,其中每個字節的像素強度在0-255之間。然而,標準圖像處理技術與n-gram等其他特征不兼容。所以之后,我們從asm文件而不是字節文件中提取黑白圖像。

下圖是同一惡意軟件的字節圖像、asm圖像對比:

字節圖像(左)asm圖像(右)

asm文件是用匯編語言寫成的源程序文件。這個團隊發現把asm文件轉成圖像后,圖像的前800-1000個像素的像素強度可以作為分類惡意軟件的一個可靠特征。

雖然他們表示并不知道為什么這么做會奏效,因為單獨使用這個特征并不會給分類器性能帶來明顯變化,但當它和其他n-gram特征一起使用時,性能提升效果就很顯著了。

把原始數據轉換成圖像,并把像素作為特征。這是Kaggle競賽中出現的令人驚嘆的特征工程之一。

元數據泄露

當處理過的特征在沒有應用任何機器學習的情況下,可以非常完美地解釋目標時,這可能發生了數據泄露。

最近Kaggle上的一個競賽——桑坦德客戶價值預測挑戰賽發生了數據泄露,參賽者只需對行和列的序列做蠻力搜索,最終就能很好地解釋目標。

桑坦德的數據泄露

如上圖所示,目標變量明顯泄漏到了f190486列中。事實上,我沒有用任何機器學習就得到了0.57分,這在排行榜上是個高分。在競賽截止日期前二十天左右,主持競賽的桑坦德銀行終于發現了這個問題,但他們最終還是決定繼續比賽,讓參賽者假設這是一個數據屬性。

雖然這種錯誤非常罕見,但如果只是想在競賽中取得好排名,你可以在一開始從文件名、圖像元數據以及序號等特征中嘗試提取模式。請注意,這種做法本身對實際的數據科學問題沒有作用。

比起在IDA和其它特征上花費大量時間,如果你真的每次都認真做探索性數據分析了(EDA),你可能會因此發現競賽“捷徑”。

表征學習特征

對于資歷較老的數據科學參賽者,他們對基礎特征工程技巧肯定十分熟悉,比如Label Encoding、one-hot編碼、Binning等等。然而,這些方法非常普通,現在每個人都知道它們該怎么用。

為了從人群中脫穎而出,為了在排行榜上占據更高的名次,我們需要發掘一些聰明的方法,比如自編碼器。自編碼器能從數據樣本中進行無監督學習,這意味著算法直接從訓練數據中捕捉最顯著的特征,無需其他特征工程。

自編碼器

自編碼器只是給定一個表征學習模型,它學習輸入,然后生成輸入本身。 例:這就像給一個人看一張關于貓的圖像,然后要求他在一段時間后畫出自己看到的那只貓。

直覺是學習過程中提取到的最佳觀察特征。在上面這個例子中,人類肯定會畫兩只眼睛、三角形的耳朵和胡須。然后后面的模型會把這些直覺作為分類的重要依據。

均值編碼

均值編碼其實還是很常見的,這是一種非常適合初學者的技巧,能在解決問題的同時提供更高的準確性。如果我們用訓練數據中的目標值替換分類值,這叫Target Encoding;如果我們用平均數這樣的統計量度來對分類值進行編碼,這就叫均值編碼(Mean Encoding)。

下面是一個示例,我們需要基于每類目標變量的value_counts,通過標簽數量、目標變量編碼標簽。

其中,featurelabel是scikit-learn編碼的標簽,featuremean就是莫斯科標簽下的真實目標數量/莫斯科標簽下的目標總數,也就是2/5=0.4。

同理,對于Tver標簽——

m=Tver標簽下的真實目標數量=3

n=Tver標簽下的目標總數=4

相應的,Tver編碼就是m/n=3/4=0.75(約等于0.8)

問:為什么均值編碼優于其他編碼方法? 答:如果數據具有高基數類別屬性,那么相比其他編碼方法,均值編碼是更簡單高效的一種方案。

數據分析中經常會遇到類別屬性,比如日期、性別、街區編號、IP地址等。絕大部分數據分析算法是無法直接處理這類變量的,需要先把它們先處理成數值型量。如果這些變量的可能值很少,我們可以用常規的one-hot編碼和label encoding。

但是,如果這些變量的可能值很多,也就是高基數,那么在這種情況下,使用label encoding會出現一系列連續數字(基數范圍內),在特征中添加噪聲標簽和編碼會導致精度不佳。而如果使用的是one-hot編碼,隨著特征不斷增加,數據集的維數也在不斷增加,這會阻礙編碼。

因此,這時均值編碼是最好的選擇之一。但它也有缺點,就是容易過擬合(提供數據多),所以使用時要配合適當的正則化技術。

用CV loop工具進行正則化

Regularization Smoothing

Regularization Expanding mean

轉換目標變量

嚴格意義上來說,這不屬于特征工程。但是,當我們拿到一個高度偏斜的數據時,如果我們不做任何處理,最后模型的性能肯定會受影響。

目標分布

如上圖所示,這里的數據高度偏斜,如果我們把目標變量轉成log(1+目標)格式,那么它的分布就接近高斯分布了。

需要注意的是,提交預測值時,我們需要進行轉換:predictions = np.exmp1(log_predictions)。

以上就是我的經驗,希望本文對你有幫助!

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

    關注

    2

    文章

    1089

    瀏覽量

    40540
  • 數據集
    +關注

    關注

    4

    文章

    1209

    瀏覽量

    24793
  • 數據科學
    +關注

    關注

    0

    文章

    166

    瀏覽量

    10082

原文標題:Kaggle前1%參賽者經驗:ML競賽中常被忽視的特征工程技術

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

收藏 人收藏

    評論

    相關推薦

    各種圖標轉換成PCB封裝

    可以各種圖標轉換成PCB封裝,不過貌似彩色的不行,先要用畫圖編輯下圖片轉換成BMP格式的單色圖片btp.exe (278.5 KB )
    發表于 05-27 00:47

    如何字符轉換成數據類型方便我們使用?

    如何字符轉換成數據類型方便我們使用?
    發表于 12-09 06:44

    怎么int類型的數據轉換成字符串?

    怎么 int 類型的數據轉換成字符串: 看項目有用 micrilib,itoa() 函數 和 sprintf() 能不能用呢?怎么用 比如 int a=10;
    發表于 11-01 08:27

    如何將平面圖像轉換成立體圖像的方法研究

    將平面圖像轉換成立體圖像很有意義。Hou等人(2002)提出了一種平面圖像立體化方法,稱為Hou方法。在這個方法中Hou等人使用隨機變量等參數控制轉換過程,但沒有討論這些參數對立
    發表于 06-23 17:52 ?39次下載

    RGB MusicLab能將圖像轉換成音樂(每一張圖片都有它

    RGB MusicLab能將圖像轉換成音樂(每一張圖片都有它的旋律)
    發表于 12-25 10:06 ?1896次閱讀

    4~20MA轉換成10KHZ的隔離式電流-頻率轉換電路

    4~20MA轉換成10KHZ的隔離式電流-頻率轉換電路 電路的功能 雙線傳輸
    發表于 05-06 13:39 ?1709次閱讀
    <b class='flag-5'>把</b>4~20MA<b class='flag-5'>轉換成</b>10KHZ的隔離式電流-頻率<b class='flag-5'>轉換</b>電路

    4~20MA轉換成正負10伏的電流電-壓轉換電路

    4~20MA轉換成正負10伏的電流電-壓轉換電路 電路的功能 模擬信號接
    發表于 05-06 13:54 ?4653次閱讀
    <b class='flag-5'>把</b>4~20MA<b class='flag-5'>轉換成</b>正負10伏的電流電-壓<b class='flag-5'>轉換</b>電路

    0~10V轉換成4~20MA的電壓-電流轉換電路

    0~10V轉換成4~20MA的電壓-電流轉換電路 電路的功能 以電壓形式長距
    發表于 05-06 14:11 ?1.9w次閱讀
    <b class='flag-5'>把</b>0~10V<b class='flag-5'>轉換成</b>4~20MA的電壓-電流<b class='flag-5'>轉換</b>電路

    三角波轉換成正弦波的寬帶正弦波轉換

    三角波轉換成正弦波的寬帶正弦波轉換器 電路的功能 正弦波轉換
    發表于 05-06 14:30 ?7680次閱讀
    <b class='flag-5'>把</b>三角波<b class='flag-5'>轉換成</b>正弦波的寬帶正弦波<b class='flag-5'>轉換</b>器

    單脈沖寬度射頻控制信號轉換成電壓的電路

    單脈沖寬度射頻控制信號轉換成電壓的電路
    發表于 08-01 11:56 ?1774次閱讀
    <b class='flag-5'>把</b>單脈沖寬度射頻控制信號<b class='flag-5'>轉換成</b>電壓的電路

    利用物聯網將工廠數據轉換成價值

    英特爾打造核心技術利用物聯網將工廠數據轉換成價值
    發表于 12-28 18:00 ?0次下載

    機器學習的特征工程是將原始的輸入數據轉換成特征

    對于類別數量很多的分類變量可以采用特征哈希(Hashing Trick),特征哈希的目標就是將一個數據轉換成一個向量。利用的是哈希函數將原始數據
    的頭像 發表于 04-19 16:42 ?4458次閱讀
    機器學習的<b class='flag-5'>特征</b><b class='flag-5'>工程</b>是將原始的輸入<b class='flag-5'>數據</b><b class='flag-5'>轉換成</b><b class='flag-5'>特征</b>

    如何利用Linux終端將圖像轉換成ASCII藝術?

    想在 Linux 終端中做一些有趣的事情嗎?一張普通的圖片轉換成 ASCII 藝術怎么樣? 你知道 什么是 ASCII[1] 么?它是一個標準,在 8 位碼中的 256 個空位上分配字母、數字
    的頭像 發表于 06-29 13:53 ?2087次閱讀

    使用GC2000鋼網文件轉換成SPI可識別的gerber文件教程

    使用GC2000鋼網文件轉換成SPI可識別的gerber文件教程
    的頭像 發表于 06-19 10:24 ?4233次閱讀
    使用GC2000<b class='flag-5'>把</b>鋼網文件<b class='flag-5'>轉換成</b>SPI可識別的gerber文件教程

    如何視頻轉換成音頻 視頻轉換成音頻的原理是什么

    視頻文件包含了一系列連續的圖像幀,每幀都由像素組成。而音頻文件則包含一系列連續的聲音樣本。在視頻轉換成音頻時,首先需要將視頻中的圖像幀和聲音樣本進行編碼,以便將其壓縮并儲存為適合音頻格式的數據
    發表于 06-30 15:15 ?1608次閱讀
    主站蜘蛛池模板: 国精产品一区二区三区有限公司 | 免费看黄色小说 | 久久视频精品38在线播放 | 18禁在线无遮挡羞羞漫画 | 嗯啊…跟校草在教室里做h 嗯 用力啊 嗯 c我 啊哈老师 | 51成人精品午夜福利AV免费七 | 狠狠干福利视频 | 午夜伦理在线观看 | 欧美男男网站免费观看videos | 久久精品动漫99精品动漫 | 国产精品日本不卡一区二区 | 黑人干日本美女 | 中字幕视频在线永久在线 | 国产精品久久久久久熟妇吹潮软件 | 亚洲精品乱码久久久久久中文字幕 | 父亲猜女儿在线观看 | 亚洲 欧美 国产 综合五月天 | 亚洲国产精品久久精品成人网站 | 亚洲人人为我我为人人 | 国产一区二区内射最近更新 | 国产精品一区二区三区四区五区 | 国内外成人免费在线视频 | 亚洲视频成人 | 中文字幕精品无码一区二区 | 日韩插啊免费视频在线观看 | 日韩精品在线观看免费 | 中文字幕不卡在线高清 | 国产精品日本一区二区在线播放 | 欧美美女性生活 | 性色AV一区二区三区咪爱四虎 | 在线涩涩免费观看国产精品 | 色婷婷国产麻豆AV | 极品少妇高潮啪啪AV无码吴梦梦 | yellow2019在线观看视频 | 亚洲精品国产拍在线观看 | 伦 乱真实故事 | 琪琪色原网站ying | 成人午夜剧场 | 欧洲内射VIDEOXXX3D | 在线不卡日本v二区到六区 在线不卡日本v二区 | 野花社区WWW韩国日本 |