Python中的等寬離散化指的是將連續型變量按照等寬間距離成為離散型變量,這在一些機器學習模型中很常見,能夠很好的提高模型預測性能。下面我們來看看如何在Python中實現等寬離散化。
import pandas as pd # 定義等寬離散化函數 def discretize(data, step): bins = [] min_value = data.min() max_value = data.max() for i in range(min_value, max_value + step, step): bins.append(i) result = pd.cut(data, bins=bins, right=False) return result # 假設我們有一個身高變量的DataFrame df = pd.DataFrame({'height': [170, 180, 165, 173, 185, 190, 160, 175, 172, 183]}) # 然后我們可以使用discretize函數將身高變量等寬離散化,假設我們將間距設為10 df['discretized_height'] = discretize(df['height'], 10) print(df)
在上面的代碼中,我們首先定義了一個discretize函數,其中我們使用了pandas中的cut函數來進行等寬離散化。在cut函數中,我們需要指定一個bins參數,它表示分成多少個區間,這里我們使用for循環來生成等寬的區間邊界。
接下來我們創建一個身高變量的DataFrame,然后使用discretize函數將它等寬離散化,設定間距為10。最后輸出DataFrame,可以看到我們得到了等寬離散化后的結果。