Добро пожаловать в мой блог, где я выражаю свою заинтересованность в применении машинного обучения для поиска долгосрочных решений экологических проблем. Сегодня я хотел бы обсудить одну из самых острых проблем нашего времени: выбросы бензина. Как вы, возможно, знаете, выбросы топлива являются значительным источником парниковых газов, которые способствуют изменению климата и загрязнению воздуха. Но что мы можем сделать, чтобы сократить их? Как мы можем выбрать лучшие модели автомобилей для наших требований и окружающей среды? Чтобы решить эти проблемы, я буду использовать машинное обучение для анализа и оценки выбросов CO2 от различных автомобилей в зависимости от объема двигателя, количества цилиндров и расхода топлива. Машинное обучение — это мощная техника для выявления скрытых закономерностей и понимания данных. В этом проекте я покажу, как использовать машинное обучение для исследования набора данных, включая статистику расхода топлива и выбросов CO2 для нескольких моделей автомобилей. Мы узнаем, как создавать и оценивать модели машинного обучения, которые могут прогнозировать и объяснять выбросы CO2 от различных автомобилей. Готовы отправиться со мной в это удивительное путешествие? Давайте начнем эту вечеринку!

Обзор набора данных

Мы начинаем с импорта набора данных, который содержит информацию о расходе топлива и выбросах CO2 нескольких автомобилей. Набор данных включает такую ​​информацию, как объем двигателя, количество цилиндров, общий расход топлива и выбросы CO2. Давайте посмотрим на первые несколько строк набора данных.

Для этого примера давайте получим набор данных «Выбросы топлива» из репозитория машинного обучения UCI.

Набор данных имеет 13 столбцов и 1067 строк. В нашем исследовании мы сосредоточимся на столбцах «ENGINESIZE», «CYLINDERS», «FUELCONSUMPTION_COMB» и «CO2EMISSIONS».

Прежде чем мы начнем создавать модели машинного обучения, давайте проведем исследовательский анализ данных, чтобы лучше понять, как переменные связаны друг с другом. Мы будем использовать ряд визуализаций, которые помогут нам лучше понять данные.

Исследовательский анализ данных

Давайте проведем некоторый исследовательский анализ данных, чтобы лучше понять, как переменные связаны друг с другом, прежде чем приступить к разработке моделей машинного обучения. Чтобы лучше понять данные, мы будем использовать различные визуализации.

Гистограммы

Мы можем построить гистограммы, чтобы визуализировать распределение переменных. Должны быть показаны гистограммы для «ЦИЛИНДРЫ», «ДВИГАТЕЛЬ», «CO2EMISSIONS» и «FUELCONSUMPTION_COMB»:

Распределение каждой переменной изображается визуально с помощью гистограмм. Для каждого атрибута мы можем видеть его частоту и диапазон значений.

Графики рассеяния

Используя точечные диаграммы, давайте теперь исследуем связи между «CO2EMISSIONS» и другими переменными. Для «FUELCONSUMPTION_COMB против ВЫБРОСОВ CO2», «РАЗМЕР ДВИГАТЕЛЯ против ВЫБРОСОВ CO2» и «ЦИЛИНДРОВ против ВЫБРОСОВ CO2» мы создадим точечные графики.

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

Построение регрессионных моделей

Теперь давайте создадим регрессионные модели для прогнозирования выбросов CO2 на основе уже доступных функций. Мы начнем с рассмотрения простой модели линейной регрессии, а затем перейдем к моделям множественной линейной регрессии и полиномиальной регрессии.

Подготовка данных

Давайте сначала подготовим наши данные, прежде чем начать процесс обучения модели. Наш набор данных будет разделен на наборы для обучения и тестирования, при этом 70% данных будут использоваться для обучения модели, а оставшиеся 30% — для оценки ее эффективности.

Теперь мы можем приступить к обучению модели.

Простая линейная регрессия

Для обучения нашей модели мы будем использовать подход линейной регрессии из библиотеки scikit-learn. Предполагается, что переменные входа (размер двигателя) и выхода (выбросы топлива) имеют линейную зависимость в модели линейной регрессии.

Обучение модели

Используя характеристику «ENGINESIZE» для оценки выбросов CO2, мы сначала обучим простую модель линейной регрессии.

Подбирая линию, которая наиболее точно отображает корреляцию между объемом двигателя и выбросами топлива, модель обучается. Коэффициенты показывают, как выбросы топлива изменяются с увеличением объема двигателя в зависимости от наклона линии. Пересечение линии с осью Y обозначено точкой пересечения.

Оценка модели

Используя данные тестирования, мы вычислим ряд показателей, включая среднюю абсолютную ошибку (MAE), среднеквадратичную ошибку (MSE) и оценку R-квадрата, чтобы оценить эффективность нашей обученной модели.

Средняя абсолютная разница между ожидаемыми выбросами топлива и фактическими значениями представлена ​​средней абсолютной ошибкой (MAE). Среднее квадратов различий между ожидаемыми и фактическими значениями измеряется среднеквадратичной ошибкой (MSE). Оценка R-квадрата показывает процент дисперсии целевой переменной, который может учитывать модель.

Модель множественной линейной регрессии

Мы рассмотрим, как можно использовать множественную линейную регрессию для прогнозирования выбросов топлива. Чтобы спрогнозировать целевую переменную, то есть выбросы CO2, множественная линейная регрессия учитывает ряд входных переменных, включая количество цилиндров, объем двигателя и расход топлива.

Обучение модели

Мы будем использовать метод LinearRegression библиотеки scikit-learn для обучения модели множественной линейной регрессии.

Мы рассмотрим функции «ЦИЛИНДРЫ», «ДВИГАТЕЛЬНЫЙ РАЗМЕР» и «ПОТРЕБЛЕНИЕ ТОПЛИВА_COMB».

Мы берем целевую переменную («CO2EMISSIONS») и входные функции («CYLINDERS», «ENGINESIZE» и «FUELCONSUMPTION_COMB») из набора обучающих данных и превращаем их в массивы NumPy. Мы устанавливаем экземпляр класса линейной регрессии и подгоняем модель к обучающему набору данных. Требуется оценка коэффициентов (весов), необходимых для уменьшения суммарного квадрата отклонения между ожидаемыми и фактическими целевыми значениями.

Оценка модели

Мы оценим эффективность нашей модели множественной линейной регрессии, используя ряд показателей, таких как остаточная сумма квадратов (RSS) и показатель дисперсии, также называемый показателем R-квадрата.

Оценка модели с использованием таких показателей, как остаточная сумма квадратов (RSS) и показатель дисперсии, дает представление о точности и производительности модели множественной линейной регрессии. Более низкий RSS и более высокий показатель дисперсии указывают на лучшую прогностическую эффективность и лучшее соответствие данным.

Модель полиномиальной линейной регрессии

Мы рассмотрим полиномиальную регрессию как другую стратегию прогнозирования выбросов топлива. Мы можем определить нелинейные корреляции между входной переменной (объем двигателя) и целевой переменной (выбросы топлива), используя полиномиальную регрессию. Мы будем использовать класс LinearRegression из модуля sklearn.linear_model и класс PolynomialFeatures из модуля sklearn.preprocessing.

Входные объекты будут преобразованы с использованием полиномиальных терминов, чтобы зафиксировать нелинейную зависимость. Здесь в качестве примера будет использоваться многочлен второй степени:

poly = PolynomialFeatures(степень=2) train_x_poly = poly.fit_transform(train_x)

Класс PolynomialFeatures использует возможности и взаимодействия исходных функций для создания нового набора функций. В этом случае исходная функция размера двигателя (ENGINESIZE), ее квадрат и член взаимодействия между исходной функцией и ее квадратом создаются как новые функции с помощью параметра степени=2.

Обучение модели

Далее мы обучим модель полиномиальной регрессии, используя преобразованные данные обучения.

clf = linear_model.LinearRegression()
train_y_ = clf.fit(train_x_poly, train_y)

Модифицированные обучающие данные (train_x_poly) и соответствующая целевая переменная (train_y) используются для подбора модели линейной регрессии.

Визуализация модели

Мы можем построить кривую регрессии на точечной диаграмме, чтобы показать модель полиномиальной регрессии:

На точечной диаграмме объемы двигателей (ENGINESIZE) нанесены в зависимости от фактических уровней выбросов топлива (CO2EMISSIONS). Отражая нелинейную связь, представление полиномиального уравнения кривой регрессии демонстрирует, насколько точно модель соответствует данным.

Оценка модели

Мы можем оценить производительность модели полиномиальной регрессии, используя различные показатели, включая среднюю абсолютную ошибку (MAE), остаточную сумму квадратов ошибок (RSS) и точность (показатель R-квадрата).

MAE рассчитывает среднюю абсолютную разницу между рассчитанными выбросами топлива и фактическими выбросами. Среднеквадратическая разница между ожидаемыми и фактическими значениями измеряется RSS. Значение R-квадрата, обозначающее точность, показывает, какая часть вариации выбросов топлива объясняется моделью.

Заключение

Используя методы машинного обучения, мы изучили набор данных об использовании топлива и выбросах CO2 для этого исследования. Данные были изучены с использованием гистограмм и диаграмм рассеивания, были найдены корреляции между переменными и созданы регрессионные модели для прогнозирования выбросов CO2.

Понимание связи между объемом двигателя и выбросами CO2 стало возможным благодаря моделям линейной регрессии. Дополнительные параметры, такие как количество цилиндров и расход топлива, были добавлены в модель множественной линейной регрессии для улучшения прогнозов. Наконец, в модель полиномиальной регрессии были включены нелинейные отношения, что позволило делать более точные прогнозы.

Мы можем извлечь важные уроки и создать модели, используя машинное обучение для анализа данных о выбросах топлива, что поможет автомобильному сектору внедрить более экологичные методы.