Одна из замечательных особенностей ведущей библиотеки Python по машинному обучению заключается в том, что она содержит игрушечные наборы данных, которые могут создавать наборы данных. В своих предыдущих сообщениях я обсуждал, как создать набор данных с двумя лунами, а затем набор данных blob. Мой последний пост на эту тему о том, как создавать капли и делать на них прогнозы, можно найти здесь: - https://tracyrenee61.medium.com/how-to-create-a-dataset-of-blobs -and-затем-make-predictions-on-it-2d787da53a32

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

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

Создав программу, я импортировал библиотеки, которые потребуются мне для запуска программы. Я импортировал pandas, numpy, sklearn, matplotlib и seaborn. Pandas используется для создания фреймов данных и управления ими, numpy используется для выполнения алгебраических вычислений, sklearn содержит функции для выполнения процедур машинного обучения, а matplotlib и seaborn используются для графического построения наборов данных.

После того, как библиотеки были импортированы, я использовал функцию make_circles sklearn, чтобы создать набор данных, содержащий два круга: -

После того, как я создал набор данных кругов, я использовал matplotlib, чтобы нанести их на график, чтобы показать, где они расположены в памяти: -

Затем я определил переменные X и y, которые являются независимыми и зависимыми переменными соответственно. Целью является метка, которая была помещена в переменную y. Метка была удалена из фрейма данных, а оставшаяся часть фрейма данных была помещена в переменную X.

Затем я использовал train_test_split sklearn, чтобы разделить переменные X и y на обучающие и проверочные наборы: -

После создания наборов для обучения и проверки я определил модель.

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

Дополнительные деревья, сокращенно от Чрезвычайно рандомизированные деревья, - это алгоритм, который объединяет прогнозы из многих деревьев решений. Алгоритм дополнительных деревьев работает путем создания большого количества необрезанных деревьев решений из набора обучающих данных. Прогнозы делаются путем усреднения прогнозов деревьев решений в случае регрессии или с использованием большинства голосов в случае классификации.

Когда я обучил и подогнал данные с помощью оценщика Sklearn ExtraTrees, я достиг точности 96,56%: -

Затем я сделал прогнозы на проверочном наборе и с помощью этой методологии добился 99% точности.

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