Mam zestaw danych zawierający kolumny kategoryczne i liczbowe, a moja kolumna docelowa również jest kategoryczna. Używam biblioteki Scikit w Python34. Wiem, że Scikit potrzebuje przekształcić wszystkie wartości kategoryczne na wartości numeryczne, zanim podejmie się uczenia maszynowego.Funkcje jakościowe i liczbowe - Cel kategoryczny - Nauka Scikit - Python
Jak przekształcić moje kolumny jakościowe na wartości liczbowe? Próbowałem wiele rzeczy, ale dostaję różne błędy, np. Obiekt "str" nie ma obiektu "numpy.ndarray" nie ma atrybutu "items".
Here is an example of my data:
UserID LocationID AmountPaid ServiceID Target
29876 IS345 23.9876 FRDG JFD
29877 IS712 135.98 WERS KOI
Mój zestaw danych jest zapisywany w pliku CSV, tutaj jest trochę kodu pisałem daje wyobrażenie o tym, co chcę zrobić:
#reading my csv file
data_dir = 'C:/Users/davtalab/Desktop/data/'
train_file = data_dir + 'train.csv'
train = pd.read_csv(train_file)
#numeric columns:
x_numeric_cols = train['AmountPaid']
#Categrical columns:
categorical_cols = ['UserID' + 'LocationID' + 'ServiceID']
x_cat_cols = train[categorical_cols].as_matrix()
y_target = train['Target'].as_matrix()
muszę x_cat_cols być konwertowane na numeryczne wartości i dodaj je do x_numeric_cols, a więc moje pełne wartości wejściowe (x).
Następnie muszę przekonwertować funkcję celu na wartość liczbową i ustawić ją jako kolumnę docelową (y).
Następnie chcę zrobić Losowa Las stosując te dwa komplety jak:
rf = RF(n_estimators=n_trees,max_features=max_features,verbose =verbose, n_jobs =n_jobs)
rf.fit(x_train, y_train)
dzięki za pomoc!
Dla celów klasyfikacji, w rzeczywistości nie trzeba używać żadnej transformacji. Wszystkie klasyfikatory mogą obsługiwać dowolne etykiety. –