Я пытаюсь спрогнозировать классификацию с помощью логистической регрессии на основе данных обучения для ряда точек данных тестирования.
Я получаю выходные данные без ошибок, но Мне сказали, что результаты неверны (неправильный вывод будет считаться ошибкой, но при запуске кода ошибок нет).
Обучающие данные представляют собой набор из 4 различных категорий. в 375 точках имеется 3 вариации на точку, поэтому строим график на трехмерном графике. Я запустил программу подсчета на наборе и обнаружил, что более 50% точек относятся к категории 2. Мои первоначальные результаты заключались в том, что все точки тестирования относились к классу 2. Я попробовал сортировать тренировочные данные по нескольким различным наборам: случайный выбор 125 записей (это размер тестовых данных), поиск минимального количества всех категорий и создание обучающего набора с использованием одинакового количества точек из каждой категории.
Нет сортировка = все классы 2
случайная сортировка = все классы 2
сортировка по одинаковому номеру класса = дает мне ответ, в котором есть баллы, отнесенные ко всем 4 категориям , но когда я подключаю их к онлайн-форме финального теста, мой показатель точности составляет 26 %, что соответствует случайной случайности. Итак, я неправильно обрабатываю данные и не знаю где. Я надеюсь, что кто-то с большим опытом работы с классификацией регрессии может указать мне в правильном направлении.
Изменить: нужно ли мне переформатировать (преобразовать) массивы train_X, train_y и test_X перед вызовом Логистическая регрессия? Если да, то как? Возможно, я просто передаю ему искаженные данные.
Если вы хотите получить код со списками входных данных, вы можете пойти сюда: текст
Если вы просто хотите посмотреть код, вот вам:
# forming tables to push through logistic regression
train_X = []
train_y = []
for i in range(len(train_table)):
train_X.append(
[train_table.x.iloc, train_table.y.iloc, train_table.z.iloc]
)
train_y.append(train_table.label.iloc)
test_X = []
for k in range(len(test_table)):
test_X.append([test_table.x.iloc[k], test_table.y.iloc[k], test_table.z.iloc[k]])
# Trying with and without normalize
clf = LogisticRegression().fit(normalize(train_X), train_y)
# clf = LogisticRegression().fit(train_X, train_y)
predict = clf.predict(test_X[:])
prob = clf.predict_proba(test_X[:])
results = pd.DataFrame(
sort_results(test_table, predict, prob),
columns=["", "timestamp", "UTC time", "label", "accuracy"],
)
Подробнее здесь: https://stackoverflow.com/questions/790 ... ct-results
Логистическая регрессия не возвращает правильные результаты ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение