scikit-learn DBN, кодирующие строковые метки
Я совершенно новичок в Python и Scikit-Learn. Моя цель - получить классификацию, которая должна делиться на 6 различных строковых меток с глубокой сетью убеждений.
Вот несколько примеров моих данных:
uploadType, mainColorCode, allPageHeights, allPageWidths, mainAspectRatio, hasQrOrBarcode, mainFontSize, ocrWords, ocrNumber, PAGECOUNT, категория
Файловая система,#FFFFFFFF,1115 1115,794 794,0.71,False,20.15, распознаваемый ocr текст,14.4,2, класс A Файловая система,#FFFFFFFF,1115 1115,794 794,0.71,False,20.15, распознаваемый ocr текст,0,2, класс a Файловая система,#FFFFFFFF,1056,816,0.77,False,19.61, распознаваемый ocr текст,204.2,1, класс b
Я получаю свои контролируемые данные, которые состоят из 11 столбцов (10 объектов и последний из них - метка), например:
input_file = "Downloads/data.csv"
df = pd.read_csv(input_file, header = 0)
original_headers = list(df.columns.values)
df = df._get_numeric_data()
numeric_headers = list(df.columns.values)
reverse_df = df[numeric_headers]
numpy_array = reverse_df.as_matrix()
X, Y = numpy_array[:,1:], numpy_array[:,0]
Тогда я делаю:
# Splitting data
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)
# Data scaling
min_max_scaler = MinMaxScaler()
X_train = min_max_scaler.fit_transform(X_train)
# Training
classifier = SupervisedDBNClassification(hidden_layers_structure=[256, 256],
learning_rate_rbm=0.01,
learning_rate=0.001,
n_epochs_rbm=20,
n_iter_backprop=100,
l2_regularization=0.0,
activation_function='relu')
classifier.fit(X_train, Y_train)
# Test
X_test = min_max_scaler.transform(X_test)
Y_pred = classifier.predict(X_test)
print 'Done.\nAccuracy: %f' % accuracy_score(Y_test, Y_pred)
Но это говорит мне: ValueError:
Не может обрабатывать смесь неизвестного и двоичного
Я думаю, что я должен сделать что-то вроде следующих утверждений с данными, но я не уверен, как правильно выполнить это на данных:
le = preprocessing.LabelEncoder()
le.fit(["Class A", "Class B", "Class C", "Class D", "Class E", "Class F"])
Спасибо!