使用類似組用於分類數據
- 一位熱碼編碼(例如,平均值爲全市各區的價格) 。
你必須小心,不要注入應用案例中沒有的信息。
一個炎熱的編碼
如果你有明確的數據,您可以創建爲每個可能值0/1值虛擬變量。
E.g。
idx color
0 blue
1 green
2 green
3 red
到
idx blue green red
0 1 0 0
1 0 1 0
2 0 1 0
3 0 0 1
這可以很容易地與大熊貓進行:
import pandas as pd
data = pd.DataFrame({'color': ['blue', 'green', 'green', 'red']})
print(pd.get_dummies(data))
將導致:
color_blue color_green color_red
0 1 0 0
1 0 1 0
2 0 1 0
3 0 0 1
編號爲序數據
創建可排序類別的映射, G。 老<裝修<新→0,1,2
這也可能與熊貓:
data = pd.DataFrame({'q': ['old', 'new', 'new', 'ren']})
data['q'] = data['q'].astype('category')
data['q'] = data['q'].cat.reorder_categories(['old', 'ren', 'new'], ordered=True)
data['q'] = data['q'].cat.codes
print(data['q'])
結果:
0 0
1 2
2 2
3 1
Name: q, dtype: int8
用分類數據GROUPBY操作
你可以使用過去的每個類別的平均值(已知事件)。
說你有最後已知的平均價格爲數據幀城市:
prices = pd.DataFrame({
'city': ['A', 'A', 'A', 'B', 'B', 'C'],
'price': [1, 1, 1, 2, 2, 3],
})
mean_price = prices.groupby('city').mean()
data = pd.DataFrame({'city': ['A', 'B', 'C', 'A', 'B', 'A']})
print(data.merge(mean_price, on='city', how='left'))
結果:
city price
0 A 1
1 B 2
2 C 3
3 A 1
4 B 2
5 A 1
卻怎麼hotencoding幫助你時,你會試圖預測新的顏色?也許在你的情況下,你必須重新訓練模型。你有任何解決方案? – gtzinos