Библиотека Python по машинному обучению позволяет пользователям создавать наборы данных. Я написал несколько сообщений, в которых пользователи могут создавать наборы данных для использования в их собственных проектах по науке о данных, включая капли, круги, полумесяцы, регрессоры и классификаторы. В Python есть и другие генераторы наборов данных, которые также создают фигуры. Самый последний пост, который я сделал о методе набора данных sklearn, находится здесь: - https://medium.com/geekculture/how-to-create-a-bell-curve-using-only-python-9fdca95e7967

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

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

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

Затем я использовал make_s_curve sklearn для создания кривой s: -

Затем я использовал matplotlib для построения графика кривой s, которую я создал: -

Поскольку переменные X и y были определены в начале программы, мне не нужно было переопределять их. Поэтому мне нужно было только нормализовать переменную X, которая преобразует каждую ячейку в значение от нуля до единицы: -

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

Я не был уверен, что именно делать, поэтому решил использовать PolynomialFeatures sklearn в наборе данных, чтобы посмотреть, можно ли таким образом повысить точность. Я установил степень на 3 и добился точности 99%, что неплохо: -

Затем я сделал прогноз на наборе для проверки, и я также добился точности 99%: -

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

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

Я смотрел видео на YouTube, где технический руководитель сказал, что никто не собирается никого учить программированию, и в определенной степени это правда. Учителя научат человека основам, но путь к истинным способностям программирования - это серия проб и ошибок, с которыми я столкнулся при написании программы, а затем публикации в блоге. Мне пришлось опробовать несколько разных фрагментов кода, прежде чем я смог заставить программу работать должным образом, и кое-чему научился.

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

Код этого сообщения полностью находится в моей личной учетной записи Google Colab, ссылка находится здесь: - https://colab.research.google.com/drive/1t9u8gjcwVzwZcfrOfkZNBTVYMbq7vxr7?usp=sharing