データマイニングでのビニング

| | | | | | | | | |

データビニング、バケット化は、小さな観測誤差の影響を最小限に抑えるために使用されるデータ前処理方法です。元のデータ値は、ビンと呼ばれる小さな範囲に分割され、そのビンの全体的な計算値に置き換えられます。これにより、入力データがスムーズになり、データセットが小さい場合にオーバーフィットする可能性を減らすことができます。

データをボックスに分割する方法は2つあります。

  • 等周波数ビニング:ビンの周波数は等です。
  • 等幅ビンニンg:ビンの幅は等で、各ビンの範囲が定義されています。 [min + w]、[min + 2w]、Ķとして。 [min + nw]ここで、w =(max、Äìmin)/(ビンの数)。

等周波数ビニング

入力:[5、10、11 、13、15、35、50、55、72、92、204、215]出力:[5、10、11、13] [15、35、50、55] [72、92、204、215] 

等幅ビニング:

入力:[5、10、11、13、15、35、50、55、72、92、204、215]出力:[5、10、 11、13、15、35、50、55、72] [92] [204、215] 

ビニング手法の実装

#等周波数def equifreq(arr1、m) :a = len(arr1)n = int(a / m)for i in range(0、m):arr = [] for j in range(i * n、(i + 1)* n):if j> = a:break arr = arr + [arr1 [j]] print(arr)#等しい幅def equiwidth(arr1、m):a = len(arr1)w = int((max(arr1)--min(arr1)) / m)min1 = min(arr1)arr = [] for i in range(0、m + 1):arr = arr + [min1 + w * i] arri = [] for i in range(0、m): temp = [] for j in arr1:if j> = arr [i] and j <= arr [i + 1]:temp + = [j] arri + = [temp] print(arri)#ビニングされるデータデータ= [5、10、11、13、15、35、50、55、72、92、204、215]#いいえbins m = 3 print( "等周波数ビニング")equifreq(data、m)print( "等幅ビニング")equiwidth(data、3)

出力:

等周波数ビニング[5、10、11、13] [15、35、50、55] [72、92、204、215]等幅ビニング[[5、10、11、13、15、35、50、55、72 ]、[92]、[204、215]] 

データビニングとは何ですか?

ビニングは、離散化とも呼ばれ、連続データと離散データのカーディナリティを減らすための手法です。分類は、関連する値をカテゴリにグループ化して、個別の値の数を減らします。

分類により、モデルの品質を大幅に低下させることなく、リソースの使用率とモデル構築の応答時間を大幅に改善できます。分類により、モデルの品質が向上し、属性間の関係が強化されます。

教師ありビニングは、データの重要な特性を使用してビンの制限を決定するインテリジェントなビニングの形式です。教師ありビニングでは、ビンの制限は、宛先との同時分布を考慮した単一予測子の決定木によって識別されます。監視対象の分類は、数値属性とカテゴリ属性に使用できます。