1. 程式人生 > >獨熱編碼函式

獨熱編碼函式

想用自己的資料進行獨熱編碼,一開始沒用官方的程式。

from sklearn import preprocessing

enc = preprocessing.OneHotEncoder()

想用這個函式的可以參考博主https://www.cnblogs.com/webRobot/p/8831069.html

我找的是GitHub裡的一個程式https://github.com/lahneh/LSTM-Human-Activity-Recognition

可以參考下。

程式碼貼上:

def one_hot(y_, n_classes):  #對輸出結果進行獨熱編碼
    y_ =y_.reshape(len(y_)) 
    return np.eye(n_classes)[np.array(y_, dtype=np.int32)] 

那麼問題來了:一直報錯

AttributeError: 'DataFrame' object has no attribute 'reshape'

這是因為我的資料是DataFrame格式的,要將他轉化成nparray格式才好用。

於是,我又找DataFrame轉nparray的操作

 df.values

參考:https://blog.csdn.net/qq_30163461/article/details/80080529

不知道為什麼在我這裡又不行。。。

然後我直接轉了

label= np.array(label)

執行之後可行。

最後要注意,python是從0開始的,所以在給資料做標籤時最好也從0開始,不然會報錯說size不同,不能轉化。