В последних нескольких публикациях я сосредоточился на том, как создавать наборы данных классификации, такие как полумесяцы, капли, круги и другие типы наборов данных классификации. Мой последний пост о создании наборов данных, в частности наборов классификационных данных, можно найти здесь: - https://medium.com/mlearning-ai/how-to-make-a-classification-dataset-and-predict-on- it-in-python-feaea3844052

Однако в этом посте я собираюсь обсудить, как создать простой набор данных регрессии.

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

Задачи регрессии имеют одну непрерывную и неограниченную зависимую переменную. Однако входные данные могут быть непрерывными, дискретными или даже категориальными. Регрессия необходима, чтобы определить, как одно явление влияет на другое или как связаны несколько переменных.

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

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

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

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

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

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

Затем я определил модель и в этом случае использовал оценщик LinearRegression в sklearn для обучения и согласования данных, достигнув точности 93%.

Я также включил код для отображения точки пересечения и наклона, как показано ниже: -

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

Я тоже оценил прогнозы.

Средняя абсолютная ошибка, или MAE - это абсолютное значение ошибок.

Среднеквадратичная ошибка, или MSE, является средним квадратом ошибок.

Среднеквадратичная ошибка или RMSE - это квадратный корень из среднего квадрата ошибок:

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

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