Вопрос или проблема
Я пробовал RandomForest, LGBM, Knneighbors, Polynomial Regression в качестве алгоритмов и кросс-валидацию, разбиение на обучающую и тестовую выборки, стандартное масштабирование, ничего, кажется, не может преодолеть отметку в 70%. Датафрейм содержит только числовые признаки.
Моя последняя попытка (r2: 70,94…):
df = pd.read_csv(path)
df_cleaned = df.dropna(subset=[target_column])
target_column = 'gas_consumed'
X = df.drop(columns=[target_column])
y = df[target_column]
X_train, X_test, y_train, y_test = train_test_split(X, y,random_state=122)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
regressor_campeao = lgb.LGBMRegressor()
regressor_campeao.fit(X_train, y_train, eval_metric="root_mean_squared_error")
previsao = regressor_campeao.predict(X_test)
r2_score(y_test, previsao)
В некоторых областях, таких как социальные науки, R2 в 0,5 будет считаться довольно хорошим. Очевидно, в других областях это не так, но будет лучше учитывать также более значимые метрики, такие как RMSE и MAE, которые имеют ту же единицу измерения, что и целевая переменная. В результате их можно сравнить со средним значением цели, чтобы понять, могут ли результаты вашей модели быть полезными для вашей задачи.
Кроме того, если ваш результат недостаточно хорош, это может быть связано с нехваткой данных или неэффективностью признаков, поэтому вам стоит поискать больше данных (возможно, объединить с другими наборами данных) и заняться разработкой признаков.
Вы также могли бы попробовать больше алгоритмов (XGBoost, Random Forest, SVM, нейронные сети и т.д.) и использовать tuning гиперпараметров, хотя tuning обычно не сильно повышает результаты.
Наконец, вы можете проверить в литературе/интернете, есть ли какие-либо исследования, схожие с вашим, чтобы получить вдохновение и увидеть возможный диапазон хороших результатов в вашей области.
Ответ или решение
Теория
Прежде всего, следует понимать, что коэффициент детерминации ( R^2 ) отражает, какую долю дисперсии зависимой переменной модель может объяснить. Например, ( R^2 = 0.7 ) говорит о том, что 70% изменчивости целевой переменной объясняется входными факторами, оставшиеся 30% остаются необъясненными. В контексте разных областей применения приемлемыми могут быть разные значения ( R^2 ). В социальных науках хороший уровень может начинаться от 0.5, в технических дисциплинах требования могут быть намного строже.
Пример
В вашем случае вы использовали несколько популярных алгоритмов машинного обучения: RandomForest, LightGBM, KNeighbors, Polynomial Regression, но не достигли показателя ( R^2 ) выше 70%. Вы также предприняли попытки нормализации данных с помощью StandardScaler и проведения перекрестной валидации. В своей последней попытке вы настроили модель LightGBM и достигли ( R^2 ) в 70.94%, что указывает на то, что алгоритм действительно имеет некоторый потенциал для вашей задачи.
Применение
1. Улучшение качества данных:
a) Расширение набора данных: Если ваш набор данных мал, это может ограничивать способность модели обучаться на репрезентативных данных. Исследуйте возможности по добавлению новых данных, возможно, путем соединения нескольких наборов данных.
b) Инженерия признаков: Проведите дополнительный анализ данных и выберите более значимые признаки. Попробуйте создать новые признаки, которые могут быть более информативными для вашей задачи. Используйте методы, такие как проверка корреляции, или автоматизированные методы, такие как Feature Importance в случайных лесах.
2. Оптимизация модели:
a) Выбор алгоритма: Попробуйте дополнительные алгоритмы, такие как XGBoost, который часто показывает высокую эффективность на задачах регрессии. Также обратите внимание на SVM и нейросетевые подходы, такие как MLP (Многослойные перцептроны).
b) Тонкая настройка гиперпараметров: Попробуйте использовать методы поиска, такие как Grid Search или Random Search, чтобы определить оптимальные параметры для моделей.
c) Улучшение процесса обучения: Проверьте эффективность вашего процесса обучения. Попробуйте изменить способ разделения данных на обучающую и тестовую выборки, варьируя соотношения. Исследуйте возможности увеличения размера тренировочной выборки.
3. Альтернативные метрики:
a) Root Mean Squared Error (RMSE) и Mean Absolute Error (MAE): Эти метрики могут предоставить больше информации, чем просто ( R^2 ), особенно в случаях, когда необходимо измерять точность модели в тех же единицах, что и целевая переменная.
b) Визуализация результатов предсказания: Это может помочь понять, где именно модель ошибается и в каких условиях. Визуализация может выявить выбросы или аномалии, которые влияют на результирующее ( R^2 ).
4. Исследование и перепроверка:
a) Изучение литературы: Исследуйте достижения в аналогичных задачах и используйте их в качестве эталонных. Это поможет понять реалистичные ожидания для вашей конкретной задачи.
b) Проверка данных: Убедитесь, что данные корректны. Ошибки в данных могут существенно влиять на результат обучения модели.
Следуя этим шагам, вы сможете сделать более обоснованные заключения о том, каким образом можно улучшить вашу модель и повысить её производительность. Успех в машинном обучении зачастую заключается в цикличности: эксперименты, оценки, затем снова эксперименты. Это процесс, требующий терпения и часто нетривиальных решений.