Введение
Машинное обучение — это быстрорастущая область, которая фокусируется на разработке алгоритмов и моделей, позволяющих компьютерам учиться на данных и делать прогнозы или принимать решения. Линейная регрессия является одним из фундаментальных алгоритмов машинного обучения и служит отличной отправной точкой для понимания основ прогнозного моделирования. В этой статье мы рассмотрим версию линейной регрессии 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. Мы изучили набор данных, построили модель и оценили ее производительность. Визуализируя данные и прогнозируемые значения, мы получили представление о взаимосвязи между измерениями приседаний и прыжков и количеством подтягиваний.
Есть ли что-то, что новичок должен знать, что я пропустил?
Напишите в разделе комментариев ниже.
Удачного кодирования!