This commit is contained in:
sergeevevgen 2023-11-14 01:27:22 +04:00
parent 183980443e
commit fd3118c1c9
2 changed files with 56 additions and 24 deletions

View File

@ -1,19 +1,31 @@
# Импортируем необходимые библиотеки
import math
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_squared_error
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
from sklearn.preprocessing import StandardScaler, LabelEncoder
# Загрузим данные
data = pd.read_csv("ваш_файл.csv") # Замените "ваш_файл.csv" на имя вашего файла данных
df = pd.read_csv("hotel_bookings_raw.csv")
df.dropna(inplace=True)
# Выберем признаки (features) и целевую переменную (target)
features = data[['lead_time', 'arrival_date_year', 'arrival_date_week_number', 'stays_in_weekend_nights',
'stays_in_week_nights', 'adults', 'children', 'babies', 'previous_cancellations',
'previous_bookings_not_canceled', 'booking_changes', 'days_in_waiting_list',
'required_car_parking_spaces', 'total_of_special_requests']]
target = data['adr']
# Объявляю объект для преобразования строковых значений в числовые
label_encoder = LabelEncoder()
# Выберем признаки и целевую переменную (доход)
features_list = ['lead_time', 'stays_in_weekend_nights',
'stays_in_week_nights', 'adults', 'children', 'babies', 'meal', 'customer_type',
'previous_cancellations',
'previous_bookings_not_canceled', 'required_car_parking_spaces',
'CPI_AVG', 'INFLATION', 'INFLATION_CHG', 'GDP', 'CPI_HOTELS']
features = df[features_list].copy()
# Применяю к каждому столбцу признака преобразования
for f in features_list:
features[f] = label_encoder.fit_transform(features[f])
target = df['adr'].copy()
# Разделим данные на тренировочный и тестовый наборы
X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)
@ -32,6 +44,15 @@ ridge_model.fit(X_train_scaled, y_train)
# Делаем предсказания на тестовых данных
predictions = ridge_model.predict(X_test_scaled)
# Оцениваем производительность модели
mse = mean_squared_error(y_test, predictions)
print(f"Среднеквадратичная ошибка (MSE): {mse}")
# Оцениваем производительность модели по MSE метрике
mse = math.sqrt(mean_squared_error(y_test, predictions))
# Оцениваем производительность модели по MAE метрике
mae = mean_absolute_error(y_test, predictions)
# Оцениваем производительность модели по R^2 метрике
r2 = r2_score(y_test, predictions)
print(f"Среднеквадратичная ошибка (MSE): {round(mse, 2)}%")
print(f"Среднеабсолютное отклонение (MAE): {round(mae, 2)}%")
print(f"Коэффициент детерминации (R^2): {round(r2, 4) * 100}%")

View File

@ -1,16 +1,27 @@
# Задание
Предсказать, является ли транзакция мошеннической или нет на основе других данных о транзакции, таких как сумма транзакции, местоположение, банк, возраст и пол клиента
### Как запустить лабораторную работу:
ЛР запускается в файле zavrazhnova_svetlana_lab_5.py через Run, а затем в консоли должны появится вычисления
# Лабораторная работа 5. Регрессия
## Задание
Использовать метод регрессии по варианту (24 == 4) для данных из таблицы, самостоятельно сформулировав задачу.
Оценить, насколько хорошо она подходит для решения сформулированной мной задачи.
### Технологии
Методы PolynomialFeatures и LogisticRegression из библиотеки sklearn
Ссылка на мой датасет: https://www.kaggle.com/datasets/mlardi/hotel-booking-demand-with-economic-indicators
## Задача
Прогнозировать значение целевой переменной (доход) на основе набора экономических показателей,
используя гребневую регрессию.
### Запуск программы
Файл lab5.py содержит и запускает программу.
### Что делает лабораторная:
Обучаются модели логистической и полиномиальной регрессии на обучающих данных и используются эти модели для предсказания мошеннических транзакций на тестовых данных. Оценивается точность каждой модели с помощью метрики accuracy.
### Описание программы
Программа состоит из двух частей:
1. Она считывает файл с данными о двух отелях: City Hotel и Resort Hotel. Содержит множество различных метрик
2. Далее определяет необходимые признаки для характеристики дохода
3. Обучает модель и выводит результат по различным метрикам
### Результаты тестирования
По результатам тестирования, можно сказать следующее:
### Пример выходных значений:
![result.png](result.png)
Вывод:
* Среднеквадратичная ошибка (MSE) - 39% - показывает самое большое отклонение
* Среднеабсолютное отклонение (MAE) - 29% - показывает средний уровень отклонения
* Коэффициент детерминации (R^2) - 32% - показывает уровень изменчивости целевой переменной
### Вывод:
Точность полиномиальной регрессии и логистической регрессии равны 1.0, это означает, что обе модели предсказали метки классов на тестовом наборе данных без ошибок. То есть они смогли точно определить, является ли транзакция мошеннической или нет.
Результаты показывают, что модель может быть улучшена,
так как имеется значительный уровень ошибки и только небольшая доля изменчивости данных объяснена моделью