在實現很多機器學習任務的時候,經常需要將labels進行one-hot encoding,具體思想這裡就不詳述,借一張圖來表示:
numpy實現可以是這樣:
# 函式需不需要返回轉置要根據具體情況看
# 如果不轉置每個label返回的就是乙個行向量
# 這裡轉置了,每個label就是對應的列向量
def convert_to_one_hot(y, c):
return np.eye(c)[y.reshape(-1)].t
y = np.array([1,2,3,4])
convert_to_one_hot(y,5)
# array([[ 0., 0., 0., 0.],
# [ 1., 0., 0., 0.],
# [ 0., 1., 0., 0.],
# [ 0., 0., 1., 0.],
# [ 0., 0., 0., 1.]])
使用numpy對矩陣進行運算
如下 encoding utf 8 importnumpyasnp fromnumpy.linalgimportinv fromnumpyimportdot fromnumpyimportmat a np.mat 1,1 建立乙個一行一列的矩陣 print a矩陣為 n a print a矩陣的轉置...
numpy中使用陣列進行面向陣列程式設計
一 將條件邏輯作為陣列操作 一 numpy.where函式 1 定義 是三元表示式x if condition else y的向量化版本 2 形式 np.where a,b,c 表示如果符合條件a則執行b否則執行c 二 數學和統計方法 np.random.randn 表示生成正態分佈的隨機數 部分函...
xgboost使用one hot編碼方式是否合理
離散特徵為什麼要是用one hot編碼方式 在樹模型中,當類別特徵為數很高時,one hot編碼並不合適 使用one hot coding的話,意味著每乙個決策節點上只能用one vs rest的切分方式,當特徵維度高時,每個類別的資料都會比較少,產生的切分不平衡,切分增益也會很小 會影響決策數的學...