Введение

Машинное обучение — это быстрорастущая область, которая фокусируется на разработке алгоритмов и моделей, позволяющих компьютерам учиться на данных и делать прогнозы или принимать решения. Линейная регрессия является одним из фундаментальных алгоритмов машинного обучения и служит отличной отправной точкой для понимания основ прогнозного моделирования. В этой статье мы рассмотрим версию линейной регрессии Hello World с использованием набора данных Linnerud и включим визуализацию, чтобы получить представление о данных.

Понимание линейной регрессии

Линейная регрессия — это контролируемый алгоритм обучения, используемый для прогнозирования непрерывной целевой переменной на основе одного или нескольких входных признаков. Он предполагает линейную связь между функциями и целевой переменной. Алгоритм находит наиболее подходящую линию, которая минимизирует расстояние между прогнозируемыми значениями и фактическими значениями целевой переменной. Затем эту линию можно использовать для прогнозирования на основе невидимых данных.

Набор данных Линнеруд

Набор данных Linnerud — классический набор данных в области статистики и машинного обучения. Он состоит из упражнений и физиологических измерений 20 спортсменов. Регистрируется количество подтягиваний, приседаний и прыжков каждого спортсмена. Цель состоит в том, чтобы предсказать количество подтягиваний на основе измерений приседаний и прыжков.

Импорт библиотек и загрузка набора данных

Для начала нам нужно импортировать необходимые библиотеки и загрузить набор данных Linnerud. Для этой задачи мы будем использовать язык программирования Python и библиотеку scikit-learn.

import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets, linear_model

# Load the Linnerud dataset
linnerud = datasets.load_linnerud()

# Create a Pandas DataFrame
df = pd.DataFrame(linnerud.data, columns=linnerud.feature_names)
df['Chins'] = linnerud.target[:, 0]

Исследование данных

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

# Display the first few rows of the dataset
print(df.head())

# Visualize the distribution of the target variable
plt.hist(df['Chins'], bins=10)
plt.xlabel('Number of Chin-ups')
plt.ylabel('Frequency')
plt.title('Distribution of Chin-ups')
plt.show()

Построение модели линейной регрессии

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

# Select the input features and target variable
X = df[['Situps', 'Jumps']]
y = df['Chins']

# Create a linear regression object
reg = linear_model.LinearRegression()

# Fit the model to the data
reg.fit(X, y)

Оценка модели

Чтобы оценить производительность нашей модели линейной регрессии, мы можем рассчитать коэффициент детерминации (R-квадрат) и визуализировать прогнозируемые значения по сравнению с фактическими значениями.

# Calculate the R-squared value
r2 = reg.score(X, y)
print('R-squared:', r2)

# Make predictions using the model
predictions = reg.predict(X)

plt.scatter(y, predictions)
plt.plot([min(y), max(y)], [min(y), max(y)], 'r--') # Add a prediction line
plt.xlabel('Actual Number of Chin-ups')
plt.ylabel('Predicted Number of Chin-ups')
plt.title('Linear Regression Predictions')
plt.show()

Заключение

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

Есть ли что-то, что новичок должен знать, что я пропустил?
Напишите в разделе комментариев ниже.

Удачного кодирования!