特徵的轉換 02 連續變數的離散化

2021-07-26 16:14:37 字數 2170 閱讀 9770

今日記事:

把頭髮高高盤起,畫上一字眉。工作後就少了太多銳氣,磨得圓滑尚且是好,但圓了就難免要缺失點篤定的方向,最怕滾來滾去,滾回起點。

而方向越篤定,心越沉下來,難免要變得好安靜。

binarizer是將連續型變數根據某個閥值,轉換成二元的分類變數。小於該閥值的轉換為0,大於該閥值的轉換為1.

如下:輸入的是0.1,0.8,0.9連續型變數,目的是要以0.5為閥值來轉換成二元變數(0,1)。

/**

* created by cc on 17-1-17.

*/object

featuretransform01 ")

binarizeddataframe.show()

sc.stop()

}}

列印結果:多了乙個新的列,它就是轉換後產生的新的特徵。

binarizer output with threshold = 0.5

+---+-------+-----------------+

| id|feature|binarized_feature|

+---+-------+-----------------+

| 0| 0.1| 0.0|

| 1| 0.8| 1.0|

| 2| 0.2| 0.0|

+---+-------+-----------------+

為什麼需要這樣的轉換呢?比如使用樸素貝葉斯做分類**的時候,輸入的特徵必須是類別型的,如果在原始的特徵資料集中存在連續型的特徵變數,就需要將它轉換成二元的類別變數。

不過這個函式的功能其實自己寫一兩句**也能搞定的。

同樣是連續型變數,如果分成兩類還不夠,同樣也可以分成多類。

二元轉換的時候需要給出乙個閥值,在多元換轉換中,如果要分成n類,就要給出n+1個閥值組成的array,任意乙個數都可以被放在某兩個閥值的區間內,就像把它放進屬於它的桶中,故稱為分桶策略。

比如有x,y兩個閥值,那麼他們組成的區間是[x,y)的前開後閉區間;對於最後乙個區間是前閉後閉區間。

給出的這個閥值array,裡面的元素必須是遞增的。如果在轉換的過程中有乙個數沒有被包含在然後區間內,那麼就會報錯,所以,如果不確定特徵值的最小與最大值,那麼就新增double.negativeinfinity(負無窮)和double.positiveinfinity(正無窮)到array的兩側。

官方給出的例子如下:

/**

* created by cc on 17-1-17.

*/object

featuretransform01 buckets")

bucketeddata.show()

sc.stop()

}}

列印結果,第一列為原始的連續型特徵,第二列為轉換後的分類索引。

bucketizer output with 4 buckets

+--------+----------------+

|features|bucketedfeatures|

+--------+----------------+

| -999.9| 0.0|

| -0.5| 1.0|

| -0.3| 1.0|

| 0.0| 2.0|

| 0.2| 2.0|

| 999.9| 3.0|

+--------+----------------+

與上面兩個方法一樣,quantilediscretizer(分位數離散化)也是將一列連續型的資料列轉成分型別資料。通過取乙個樣本的資料,並將其分為大致相等的部分,設定範圍。其下限為 -infinity(負無重大) ,上限為+infinity(正無重大)。

分級的數量由numbuckets引數決定。分級的範圍有漸進演算法決定。漸進的精度由relativeerror引數決定。當relativeerror設定為0時,將會計算精確的分位點(計算代價較高)。

但如果樣本資料只劃分了3個區間,此時設定numbuckets為4,則仍只劃分為3個區間。

連續變數離散化的原因

資料離散化是指將連續的資料進行分段,使其變為一段段離散化的區間。分段的原則有基於等距離 等頻率或優化的方法。資料離散化的原因主要有以下幾點 比如決策樹 樸素貝葉斯等演算法,都是基於離散型的資料展開的。如果要使用該類演算法,必須將離散型的資料進行。有效的離散化能減小演算法的時間和空間開銷,提高系統對樣...

連續變數離散化的幾種方法

連續變數離散化有三種方法 1.等寬離散化 2.等頻離散化 3.利用聚類進行離散化 import numpy as np import pandas as pd 引數初始化 datafile data discretization data.xls 讀取資料 data pd.read excel da...

機器學習特徵連續 離散的區別

現在網上關於資料探勘 機器學習中資料預處理階段關於屬性 特徵 的各種連續,離散的變換,由於用詞不清,真讓人暈頭轉向。那麼資料探勘 機器學習中用於描述屬性 特徵 的 連續 離散 連續化 離散化 的這幾個詞到底是什麼含義呢?首先,韓家煒老師在他的書的第二章就對屬性的幾種型別進行了介紹 1.標稱屬性 即與...