使用Numpy進行one hot編碼

2021-08-15 02:17:49 字數 637 閱讀 4880

在實現很多機器學習任務的時候,經常需要將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的切分方式,當特徵維度高時,每個類別的資料都會比較少,產生的切分不平衡,切分增益也會很小 會影響決策數的學...