Набор данных: Вечно одинокий. 465 ответов на опрос на Reddit.

Функция для предсказания: atempted_suicide — ДА или НЕТ.

Алгоритм: CatBoost (Python) — из-за его врожденной способности обрабатывать категориальные функции из коробки без особой предварительной обработки.

ПРОБЛЕМНЫЕ ОСОБЕННОСТИ:

  1. job_description: где люди писали такие вещи, как «батюшка» или «хрюканье», или просто не отвечали. Я пытался очистить это, но, возможно, это не стоит усилий. Например, я пробовал кодировать всех, у кого была работа разработчика, кодера или системного администратора, как «ИТ». Я попытался закодировать всех студентов университетов как «UNI», а всех обычных студентов как «студентов». Я объединил графических дизайнеров и художников с «художниками». Я назвал поваров и грузчиков «ручными», а белых воротничков среднего звена — «профессионалами». Я не совсем уверен, что это бессмысленно, но я также не видел, чтобы это сильно помогало. Это то, что вы, возможно, захотите рассмотреть, если вы собираетесь использовать более детализированную модель.
  2. раса: большинство людей писали стандартные вещи, такие как «азиат», но были люди, которые писали, что они смешанные коренные американцы и что-то еще, или азиаты и белые, или турки. Я попытался смешать одного «турка» с «ближневосточным» и сделал одного «пакистанца» и «индейца» (мог бы назвать этого «дези»…), но опять же, это одна из тех категорий, где все сложно. . Это похоже на тот случай, когда вы должны попытаться объединить любые нечастые значения в более крупные и более частые.

3. improve_yourself_how:в котором многие люди упомянули о физических упражнениях и походах в спортзал, в то время как другие искали терапию или пытались расширить свой круг общения. А некоторые утверждали, что ничего не сделали. Поэтому я попытался сразу закодировать эти категории, чтобы там были, например, 1 или 0 в зависимости от признака, обозначающего, использует ли человек физические упражнения вообще.

4. what_help_from_others:многие люди говорили: «Мне не нужна помощь» или что-то связанное со свиданиями. Поэтому я попытался закодировать людей, которые не хотели помощи, — думая, что люди, которые думают, что им не помогут или не могут помочь, — это те, кто с большей вероятностью попытается покончить жизнь самоубийством. Было много людей, которые упомянули свидания — быть ведомым или женщиной, или просто попасть на сцену свиданий. Может быть, это позитивный шаг, который предотвращает суицидальные мысли? Думаю, это зависит от того, как пройдут эти даты. Тем не менее, эта функция никогда не казалась такой важной.

ЧТО НА САМОМ ДЕЛЕ ВАЖНО:

В итоге я пока НЕ ​​использовал ни одну из этих проблемных функций.

Признаки, которые я использовал, — это «большие», вещи, которые не требуют слишком большого количества субъективных кодирующих суждений — пол, сексуальность, масса тела (хотя и самооценка), доход, уровень образования, наличие депрессии, их возраст, и сколько у них друзей.

Во многих многофункциональных моделях, которые я пробовал, «edu_level» оказался важным, однако это не означает, что вы можете получить достойную модель только с одной этой функцией. На данный момент я обнаружил, что упомянутые выше признаки: пол, сексуальность, масса тела, доход, уровень образования, депрессия, возраст и друзья— в совокупности способны чтобы предсказать 18–20 из 85 людей, которые пытались покончить жизнь самоубийством. А что касается тех, кто не пытался покончить жизнь самоубийством, то была всего одна ложная тревога. Конечно, как люди, мы больше заинтересованы в том, чтобы не пропустить суицидальных, а не в ложных тревогах среди тех, кто этого не делает.

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

Ссылка на мой Google Colab