@sur-pavel

Как присвоить мусорным описаниям книг дефолтную рубрику в датасете?

Есть код для обучения модели предсказывать рубрику книги по ее описанию. И есть датасет с описаниями книги и уже присвоенными рубриками. Список рубрик неизменен. Описание одной книги в основном занимает максимум 2 строки. Среди описаний есть такие, по словам которых можно точно определить рубрику, а есть такие по которым точно нельзя. Как присвоить описаниям, по которым нельзя определить рубрику, дефолтную рубрику без ручной обработки датасета в 70000 строк?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Непонятна проблема. Ты пишешь
а есть такие по которым точно нельзя


Ну если нельзя точно - тогда делай нечетко. Ввведи метрику близости. Пускай это будет дистанция
по Левенштейну или по bi-gram, tri-gram. И раскладывай книжки по дистанции.

Вообще я-бы ввел рубрику "Прочее" и спокойно бы туда положил весь остаток.

Это знаешь как в зоологии. Когда открыли Австралию и узнали что среди животных есть утконос
- то пришлось всю классификацию зверей переделать. И ни у кого не было желания
впихивать бедного утконоса к утками или к барсукам.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
Не очень мне понятно в чем проблема.

1. То есть ты собираешься построить классификатор, на вход описание на выход, рубрика (Препроцессинг ты еще не делал, то есть пока там текст обычный). И вот все эти рубрики (target) заполнены кроме одной. А как оно у тебя хранится. Есть массив или pandas фрейм и там есть колонка рубрика с категориями, все заполнены а одна категория нет, на ее месте что пропущенные значения? Ну сделай замену всех пропущенных на свою дефолтную категорию. Там разные значения? Ну сделай проверку если значение принадлежит сету категорий (в которые ты можешь классифицировать), то оставляешь категорию не тронутой, если нет значит заменяешь на дефолтную.

2. глянь вот это https://medium.com/analytics-vidhya/labeling-an-un... (открывается с впн)

3. сделай кластерный анализ и потом каждому кластеру присвой свою категорию.

4. Надо помнить, что иногда бывают случаи что даже в big tech присваивают labels ручками. Да посмотри объявления все они нанимают просто людей видео смотреть (например) и затем его в определенную категорию классифицировать и т.д. То есть при подготовке тренировочных датасетов в качестве "разметчика" категорий принимают участие люди.

Имей ввиду, в ML нельзя задать детерменистическое поведение. Твоя функция активации на последнем слое переведет полученные значения в интервал от (0,1) при чем не 0 не 1 в него не войдут Ну и эти цифры будут использоваться как вероятности при классификации. У тебя будет вектор длинной количество категорий который складывается в 1 (100%). то есть например втрое значение 0.3 это 2 категория 30%. Ну и соответсвенно, он будет выбирать максимальное значение брать его индекс и это и будет категория. Но там никогда не будет значения со 100% или 0%. То есть те катеогории которые нельзя классифицировать он будет иногда ошибаться и классифицировать.
Ответ написан
Ваш ответ на вопрос

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

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