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

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

Мой нижеприведенный пример можно найти в Kaggle. Найдите набор данных

В посте я реализовал

  • Пайплайн: как использовать пайплайн от Skikit-learn. pipeline класс позволяет использовать несколько оценщиков машинного обучения за один раз. . pipeline класс имеет метод подгонки, прогнозирования и оценки. Использование эксперта по конвейерному машинному обучению может сэкономить время при моделировании более 10 алгоритмов машинного обучения за одну операцию.
  • Масштабирование перед внедрением машинного обучения. Некоторый алгоритм подгонки требует масштабирования. StandardScaler () обычно используется. Для облака StandardScalar вычитает среднее с каждым значением в каждой строке этого столбца, а затем масштабирует его до дисперсии.
  • Оценка алгоритма машинного обучения, который лучше всего соответствует данным. Перекрестная проверка K-складок с использованием KFold (n_splits = n_folds, random_state = seed). Перекрестная проверка K-сгиба используется, когда количество точек данных невелико. Это лучший подход, чем простой подход с 85% обучением и 15% тестом. K Fold устраняет предвзятость и оптимизм в предсказаниях / оценках.

Предположим, есть набор данных Train из 100 наблюдений. Если количество разделений или складок = 10. Значит, набор данных Train делится на 10 групп. Группа сохраняется алгоритмом как Тестовая, а оставшиеся 9 групп - как наборы данных для обучения. Оценки алгоритма машинного обучения обучаются в 9 группах и реализуются в группе Test. Определяется оценка точности. Чем выше балл, тем лучше модель машинного обучения соответствует заданному набору данных из 100 наблюдений.

Из предыдущего поста. E Анализ исследовательских данных

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

Описание данных: два набора данных: обучающий и тестовый. Найдите набор данных

ID: UniqueID Estimated_Insects_Count: Расчетное количество насекомых на квадратный метр Crop_Type: Категория культуры (0,1) Soil_Type: Категория почвы (0,1) Pesticide_Use_Category: Тип использования пестицидов (1 - никогда, 2 - ранее использовались, 3 - в настоящее время Использование) Number_Doses_Week: Количество доз в неделю Number_Weeks_Used: Количество используемых недель Number_Weeks_Quit: Количество недель выхода Сезон: Категория сезона (1,2,3) Crop_Damage: Категория повреждения урожая (0 = живые, 1 = повреждения по другим причинам, 2 = Ущерб из-за пестицидов)

Согласно более раннему сообщению. После применения Feature Engineering. Вы могли заметить, что набор данных из 7 столбцов теперь представляет собой набор данных из 18 столбцов после Feature Engineering.

У нас проблема с классификацией. Естественно, применим классификаторы. Давайте найдем, какой классификатор лучше подходит для данных Train

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

Определение Y (зависимая переменная) и x (независимые переменные)

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

Реализуйте алгоритм перекрестной проверки K-Fold, чтобы определить, какой алгоритм классификации описывает Y для разных значений x. Также позволяет распечатать коробчатую диаграмму для значений точности для каждого алгоритма классификации.

Похоже, что классификатор повышения градиента лучше всего подходит для набора данных обучения. Попробуем ЛГБМ.

lightGBM предлагает одностороннюю выборку на основе градиента (GOSS), которая вводит постоянный множитель (взвешенная выборка) для экземпляров данных с небольшими градиентами. Таким образом, скорость lGBM увеличивается, в то же время сохраняется точность изученных деревьев решений.

LightGBM - это фреймворк для повышения градиента, который использует древовидные алгоритмы обучения. Он разработан для эффективного распространения и обладает следующими преимуществами, такими как

  • Более быстрая скорость обучения и более высокая эффективность.
  • Более низкое использование памяти.
  • Лучшая точность.
  • Поддержка параллельного обучения и обучения на GPU. Способен обрабатывать крупномасштабные данные.

Catboost работает над методом под названием Minimal Variance Sampling (MVS) (взвешенная выборка) для стохастического градиента, такая точность разделения оценок максимальна.

XGboost не использует какие-либо методы взвешенной выборки, что замедляет процесс разделения по сравнению с LGBM и Catboost.

В следующем посте я опубликую, как реализовать фреймворк Gradient Boosting, и сравню точность модели с нейронной сетью, реализованной на том же наборе данных.

А пока оставайся сильнее.