我有一個字符串數組形式的文本分類數組,例如 y_train = ['A', 'B', 'A', 'C',...]
。我正在嘗試應用SKlearn多項式NB算法來預測整個數據集的類。將分類變量從字符串轉換爲int表示
我想string類轉換成整數能輸入到算法和轉換['A', 'B', 'A', 'C', ...]
成['1', '2', '1', '3', ...]
我可以寫一個for循環來遍歷數組,並創建一個新的與詮釋分類,但有一個直接的功能來實現這一
我有一個字符串數組形式的文本分類數組,例如 y_train = ['A', 'B', 'A', 'C',...]
。我正在嘗試應用SKlearn多項式NB算法來預測整個數據集的類。將分類變量從字符串轉換爲int表示
我想string類轉換成整數能輸入到算法和轉換['A', 'B', 'A', 'C', ...]
成['1', '2', '1', '3', ...]
我可以寫一個for循環來遍歷數組,並創建一個新的與詮釋分類,但有一個直接的功能來實現這一
如果你使用的是sklearn,我會建議你在這個庫中使用方法來爲你做這些事情。 Sklearn有許多預處理數據的方法,例如編碼標籤。其中之一是sklearn.preprocessing.LabelEncoder
功能。
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
le.fit_transform(y_train)
,輸出
array([0, 1, 0, 2])
使用le.inverse_transform([0,1,2])
映射回
嘗試factorize方法:
In [264]: y_train = pd.Series(['A', 'B', 'A', 'C'])
In [265]: y_train
Out[265]:
0 A
1 B
2 A
3 C
dtype: object
In [266]: pd.factorize(y_train)
Out[266]: (array([0, 1, 0, 2], dtype=int64), Index(['A', 'B', 'C'], dtype='object'))
演示:
In [271]: fct = pd.factorize(y_train)[0]+1
In [272]: fct
Out[272]: array([1, 2, 1, 3], dtype=int64)
Thanks..it簡單明瞭! – Abhi