Обзор

В этой статье основное внимание уделяется реализации различных моделей для точного прогнозирования прочности бетона на сжатие.

Загрузка набора данных

Набор данных был загружен из UCI Machine Learning Repository. Первоначальные владельцы набора данных и подробная информация находятся в моем репозитории GitHub и в моей благодарности. Набор данных изначально содержал восемь столбцов —

Входные характеристики — все в единицах кг/м³, кроме «Возраст».

· Цемент

· Доменный шлак

· Летучая зола

· Вода

· Суперпластификатор

· Грубый агрегат

· Мелкий агрегат

· Возраст — количественный — День (1~365)

Функция вывода (будет предсказана)-

· Прочность бетона на сжатие — МПа

Кроме того, замечено, что все столбцы функций не содержат значений nan.

Разработка функций

Водоцементное отношение -

В гражданском строительстве известно, что «водоцементное отношение» является отличным показателем прочности бетона на сжатие. Инженеры использовали соотношение «вода/цемент» для точного определения прочности образцов бетона, когда еще не были изобретены химические добавки (суперпластификаторы, летучая зола).

Поскольку у всех столбцов были длинные описательные имена, они были переименованы для удобства работы и доступности.

Корреляционная матрица-

На рисунке ниже показана корреляционная матрица для всех функций набора данных.

Выводы-

· «w/c» (соотношение воды и цемента) имеет определенную корреляцию с «c_str» (прочность на сжатие) -0,5

· ‘c_agg’ (крупный заполнитель) и ‘f_agg’ (мелкий заполнитель) имеют почти такую ​​же корреляцию с ‘c_str’. Следовательно, их можно объединить в «агрегаты».

Следовательно, внедрение этих изменений -

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

Внедрение моделей ML —

Обзор —

Различные модели машинного обучения используются для прогнозирования непрерывной переменной (c_str) и, наконец, объединяются с использованием регрессора голосования, чтобы гарантировать, что модель не переобучена. Метод «RandomizedSearchCV» использовался для более быстрой и эффективной настройки модели, а переданный метод оценки был «r2».

Метод cross_val_score использовался для перекрестной проверки модели на обучающем наборе в целях тестирования.

Регрессор случайного леса —

Показатель перекрестной проверки — 88,83 %

Регрессор XGBoost —

Показатель перекрестной проверки — 90,67 %

Регрессор CatBoost —

Показатель перекрестной проверки — 91,20 %

Усиление градиента гистограммы —

Показатель перекрестной проверки — 88,63 %

Классификатор голосования —

Окончательная оценка перекрестной проверки — 90,61 %

Заключение -

Приведенные выше коды и файлы readme доступны на моем GitHub. Не стесняйтесь проверить и поиграть с ним; возможно, вы могли бы получить лучшую точность. Оставляйте свои мысли, комментарии и любые новые идеи, которые могут улучшить модель.

При этом скоро появится версия этой проблемы для нейронной сети.