Как задать набор классов для классификации в scikit-learn?

Здравствуйте!
Я новичек в машинном обучении. Пытаюсь решить задачу www.kaggle.com/c/how-much-did-it-rain используя sklearn. Кратко о задаче: нужно рассчитать вероятность принадлежности к классу. Классификация идет по количеству выпавших осадков. Всего есть 70 классов: 0mm осадков, 1mm осадков и т.д. до 69mm осадков.
Проблема в том, что в обучающей выборке количество осадков на самом деле записано в реальном виде, т.е. бывают записи типа 0.5mm или 65.8mm, а бывают вообще выбросы типа 20000mm. Я избавился от выбросов, а все остальные данные округлил к ближайшему целому. Оказалось, что после этого в обучающей выборке представлены 68 классов, а не 70 (т.е. тупо нет записей, у которых было бы 60mm осадков например). В связи с этим возникли вопросы.
1. Что делать, если в обучающей выборке нет представителей некоторых классов.
2. Можно ли задать набор классов в scikit-learn заранее, а не брать их из обучающей выборки?
3. Может быть посоветуете что нибудь? Какой обычно подход используется в таких случаях, когда метка класса - число с плавающей точкой и требуется рассчитать вероятность, что метка будет равна какому то числу?
Заранее спасибо!!!
  • Вопрос задан
  • 573 просмотра
Пригласить эксперта
Ответы на вопрос 2
@localghost
Я примерно на вашем уровне в МО, но по-моему это значит, что предсказывать нужно float, а уже потом делить на классы. Возможно, придется предварительно регуляризовать имеющиеся метки (свести к диапазону 0-1), а результат предсказания умножать на 70 перед отправкой.
Ответ написан
@idap
интересуюсь python, latex, linux, ML, AI
По вопросам (без привязки к задаче):
1. Ну а какие могут быть варианты? Либо получить такие данные, либо считать что таких классов нет. (Могут быть еще варианты, но это скорее костыли уже)
2. Не понял вопрос.
3. По моему, в данной задаче подходят методы аппроксимации плотностей вероятностей по данным (типа scipy.stats.gaussian_kde), непараметрические методы оценки плотности. Данных я не видел, но по описанию задачи сложилось такое впечатление.
На мой взгляд, классификаторы совсем не подходят для решения в данном случае.

Update. Посмотрел данные. Нужна регрессия: relevance vector machine, может быть гауссовы процессы (тут надо смотреть определение и думать, подходит ли), ну и обычную линейную никто не отменял. Не понял правда зачем нужны вероятности.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы