Искусственный интеллект. Машинное обучение
Шрифт:
Пример кода:
```python
# Шаг 1: Подготовка данных
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# Загрузка данных
data = pd.read_csv('real_estate_data.csv')
# Предобработка данных
X = data.drop(columns=['price'])
y = data['price']
# Разделение на обучающий и тестовый наборы
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Масштабирование признаков
scaler = StandardScaler
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
#
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error
# Создание и обучение модели линейной регрессии
model = LinearRegression
model.fit(X_train_scaled, y_train)
# Оценка качества модели на тестовом наборе данных
y_pred = model.predict(X_test_scaled)
mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
r2 = model.score(X_test_scaled, y_test)
print("Mean Squared Error:", mse)
print("Mean Absolute Error:", mae)
print("R^2 Score:", r2)
```
Это простой пример решения задачи прогнозирования цен на недвижимость с использованием линейной регрессии и метода градиентного спуска. После выполнения этого кода вы получите оценки качества модели, которые помогут вам понять, насколько хорошо модель работает на новых данных.
Пример 2
Давайте рассмотрим пример прогнозирования цен на недвижимость с использованием метода наименьших квадратов (OLS) в линейной регрессии.
Описание задачи:
Предположим, у нас есть набор данных о недвижимости, включающий информацию о размере дома, количестве спален, расстоянии до ближайшего общественного транспорта и другие характеристики. Наша задача – предсказать цены на недвижимость на основе этих характеристик.
Ход решения:
1. Подготовка данных: Загрузим и предобработаем данные, например, удалим пропущенные значения и масштабируем признаки при необходимости.
2. Выбор модели: В данном случае мы выберем модель линейной регрессии, и для обучения этой модели будем использовать метод наименьших квадратов.
3. Обучение модели: Обучим модель на обучающем наборе данных.
4. Оценка модели: Оценим качество модели на тестовом наборе данных с использованием метрик качества, таких как средняя абсолютная ошибка (MAE) и коэффициент детерминации (R^2).
Пример кода:
```python
# Шаг 1: Подготовка данных (аналогично предыдущему примеру)
# Шаг 2 и 3: Выбор и обучение модели
from sklearn.linear_model import LinearRegression
# Создание и обучение модели линейной регрессии с использованием метода наименьших квадратов
ols_model = LinearRegression
ols_model.fit(X_train_scaled, y_train)
# Шаг 4: Оценка модели
y_pred_ols = ols_model.predict(X_test_scaled)
mse_ols = mean_squared_error(y_test, y_pred_ols)
mae_ols = mean_absolute_error(y_test, y_pred_ols)
r2_ols = ols_model.score(X_test_scaled, y_test)
print("OLS Mean Squared Error:", mse_ols)
print("OLS Mean Absolute Error:", mae_ols)
print("OLS R^2 Score:", r2_ols)
```
В
этом примере мы использовали метод наименьших квадратов в линейной регрессии для прогнозирования цен на недвижимость. Результаты оценки качества модели помогут нам оценить ее эффективность и адекватность для предсказания целевой переменной.Регрессия на основе деревьев
Регрессия на основе деревьев, в частности, метод случайного леса, является мощным инструментом в машинном обучении, который позволяет решать задачи регрессии и классификации. Основной принцип случайного леса заключается в построении ансамбля деревьев решений. Каждое дерево строится независимо друг от друга на основе случайной подвыборки обучающего набора данных и случайного подмножества признаков. Этот процесс позволяет уменьшить переобучение и повысить обобщающую способность модели.
При предсказании новых данных каждое дерево в ансамбле выдает свой прогноз, а затем результаты всех деревьев усредняются (в случае регрессии) или используется голосование (в случае классификации), чтобы получить окончательный прогноз модели. Такой подход позволяет учесть различные взаимосвязи в данных и повысить обобщающую способность модели.
Метод случайного леса (Random Forest) представляет собой мощный алгоритм машинного обучения, который широко применяется в различных областях. Одним из его главных преимуществ является его способность к обобщению, то есть способность модели давать точные прогнозы на новых данных, не встречавшихся ей ранее. Это достигается за счет того, что случайный лес состоит из множества деревьев решений, каждое из которых обучается на случайной подвыборке обучающих данных и случайном подмножестве признаков. Такой подход уменьшает переобучение и повышает обобщающую способность модели.
Еще одним преимуществом случайного леса является его устойчивость к переобучению. Поскольку каждое дерево обучается на случайной подвыборке данных, а затем результаты усредняются, модель менее склонна к переобучению, чем отдельное дерево решений. Это делает случайный лес эффективным инструментом даже на небольших наборах данных или в случае наличия шума в данных.
Кроме того, случайный лес способен работать с разнообразными типами данных, включая как категориальные, так и числовые признаки. Это делает его универсальным инструментом, применимым к широкому спектру задач в различных областях, таких как финансы, медицина, биология, маркетинг и многие другие. Благодаря своей эффективности и универсальности, метод случайного леса остается одним из самых популярных и широко используемых алгоритмов машинного обучения.
Пример 1
Задача: Прогнозирование оттока клиентов в телекоммуникационной компании.
Описание задачи:
В телекоммуникационной компании часто возникает проблема оттока клиентов, когда клиенты перестают пользоваться услугами компании и переходят к конкурентам. Целью данной задачи является построение модели, которая бы могла предсказывать, уйдет ли клиент или останется, основываясь на различных характеристиках клиента и его активности.
Характеристики данных: