Вопрос или проблема
Я пытаюсь улучшить точность. Я создал несколько новых признаков на основе старых признаков. Поэтому мне нужно заполнить пустые ячейки новых признаков одинаковыми значениями, чтобы уравнять формы. Затем я попробовал это с медианой, а также со средним, но ничего не изменилось. Есть ли какой-либо метод, который я могу применить к этим ячейкам, чтобы улучшить точность?
Например, есть признак под названием возраст. Я создал 2 новых признака под названием age_1 и age_2, age_1 состоит из возраста < 55, age_2 состоит из возраста > 55.
Поэтому в новых признаках есть несколько пустых ячеек, и я должен их заполнить.
Если я правильно понял ваш вопрос – вы создали новый признак age<55 – который принимает значения True/False, следовательно, необходимость во втором признаке отпадает, поскольку он имеет идеальную (отрицательную) корреляцию с первым (т.е. False в каждой записи, где другой новый признак получает True).
2 последних замечания:
- Обратите внимание, что второй признак не добавляет никакой новой информации к первому.
- Обратите внимание, что вы пропустили переопределение для возраста == 55.
Я бы предложил:
df['is_old'] = df['age'].apply(lambda x: x>55)
Ответ или решение
Для повышения точности модели в задачах машинного обучения создание новых признаков (features) играет ключевую роль. В вашем случае, вы создали два новых признака: age_1
и age_2
, основываясь на значении существующего признака age
. Однако проблема заключается в том, что некоторые ячейки этих признаков остаются пустыми, и вам необходимо их заполнить. Рассмотрим более детально, как правильно подходить к этой задаче, чтобы улучшить точность вашей модели.
Анализ созданных признаков
Создание нового признака age_1
, который обозначает, что возраст меньше 55 (True
или False
), действительно делает age_2
, который выражает, что возраст больше 55, избыточным, поскольку он является противоположным по значению. Таким образом, age_2
будет всегда зависеть от age_1
, и добавление его в набор данных не вносит новой информации.
Кроме того, как вы правильно заметили, вы упустили случаи, когда возраст равен 55. Это может быть важно, если ваша модель должна учитывать границы.
Рекомендации по заполнению пустых ячеек
Вместо создания двух отдельных признаков я рекомендую создать один бинарный признак, который будет более информативным. Например, используйте следующий код:
df['is_old'] = df['age'].apply(lambda x: x > 55)
Этот код создаёт новый признак is_old
, который будет принимать значение True
, если возраст больше 55, и False
в противном случае. Это позволит вам избежать создания дублирующих признаков и эффективно заполнить данные.
Способы заполнения пустых ячеек
Если ваш набор данных имеет пустые ячейки и вы хотите заполнить их, вы можете рассмотреть следующие стратегии:
-
Заполнение средним/медианным значением:
Заполнение пустых значений с использованием среднего или медианного значения может быть полезно, однако, как вы отметили, результаты могут не измениться. Это может быть связано с тем, что вы заполняете всю колонку, что не всегда решает проблему. -
Использование моды для категориальных переменных:
Если ваши признаки принимают категориальные значения, заполнение модальным значением (наиболее часто встречающимся значением) может оказаться полезным. -
Заполнение с учётом других признаков:
Для более точной рекомпенсации отсутствующих значений, вы можете использовать алгоритмы машинного обучения для предсказания пустых значений, основываясь на других признаках. Например, вы можете применить линейную регрессию или другие методы. -
Удаление строк с пропусками:
Альтернатива – удалить строки с пустыми значениями, если количество таких строк несущественно и не повлияет на результаты анализа. Однако это решение не всегда оптимально, особенно в больших наборах данных.
Заключение
Таким образом, правильно сформулированные признаки и методы заполнения пустых ячеек могут значительно повысить точность вашей модели. В данном случае создание единственного бинарного признака, который может четко отражать границы, а также применение стратегии заполнения, учитывающей контекст, улучшит вашу работу с данными. кінце, постоянная итерация и экспериментирование с различными подходами помогут вам достичь желаемых результатов.