У меня есть набор данных, содержащий как категориальные, так и числовые столбцы, и мой целевой столбец также категориальный. Я использую библиотеку Scikit в Python34. Я знаю, что Scikit необходимо преобразовать все категориальные значения в числовые, прежде чем применять какой-либо подход к машинному обучению.
Как мне преобразовать категориальные столбцы в числовые значения? Я много чего пробовал, но получаю разные ошибки, например, у объекта «str» нет объекта «numpy.ndarray» нет атрибута «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
Мой набор данных сохранен в файле CSV, вот небольшой код, который я написал, чтобы дать вам представление о том, что я хочу сделать:
#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()
Мне нужно преобразовать x_cat_cols в числовые значения и добавить их в x_numeric_cols, чтобы получить мои полные значения input (x).
Затем мне нужно преобразовать мою целевую функцию в числовое значение и сделать это столбцом конечной цели (y).
Затем я хочу создать случайный лес, используя эти два полных набора как:
rf = RF(n_estimators=n_trees,max_features=max_features,verbose =verbose, n_jobs =n_jobs)
rf.fit( x_train, y_train )
Спасибо за вашу помощь!