機器學習處理數據為什麼把連續性特徵離散化

2021-01-10 電子發燒友
機器學習處理數據為什麼把連續性特徵離散化

易水寒 發表於 2018-11-17 09:31:41

在學習機器學習中,看過挺多案例,看到很多人在處理數據的時候,經常把連續性特徵離散化。為此挺好奇,為什麼要這麼做,什麼情況下才要做呢。

一、離散化原因

數據離散化是指將連續的數據進行分段,使其變為一段段離散化的區間。分段的原則有基於等距離、等頻率或優化的方法。數據離散化的原因主要有以下幾點:

1、算法需要

比如決策樹、樸素貝葉斯等算法,都是基於離散型的數據展開的。如果要使用該類算法,必須將離散型的數據進行。有效的離散化能減小算法的時間和空間開銷,提高系統對樣本的分類聚類能力和抗噪聲能力。

2、離散化的特徵相對於連續型特徵更易理解,更接近知識層面的表達

比如工資收入,月薪2000和月薪20000,從連續型特徵來看高低薪的差異還要通過數值層面才能理解,但將其轉換為離散型數據(底薪、高薪),則可以更加直觀的表達出了我們心中所想的高薪和底薪。

3、可以有效的克服數據中隱藏的缺陷,使模型結果更加穩定

二、離散化的優勢

在工業界,很少直接將連續值作為邏輯回歸模型的特徵輸入,而是將連續特徵離散化為一系列0、1特徵交給邏輯回歸模型,這樣做的優勢有以下幾點:

1. 離散特徵的增加和減少都很容易,易於模型的快速迭代;

2. 稀疏向量內積乘法運算速度快,計算結果方便存儲,容易擴展;

3. 離散化後的特徵對異常數據有很強的魯棒性:比如一個特徵是年齡>30是1,否則0。如果特徵沒有離散化,一個異常數據「年齡300歲」會給模型造成很大的幹擾;

4. 邏輯回歸屬於廣義線性模型,表達能力受限;單變量離散化為N個後,每個變量有單獨的權重,相當於為模型引入了非線性,能夠提升模型表達能力,加大擬合;

5. 離散化後可以進行特徵交叉,由M+N個變量變為M*N個變量,進一步引入非線性,提升表達能力;

6. 特徵離散化後,模型會更穩定,比如如果對用戶年齡離散化,20-30作為一個區間,不會因為一個用戶年齡長了一歲就變成一個完全不同的人。當然處於區間相鄰處的樣本會剛好相反,所以怎麼劃分區間是門學問;

7. 特徵離散化以後,起到了簡化了邏輯回歸模型的作用,降低了模型過擬合的風險。

三、離散化的方法

1、無監督學習方法

等寬法

等寬法即是將屬性值分為具有相同寬度的區間,區間的個數k根據實際情況來決定。比如屬性值在[0,60]之間,最小值為0,最大值為60,我們要將其分為3等分,則區間被劃分為[0,20] 、[21,40] 、[41,60],每個屬性值對應屬於它的那個區間

等頻法

等寬法即是將屬性值分為具有相同寬度的區間,區間的個數k根據實際情況來決定。比如有60個樣本,我們要將其分為k=3部分,則每部分的長度為20個樣本。

基於聚類的方法

基於聚類的方法分為兩個步驟,即:

選定聚類算法將其進行聚類

將在同一個簇內的屬性值做為統一標記。

註:基於聚類的方法,簇的個數要根據聚類算法的實際情況來決定,比如對於k-means算法,簇的個數可以自己決定,但對於DBSCAN,則是算法找尋簇的個數。

2、有監督學習方法:

1R方法

基於信息熵的方法

基於卡方的方法

四、總結

模型是使用離散特徵還是連續特徵,其實是一個「海量離散特徵+簡單模型」 同 「少量連續特徵+複雜模型」的權衡。既可以離散化用線性模型,也可以用連續特徵加深度學習。就看是喜歡折騰特徵還是折騰模型了。通常來說,前者容易,而且可以n個人一起並行做,有成功經驗;後者目前看很贊,能走多遠還須拭目以待。

打開APP閱讀更多精彩內容

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

相關焦點

  • 特徵工程方法—數據離散化
    數據離散化定義離散化是把無限空間中有限的個體映射到有限的空間中去,以此提高算法的時空效率。通俗地講,離散化是在不改變數據相對大小的條件下,對數據進行相應的縮小,但是離散化僅適用於只關注元素之間的大小關係而不關注元素本身的值。
  • 大數據的預處理、離散化要點羅列
    大數據預處理技術1.目前存在四種主流的數據預處理技術:數據清理、數據集成、數據規約和數據變換。2.數據處理的主要任務(1)數據處理的主要步驟:數據清理、數據集成、數據規約和數據變換。(2)數據清理例程通過填寫缺失值、光滑噪聲數據、識別或者刪除離群點並且解決不一致性來「清理數據」。
  • 重磅乾貨 | 從連續的視角看機器學習
    作者為鄂維南(普林斯頓大學、北京大數據研究院)、馬超(普林斯頓大學)和吳磊(普林斯頓大學)。英文論文PDF文件下載請在本公眾號回復關鍵詞「機器學習連續視角」。摘要 在經典數值分析的影響下,我們提出了一個連續的機器學習形式,將其作為變分法和微分積分方程中的一個問題。
  • 機器學習中數據特徵的處理 歸一化vs標準化,哪個更好
    眾所周知,特徵工程是將原始數據轉換為數據集的過程。 有各種可用的功能工程技術。兩種最廣泛使用且最容易混淆的特徵工程技術是:標準化歸一化今天我們將探討這兩種技術,並了解數據分析師在解決數據科學問題時所做出的一些常見假設。
  • 機器學習算法系列(一):logistic回歸
    作者| Ray編輯| 安可出品| 磐創AI技術團隊目錄:一、Logistic分布二、二項Logistic回歸原理三、參數估計四、Logistic回歸的正則化五、Logistic回歸和線性回歸區別六、為什麼Logistic回歸的輸入特徵一般都是離散化而不是連續的
  • 數據科學和機器學習面試問題集錦
    在過去的幾個月裡,我面試了許多公司涉及數據科學和機器學習的初級職位。介紹一下我自己,以讓你對我有一定了解。我還有最後幾個月就研究生畢業,我的碩士是機器學習和計算機視覺,我之前的大部分經驗是研究/學術,但在一個早期創業公司待過8個月(與機器學習無關)。這些角色包括數據科學、通用機器學習和專精自然語言處理及計算機視覺。
  • 谷歌機器學習白皮書全解析43條黃金法則二
    本文上接雷鋒網"谷歌機器學習白皮書全解析 43條黃金法則(一)"3.0 機器學習第二階段3.1 特徵工程在進行機器學習相關實踐的第一階段,你要關注的主要問題包括以下三個方面:一是將訓練數據導入系統,二是確定系統的重點關注指標,三是保證底層基礎設施的穩定可靠。
  • 2.2w字長文詳解推薦系統之數據與特徵工程,碼起來慢慢看
    一、推薦算法建模的一般流程在引入推薦系統數據源與特徵工程之前,我們先介紹一下推薦算法建模的一般流程,這樣我們就可以更好地理解數據與特徵工程在整個推薦系統業務流程中的地位和作用。推薦系統是機器學習的一個子領域,因此推薦系統處理問題的方式遵循機器學習的一般思路。
  • 數值數據的特徵預處理
    特徵預處理是數據挖掘中最重要的步驟。在這篇文章中,我將向你介紹特徵預處理的概念,它的重要性,不同的機器學習模型下的數值特徵的不同特徵預處理技術。模型的質量在很大程度上取決於輸入模型的數據。當從數據挖掘過程中收集數據時,會丟失一些數據(我們將其稱為丟失值)。此外,它很容易受到噪音的影響。
  • 數值數據的特徵工程
    數據饋送機器學習模型,越多越好,對嗎?好吧,有時數字數據不太適合提取,因此,本文將介紹多種方法,可以將原始數字轉換為更可口的東西。數值數據幾乎是福氣。為什麼差不多?好吧,因為它已經採用了機器學習模型可以攝取的格式。
  • 機器學習系列|從白富美相親看特徵預處理與選擇
    我們在這裡就補充說明一下為什麼可以用權重來衡量特徵的貢獻。「特徵標準件」 如果把機器學習過程當做一個加工廠的話,那輸入的數據(特徵、標籤)就是原材料,輸出的模型和判斷結果就是產品。並不是胡亂扔進去任何原材料都能加工出合格產品的。原材料需要一個「預處理」過程才能方便地被算法處理。這些預處理後的數據,李雷起了個不夠規範的名字,叫做「特徵標準件」。 以二分類問題為例,不同的算法對「特徵標準件」的要求是不同的。
  • 機器學習在生物大數據應用的一個例子
    也是在幾天前,有一家生物大數據的創業公司出現在媒體和公眾的視線中——Deep Genomics。這個公司是幹嘛的呢?簡單來說就是:利用機器學習的方法,預測基因組上的變化會對人體的特徵/疾病/表型產生怎樣的影響。這就是本文要說的,機器學習在生物大數據上應用的一個例子。那麼它是如何實現的呢?可以概括為兩步:(1)確定與某個特徵/疾病/表型相關的基因易感位點。
  • 5個特徵選擇算法,讓你的數據處理得心應手
    全文共5462字,預計學習時長11分鐘圖片來源:https://unsplash.com/@seefromthesky數據科學是研究算法的學問。本文將會介紹一些處理數據時最常用的特徵選擇技術。在文章開始之前,先來回答這個問題:為什麼不將所有的特徵都交給機器學習算法,讓它來決定哪些特徵比較重要呢?以下便是不能的三個原因:1.
  • |python|離散化|dataframe...
    信用風險評級模型的主要開發流程如下:  1.數據獲取, 包括獲取存量客戶及潛在客戶的數據。存量客戶是指已開展相關業務的客戶;潛在客戶是指未來擬開展相關業務的客戶。  2.數據預處理 ,主要工作包括數據清洗、缺失值處理、異常值處理,主要是為了將獲取的原始數據轉化為可用作模型開發的格式化數據。
  • 數據科學和機器學習的最佳Python庫
    以下是此博客中將涉及的主題列表:數據科學與機器學習導論為什麼要使用Python進行數據科學和機器學習?數據是驅動ML模型所需的燃料,並且由於我們處在大數據時代,因此很清楚為什麼將數據科學視為該時代最有希望的工作角色!我會說數據科學和機器學習是技能,而不僅僅是技術。它們是從數據中獲得有用的見解並通過建立預測模型解決問題所需的技能。從形式上來講,這就是兩者的定義方式。
  • 教你如何做特徵選擇
    AI算法工程  公眾號:datayx特徵選擇方法初識:1、為什麼要做特徵選擇在有限的樣本數目下,用大量的特徵來設計分類器計算開銷太大而且分類性能差。想把互信息直接用於特徵選擇其實不是太方便:1、它不屬於度量方式,也沒有辦法歸一化,在不同數據及上的結果無法做比較;2、對於連續變量的計算不是很方便(X和Y都是集合,x,y都是離散的取值),通常變量需要先離散化,而互信息的結果對離散化的方式很敏感。
  • KDD 2019 | 自動探索特徵組合,第四範式提出新方法AutoCross
    該方法可以獲得特徵之間有用的相互作用,並提高機器學習算法的預測能力。該方法利用集束搜索策略(beam search strategy)構建有效的組合特徵,其中包含尚未被現有工作覆蓋的高階(兩個以上)特徵組合,彌補了此前工作的不足。此外,該研究提出了連續小批量梯度下降和多粒度離散化,以進一步提高效率和有效性,同時確保簡單,無需機器學習專業知識或冗長的超參數調整。
  • 離散化的未來
    一個人可以在網際網路上投射的點越來越多,現在人連辦公都可以在網上了,那麼人是不是進一步離散化了呢?        靶向藥、基因療法,各種針對性極強的方案,是不是也是種離散化呢?潮牌鞋、泡泡馬特、喜茶、元氣森林,這種是不是也是人性對自我的意識導致的離散化、個性化呢?        蔣尚義要搞的chiplet先進封裝是不是也是種離散化呢?3D列印是不是也是種離散化呢?
  • 特徵工程自動化 時間序列的數據是關鍵
    本文介紹了解決這一挑戰的最佳實踐,通過引入一個開發時間序列模型,生成特徵和預處理數據的通用框架,探索使這一過程自動化的潛力,以便將先進的機器學習算法應用於幾乎任何時間序列問題。介紹時間序列預測是數據科學中最難的問題之一。它從字面上涉及預測未來的事件,並推斷一個潛在的複雜系統如何演變。在傳統的機器學習問題中,我們經常假設預測數據與訓練數據相似。
  • 機器學習:特徵選擇和降維實例
    不幸的是,在Do not Overfit II競賽(kaggle.com/c/dont-overfit-ii/data)中,領域知識的使用是不可能的,因為我們有一個二元目標和300個連續變量,這迫使我們嘗試特徵選擇技術。簡介通常,我們將特徵選擇和降維組合在一起使用。雖然這兩種方法都用於減少數據集中的特徵數量,但存在很大不同。