Оценка двоичного классификатора, несбалансированные данные - PullRequest
0 голосов
/ 21 марта 2020

Я строю классификатор, который будет выявлять сбои в производстве литий-ионных аккумуляторов. Классификатор должен обнаруживать сбои с точностью> 90%.

Для этого я строю разные двоичные классификаторы и должен выбрать лучший. Я борюсь с этим. До сих пор я разработал два псевдокода. Есть ли у вас какие-либо предложения о том, какой из них лучше послужит моей цели?

Цель состоит в том, чтобы добиться 90% точности в обнаружении положительного класса с максимальным отзывом (отзыв должен оставаться более 60%). Данные сильно разбалансированы (положительные случаи <10% от всего набора данных) </strong>

вариант 1) - с использованием Recall в качестве оценки

1. Develop N classifiers
2. For every classifier:
    -> perform cross-validation on the training set, for every cross-validation check: 
        - find the optimal threshold (threshold at which precision is >=0.9), store the threshold and it's corresponding recall score
    -> calculate mean recall score (sum of all recall scores divided by number of cross-validation checks)
    -> calculate mean optimal threshold (sum of all thresholds divided by number of cross-validation checks)
3. Choose the best classifier based on highest mean recall score
4. Train the best classifier using the entire training data and the mean optimal threshold for this classifier
5. Asses the performance of this classifier on the test set by plotting PR curve and calculating precision and recall scores for the mean optimal threshold used 

вариант 2) - с использованием F- бета как оценка

1. Develop N classifiers
2. For every classifier:
    -> perform cross-validation on the training set, for every cross-validation check: 
        - find the optimal threshold (threshold at which f-beta score is highest, with beta=0.2 meaning precision is 5 times more important than recall), store the threshold and the score
    -> on the F-beta-curves plot, place a mean F-beta curve
    -> calculate mean F-beta score (sum of all F-beta scores divided by number of cross-validation checks)
    -> calculate mean optimal threshold (sum of all thresholds divided by number of cross-validation checks)
3. Choose the best classifier based on mean F-beta score
4. Train the best classifier using the entire training data and the mean optimal threshold for this classifier
5. Asses the performance of this classifier on the test set by plotting PR curve and calculating F-beta score for the threshold used 

Я думаю, что первый вариант лучше подходит для моих целей, однако я никогда не видел такой метод оценки. На мой взгляд, это гарантирует, что лучшим классификатором является тот, который имеет наибольшее количество отзывов, при этом сохраняя точность около 0,9, верно?

Второй вариант больше похож на общий метод оценки, о котором я читал в статьях / блогах, однако я не знаю, будет ли бета = 0,2 отражать точность 0,9 (и как определить правильную бета).

Каждое предложение будет оценено! :)

...