所謂離散化,就是把無限空間中有限的個體對映到有限的空間中去,以此提高演算法的時空效率.
通俗的說,離散化是在不改變資料相對大小的條件下,對資料進行相應的縮小.
離散化操作大多是針對連續性資料進行的,處理過之後的資料就由連續性資料變成了離散型資料,需包含大於等於兩種分類,若本身為離散型資料,但其劃分有不合理或複雜之處,需重新進行離散化.
a.節約計算資源,提高演算法的計算效率
b.演算法中的計算需要,特別是在分類模型中
c.特定資料處理和分析的必不可少的步驟
d.增強模型的穩定性和準確性
e.模型處理和應用的需求
a.經過離散化之後,可很大程度上增大模型泛化的能力
b.經過離散化後的資料,能增強模型的穩定性和準確性
c.使不合理的資料合理化
d.能夠更好地對模型進行分類和應用.
注意,1.在資料離散化的過程中,資料本身的值肯定會發生改變,因此離散化後的資料僅可用於比較資料之間的大小關係或分類情況.
2.分類情況不可過多,過多會造成資料碎片化,影響模型本身的穩定性和準確度.
3.關聯規則需要對所有資料一起離散化,單獨離散化可能會失去整體的規則性,當然如果有特殊離散化需要,也可對單獨列離散化
在lr模型中,一般用於分型別變數,比如在鐵達尼號的資料中,我們想要研究一下生存死亡率和同行人數是否有關,那麼我們就可以把獨自前來的人記為1,有同行的人記為0,這就是一種簡單的編碼方式.
再比如我們想要看一下年齡和死亡生存率是否有關,然而年齡屬於連續性變數,我們就可以對年齡進行分類.將0-16歲分為一組記作1,17-30記作2,31-45記作3,46-60記作4,其他記作0.
這是一種非常簡單實用的編碼方式,但用這種方式編碼會產生乙個問題,就是在計算機語言中,4>3>2>1,那麼這個大小順序是怎麼排列的呢,明明是同級的資料,為什麼要用這種大小順序來表達呢?
這就引出了變數的另外兩種編碼方式:獨熱編碼(one-hot encoding)與啞變數(dummy variable econding)
one-hot encoding:
將需要的資料用1標識,此刻未選中即不需要的資料用0標識,用上面年齡分類的變數表示為:
當6歲時,屬於第一類 , (1 0 0 0 0) 第一類為1,其他都是0,代表這個人屬於第一類
當18歲時,屬於第二類, (0 1 0 0 0)
當35歲時,屬於第三類, (0 0 1 0 0)
當50歲時,屬於第四類, (0 0 0 1 0)
當65歲時,屬於第五類, (0 0 0 0 1)
這種編碼方式就解決了數字的順序問題,只有啟用當前類別時,此類別才為1,其餘全為0,
dummy variable econgding:
和one-hot encoding類似,在one-hot encoding基礎上減少了一類,我們用相同的案例來說明一下:
當6歲時,屬於第一類 , (1 0 0 0) 第一類為1,其他都是0,代表這個人屬於第一類
當18歲時,屬於第二類, (0 1 0 0)
當35歲時,屬於第三類, (0 0 1 0)
當50歲時,屬於第四類, (0 0 0 1)
當65歲時,屬於第五類, (0 0 0 0)
從上例中可以看出,前四個和前面一樣的,就是少了最後的一類0,到最後一類的時候,當所有前四類都不是的時候,即編碼全為0時,當前類別就是第五類,這種方法減少了計算機的儲存,加快了計算機的執行和計算速度.
在資料預處理的過程中,有些資料之間會存在量綱或大小差異化太大的情況,這種情況下我們就會選擇將特徵歸一化,特徵歸一化之後,會有以下優勢之處:
a.消除量綱:
經過標準化處理後,原始資料轉化為無量綱化指標測評值,各指標值處於同一數量級別,可進行綜合測評分析.
如果直接用原始指標值進行分析,就會突出數值較高的指標在綜合分析中的作用,相對削弱數值水平較低指標的作用.
b.避免數值過大或過小給模型帶來的不便;
c.平衡各特徵的貢獻:
如果乙個特徵值域範圍非常大,那麼距離計算就主要取決於這個特徵,從而與實際情況相悖(比如這時實際情況是值域範圍小的特徵更重要).
d、一些模型求解的需要:加快了梯度下降求最優解的速度
a.線性歸一化:
b.零均值歸一化:
pandas.cut(x, bins, right=true, labels=none, retbins=false, precision=3, include_lowest=false)
主要用於對資料從最大值到最小值進行等距劃分,cut將根據值本身來選擇箱子均勻間隔,即每個箱子的間距都是相同的。
pd.qcut(x, q, labels=none, retbins=false, precision=3, duplicates=『raise』)
按照資料出現頻率百分比劃分,比如要把資料分為四份,則四段分別是資料的0-25%,25%-50%,50%-75%,75%-100%,每個間隔段裡的元素個數都是相同的。,qcut是根據這些值的頻率來選擇箱子的均勻間隔,即每個箱子中含有的數的數量是相同的。
預處理命令知識點
ansi c標準規定,可以在c源程式中加入一些 預處理命令 以改進程式設計環節,提高程式設計效率。這些預處理命令是由ansi c統一規定的,但是它不是c語言本身的組成部分,不能直接對它們進行編譯 因為編譯程式不能識別它們 必須在對程式進行通常的編譯之前 先對程式中這些特殊的命令進行 預處理 即根據預...
python中數字的幾個小知識點
created on 2011 9 28 author xgzhao chapter5 numbers anint 123 del anint complex acomplex 1.23 3.45j print acomplex.real,acomplex.imag,acomplex.conjuga...
編譯和預處理相關知識點
本質 翻譯官,把高階語言翻譯成機器指令 常用選項 gcc o 輸出檔名 輸入檔名 gcc o build 01.c 字尾不能為其他 gcc v o build 01.c gcc l o 用來指定程式要鏈結的庫,l引數緊接著就是庫名 gcc l o l引數跟著的是庫檔案所在的目錄名 gcc e ogc...