0 / 0 / 0
Регистрация: 24.06.2018
Сообщений: 23

Несбалансированный класс. Исправить показать precision по метке класса

20.07.2018, 16:28. Показов 1072. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Коллеги, здравствуйте!

Подскажите пожалуйста по вопросу.

У меня есть набор данных, данные несбалансированные. Меток одного класса 580 (0), а другого 20 (1). В одном файле находится набор с данными и принадлежностью к классам, а в другом набор тестовых данных. Пробовал решить задачу разными способами - undersampling, потом попробовал использовать библиотеку imblearn (код ниже):

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# df_train_x, df_train_y - набор данных и принадлежность к классу (обучающая выборка). Класса два - 0 и 1
# df_test_x, df_test_y - тестовый набор с результатами
 
rus = RandomUnderSampler(return_indices=True)
X_resampled, y_resampled, idx_resampled = rus.fit_sample(df_train_x, df_train_y)
 
X_resampled = pd.DataFrame(X_resampled)
y_resampled = pd.DataFrame(y_resampled)
 
y = y_resampled.values
X = X_resampled.values
 
stdsc = StandardScaler()
x_train_std = stdsc.fit_transform(X)
x_test_std = stdsc.transform(df_test_x)
 
lr_model = LogisticRegression()
lr_model.fit(x_train_std, y)
 
predictions = lr_model.predict(x_test_std)
cnf_matrix=confusion_matrix(df_test_y, predictions)
Но как бы я не пробовал, результат почти всегда примерно такой:

Code
1
2
3
4
5
6
7
8
9
10
11
12
----------Classification Report------------------------------------
             precision    recall  f1-score   support
 
          0       0.98      0.44      0.61       589
          1       0.04      0.70      0.08        20
 
avg / total       0.95      0.45      0.59       609
 
TP 14
TN 259
FP 330
FN 6
Как сделать, чтобы значение 0.04 было выше? Получается, что у меня 330 объектов классификатор относит к 1.

Как можно поправить алгоритм? Всего у меня порядка 26 признаков.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.07.2018, 16:28
Ответы с готовыми решениями:

3 класса. Родительский класс - класс животных. Два класса наследника: Гиппопотамы и Зебры. Выбор структуры данных
Добрый День. Есть задача. Есть 3 класса. Родительский класс - это класс животных. Он абстрактный и содержит метод в котором считается...

Обращение к элементам класса (поставив точку, показать свойства и методы класса)
Есть класс Audio, у него есть две основных задачи воспроизводить и записывать звук (Recorder/Player). Хотелось бы, что бы все методы и...

Объявить несколько объектов класса, внести данные, и показать работу методов класса
Создать класс и включить в состав класса необходимый минимум методов, обеспечивающий полноценное функционирование объектов указанного...

1
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
20.07.2018, 19:36
MrSergey86, я в этом пока плохо разбираюсь, но можешь попробовать поиграть с параметром class_weight у LogisticRegression, если это SkLearn. Было бы интересно услышать результаты.

http://scikit-learn.org/stable... ssion.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.07.2018, 19:36
Помогаю со студенческими работами здесь

Как обратиться к методу класса из формы и вывести в ней же (например на метке) результат действий этого метода
Помогите разобраться в этом элементарном вопросе! Какая то затыка не дает получить нужный результат вот код моего класса: using System;...

Объявить несколько объектов класса, внести данные с клавиатуры, и показать работу методов класса
Создать пустой проект, добавить файл *.cpp. В нем создать класс и включить в состав класса необходимый минимум методов, обеспечивающий...

Объявить несколько объектов класса, внести данные с клавиатуры, и показать работу методов класса, используя меню
Здравствуйте, есть задание 1) Добавить в проект класс (заголовочный файл class.h и файл class.cpp). В заголовочном файле class.h создать...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
На самом деле ничё фантастического я не прошу, ведь: template <class T> class matrix { friend class diagonal; ...

Создать класс, представляющий обучающий класс ClassRoom. Создайте класс ученик Pupil. В теле класса создайте методы void
Добрый день.помогите пожалуйста новичку с решением.буду очень благодарен .заранее благодарю.сам не могу решить.хочется посмотреть код ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru