#python #scikit-learn #sklearn-pandas
Вопрос:
Я знаю в OneClassSVM, что метка -1 является выбросом, а 1 встроена. Тогда я понимаю, что ноль-это граница. Есть ли способ сделать так, чтобы этикетка печаталась в 2, а не в 3 в общей сложности? Что я хочу сделать, так это интегрировать метку OneClassSVM, как и другие модели. Например, я нашел другую модель, помеченную как «0» и «1». Но код, который я использовал для запуска модели, не соответствовал модели OneClassSVM, потому что он возвращает метки «-1» и «1».
for item in y_pred:
item.replace("-1","0")
Я попытался изменить «-1» на «0», но я уверен, что это неправильное решение. Необходимо, наконец, распечатать только две этикетки, не нарушая значения этикеток.
Ответ №1:
Вы можете изменить значения от -1, 1 до 0,1, например, для представления выборок, которые являются выбросами и выбросами соответственно. Это только для вашего удобства. На самом деле это ничего не изменит.
В этом преобразовании нет ничего плохого. Однако вам следует быть осторожным в интерпретации результатов.
Чтобы изменить метки:
Если y_pred
это список или массив numpy:
y_pred = [-1, 1, -1]
y_pred_new = [0 if i==-1 else 1 for i in y_pred]
print(y_pred_new)
[0, 1, 0]
Почему это на самом деле не имеет значения?
import numpy as np
from sklearn.svm import SVC
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
y = np.array([1, 1, 2, 2])
clf = SVC(kernel='linear')
clf.fit(X, y)
print(clf.predict(X))
# array([1 1 2 2])
измените этикетки и установите их заново
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
y = np.array([-1, -1, 1, 1])
clf = SVC(kernel='linear')
clf.fit(X, y)
print(clf.predict(X))
# array([-1 -1 1 1])
как вы можете видеть в обоих случаях, первому и последним 2 образцам присвоены одинаковые метки соответственно.
Комментарии:
1. Я знаю, как просто заменить значения в выводимом массиве другими значениями, но мне интересно, могу ли я намеренно изменить значения меток, которые выводятся на -1 и 1 в OneClassSVM.
2. Я обновил свой ответ. Вы можете изменить этикетки для вашего удобства и использовать их в других моделях.
3. Спасибо Тебе! Я использовал другие модели, такие как модель дополнительного дерева или модель дерева решений.