Линейная регрессия. Определяет линейную связь между двумя или более переменными.

Есть много способов найти этот тип отношения между переменными в данном наборе данных. А вот и роль PyTorch. PyTorch – это бесплатная библиотека машинного обучения с открытым исходным кодом, основанная на библиотеке Torch. Она используется для таких приложений, как компьютерное зрение и НЛП, и поэтому мы будем использовать ее для поиска взаимосвязей между переменными в наборе данных. Чтобы начать с наших кодов, нам сначала нужно установить pytorch, matplotlib и другие необходимые важные пакеты. Мы будем использовать Anaconda в качестве нашей среды, но вы можете предпочесть любую.

Импортировать указанные перечисленные пакеты:

Источник данных :

Для загрузки набора данных в память воспользуемся функцией read_csv из библиотеки pandas: https://data36.com/pandas-tutorial-1-basics-reading-data-files-dataframes-data-selection/

head используется для отображения первых 5 записей.

Чтобы проверить количество строк и столбцов в кадре данных, мы можем использовать shape.

Чтобы проверить тип данных столбца, мы можем использовать информационную функцию.

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

Теперь нам нужно подготовить данные для обучения, для этого нам сначала нужно преобразовать фрейм данных в массивы numpy.

После этого нам нужно преобразовать этот массив numpy в тензоры PyTorch с типом данных float32.

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

Создание модели

Мы определили класс для линейной регрессии, который наследует torch.nn.Module, который является основным модулем нейронной сети, содержащим все необходимые функции. Созданная нами InsuranceModel содержит одну простую линейную функцию.

мы можем сделать экземпляр страхования класса:

модель = InsuranceModel()

мы можем проверить параметры модели с помощью функции parameter, доступной в pytorch. После нам нужно выбрать оптимизатор и функцию потерь. выбор этого зависит от данных, которые вы используете для создания модели. мы будем использовать стохастический градиентный спуск и smooth_l1_loss в качестве нашего оптимизатора и функции потерь, которую вы также можете проверить для других. Можно даже попробовать различные функции потерь для повышения их эффективности. https://pytorch.org/docs/stable/nn.functional.html#loss-функции

Обучение набора данных и оценка потерь: -

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

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

Таким образом можно предсказать результат. вы можете более подробно ознакомиться с https://towardsdatascience.com/a-beginners-guide-to-linear-regression-in-python-with-scikit-learn-83a8f7ae2b4f

Вы можете найти мой блокнот здесь: https://jovian.ml/tuneintoarpit/02-insurance-linear-regression