IIS_2023_1/simonov_nikita_lab_6
2023-11-29 20:02:59 +04:00
..
lab6.py simonov_nikita_lab6 2023-11-29 20:02:59 +04:00
readme.md simonov_nikita_lab6 2023-11-29 20:02:59 +04:00
result.png simonov_nikita_lab6 2023-11-29 20:02:59 +04:00
train_bikes.csv simonov_nikita_lab6 2023-11-29 20:02:59 +04:00

Лабораторная работа №6 Вариант 25.

Задание

Общее задание: Использовать нейронную сеть MLPClassifier, самостоятельно сформулировав задачу.

Задача регрессии: Прогнозирования спроса на аренду велосипедов на основе данных о погоде и днях недели.

Ссылка на набор даных: kaggle-bike-sharing-system

Содержание

Введение

Данный код демонстрирует, использует классификатор MLP (Многослойный Персептрон) из библиотеки scikit-learn для прогнозирования количества арендованных велосипедов на основе различных признаков.

Зависимости

Для работы этого приложения необходимы следующие библиотеки Python:

  • pandas
  • scikit-learn
  • NumPy
  • Matplotlib
  • seaborn

Вы можете установить их с помощью pip:

pip install numpy scikit-learn pandas matplotlib seaborn

Запуск приложения

Чтобы запустить эту программу, выполните следующую команду:

python lab6.py

Откроется визуализация данных и в консоль выведется резудьтат.

Описание кода

  • Загрузка данных из файла train_bikes.csv с использованием библиотеки pandas. Пропущенные значения удаляются из набора данных.

  • Формирование бинарных признаков 'is_holiday' и 'is_workingday' на основе столбцов 'holiday' и 'workingday'.

  • Выбор признаков: 'weather', 'temp', 'humidity', 'is_holiday', 'is_workingday'. Целевая переменная: 'count'.

  • Разделение данных на обучающий, валидационный и тестовый наборы.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  • Создание и обучение модели MLPClassifier с использованием обучающего набора.
model = MLPClassifier(
    hidden_layer_sizes=(500,),
    activation='relu',
    solver='adam',
    alpha=0.01,
    max_iter=100,
    random_state=42,
    verbose=True,
)
model.fit(X_train, y_train)
  • Предсказание значений на тестовом наборе и оценка точности модели.
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f'Оценка точности: {accuracy*100:.2f}%')
  • Визуализация результатов с использованием библиотеки seaborn.

Заключение

Оценка работы моделей

Оценка точности: 1.56%

На основе анализа можно сделать следующие выводы:

  1. Коэффициенты линейной регрессии:
  • Точность модели на тестовом наборе данных низкая (1.56%). Это может свидетельствовать о том, что выбранные признаки и параметры модели не достаточно хорошо описывают зависимость от целевой переменной.
  1. Визуализация результатов позволяет визуально сравнить фактическое и предсказанное количество арендованных велосипедов.

Общий вывод

Модель MLPClassifier, основанная на погодных условиях и днях недели, демонстрирует низкую точность.