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

Я обнаружил, что повторение лежит в основе изучения нового предмета. Поэтому, когда я наткнулся на технику поиска по сетке в курсе Coursera под названием «Анализ данных с помощью Python», я решил, что в моих интересах изучить эту методологию, чтобы я мог использовать ее в своих алгоритмах, чтобы, надеюсь, повысить точность моих вычислений. предсказания.

Ссылку на мой последний пост, касающийся перекрестной проверки, можно найти здесь: https://tracyrenee61.medium.com/is-there-an-estimator-in-sklearn-that-prevents-overfitting-3a48eaf7c90f

В Sklearn есть функция GridSearchCV, которая выполняет поиск по сетке. Единственный трюк — научиться использовать GridSEarchCV, потому что инструкции в документации по sklearn неполные. Когда авторы давали пример кода с использованием GridSearchCV, они убрали атрибут, и мне пришлось провести исследование, чтобы выяснить, что это за атрибут.

Я решил, что лучше всего будет опробовать GridSearchCV на наборе данных, который стал частью плана обучения для курса, который я проходил с Coursera, автомобильным набором данных. Ссылку на автомобильный набор данных можно найти в репозитории Kaggle по адресу: https://www.kaggle.com/toramky/automobile-dataset/code?datasetId=1291&sortBy=dateRun&tab=profile.

После того, как данные были предварительно обработаны, я импортировал нужные мне библиотеки, такие как GridSEarchCV от sklearn и оценщик, который я буду использовать, RandomForestRegressor.

Я определил RandomForestRegressor как RFR, а затем определил зависимые и независимые переменные. Я использовал только четыре функции для независимой переменной: мощность, снаряженную массу, объем двигателя и расход топлива на галлон.

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

Я определил переменную reg, которая представляет собой функцию GridSearchCV, и ее входные переменные.

Когда я выполнил ячейку, я распечатал лучшие параметры, что можно увидеть на скриншоте ниже:

Как только я выяснил, какие параметры являются лучшими, я создал другую модель, содержащую лучшие параметры RandomForestRegressor. Когда я использовал лучшие параметры, я получил точность 98,77%, что примерно на 17 пунктов лучше, чем точность, которую я получил, когда использовал оценщик RidgeCV!

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

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

Полностью код этой программы можно найти в моей личной учетной записи Kaggle, находящейся здесь: https://www.kaggle.com/tracyporter/coursera-data-analysis-with-python?scriptVersionId=74056648.