パンダの高度な処理-データの離散化
1なぜ離散化するのか
連続属性離散化の目的はデータ構造を単純化することであり、データ離散化テクノロジーを使用して、指定された連続属性値の数を減らすことができます。離散化手法は、データマイニングツールとしてよく使用されます。[データを簡素化し、データをより効率的に使用できるようにする]
2データの離散化とは
離散連続属性は範囲連続属性にあり、範囲は異なる記号を使用していくつかの離散間隔に分割されるか 、各サブ間隔値の最終的な整数下降プロパティ値が表します。[いくつかのデータを特定の間隔に分割し、最後に異なる記号または数字を使用して表現します]
離散化する方法はたくさんありますが、これが最も簡単な操作方法です。
- 原始人の身長データ:165、174、160、180、159、163、192、184
- 高さに応じて、150〜165、165〜180、180〜195の間隔があるとします。
このようにして、データを3つの間隔に分割し、それらを短、中、高の3つのカテゴリとしてマークし、最終的に「ダミー変数」マトリックスに処理できます。
3株式の増減の離散化
在庫の毎日の「p_change」を離散化します
3.1株式データの読み取り
最初に株式データを読み取り、p_changeデータを除外します
data = pd.read_csv("./data/stock_day.csv")
p_change= data['p_change']
3.2株価データをグループ化する
使用したツール:
- pd.qcut(data、q): [データは大まかに同じ数のいくつかのカテゴリに分けられます]
- データをグループ化してデータをグループ化します。通常、value_countsとともに使用して、各グループの数をカウントします。
- series.value_counts():グループの数を数えます
# 自行分组
qcut = pd.qcut(p_change, 10)
# 计算分到每个组数据个数
qcut.value_counts()
カスタム間隔のグループ化:
- pd.cut(data、bins) [グループ化間隔を指定]
- [グループ化後、開いたままにし、右に閉じます]
# 自己指定分组区间
bins = [-100, -7, -5, -3, 0, 3, 5, 7, 100]
p_counts = pd.cut(p_change, bins)
3.3株価変動のグループ化されたデータをワンホットエンコーディングに
- ワンホットエンコーディングとは[つまり、データを0、1統計型、エイリアスダミー変数、ワンホット エンコーディングに変換する]
カテゴリごとにブール列を生成します。このサンプルでは、これらの列の1つだけが1の値を取ることができます。これはホットコーディングとも呼ばれます。
-
pandas.get_dummies(data、 prefix = None)
-
data:array-like、Series、またはDataFrame
-
プレフィックス:グループ名
-
# 得出one-hot编码矩阵
dummies = pd.get_dummies(p_counts, prefix="rise")
4まとめ
- データの離散化
- 指定された連続属性値の数を減らすために使用できます
- 連続属性の値の範囲では、値の範囲がいくつかの個別の間隔に分割され、最後に、各サブ範囲に含まれる属性値を表すために異なるシンボルまたは整数値が使用されます。
- qcut、cut実現データグループ化
- qcut:大まかに同じグループに分けられます
- カット:カスタムグループ化間隔
- get_dummiesはダミー変数行列を実装します