Впровадження машинного навчання на основі Flask для прогнозування ціни на житло

Implementasi machine learning berbasis Flask можна використовувати для створення веб-додатків, які використовують модель машинного навчання для прогнозування. У цьому прикладі ми створимо додаток для прогнозування вартості будинків за допомогою моделі регресії. Додаток буде приймати вхідні дані про будинок, такі як площа, кількість кімнат та місцезнаходження, і на основі цього надавати прогноз вартості будинку, використовуючи попередньо натреновану модель.

2. Підготовка моделі машинного навчання

Першим кроком є підготовка моделі машинного навчання для прогнозування вартості будинку. Для цього ми використаємо Boston Housing Dataset — набір даних, що часто використовується для завдань регресії. Цей набір містить інформацію про різні фактори, що впливають на вартість будинку, такі як рівень злочинності, кількість спалень тощо.

Модель машинного навчання, яку ми використовуємо в цьому прикладі, — це лінійна регресія. Після навчання моделі на даних ми збережемо її у файл у форматі pickle, щоб згодом завантажити в додаток Flask.

3. Створення додатку Flask

Додаток Flask буде обробляти запити (requests) від користувачів. В додатку є два основні ендпоінти:

  • / (Головна сторінка): Відображає вітальне повідомлення або інформацію про додаток.
  • /predict: Приймає POST-запит з даними про будинок у форматі JSON і використовує модель для прогнозування вартості будинку на основі наданих характеристик.

Процес прогнозування:

  • Користувач відправляє дані про будинок у форматі JSON через POST-запит.
  • Додаток Flask приймає ці дані, обробляє їх і повертає результат прогнозування вартості будинку за допомогою натренованої моделі.
  • Результат прогнозування повертається у форматі JSON.

4. Архітектура додатку

Архітектура цього додатку складається з кількох основних компонентів:

  • Dataset: Дані, що використовуються для навчання моделі (Boston Housing Dataset).
  • Модель машинного навчання: Модель, натренована для прогнозування вартості будинку, збережена у файлі за допомогою pickle.
  • Додаток Flask: Веб-додаток, що дозволяє користувачам надсилати дані про будинок та отримувати прогноз вартості.

5. Процес розробки

  • Навчання моделі: Набір даних завантажується та розділяється на навчальні та тестові дані. Модель лінійної регресії навчається на навчальних даних та тестується на точність на тестових даних. Після успішного навчання модель зберігається за допомогою pickle.
  • Додаток Flask: Flask використовується для створення веб-сервера, який обробляє HTTP-запити. Додаток приймає дані JSON, що надсилаються користувачем, і повертає результат прогнозування вартості будинку.
  • Інтерфейс користувача: Хоча в цій реалізації немає веб-інтерфейсу (UI), додаток може бути розширений для прийому даних через HTML-сторінку і відображення результатів прогнозування в браузері.

6. Приклад використання

Користувач надсилає дані про будинок у форматі JSON через додаток Flask, що містять характеристики будинку, такі як кількість кімнат, площа та місцезнаходження. Flask обробляє ці дані за допомогою моделі лінійної регресії, що була натренована, і повертає прогноз вартості будинку у форматі JSON.

7. Розгортання додатку

Після завершення розробки додаток Flask можна розгорнути на різних хмарних платформах, таких як Heroku, AWS Elastic Beanstalk або Google Cloud. Додаток можна буде використовувати для прогнозування вартості будинку.

8. Висновок

Імплементація machine learning на базі Flask для прогнозування вартості будинку є прикладом застосування можливостей Flask для створення веб-додатків, які взаємодіють з моделями машинного навчання.
Цей додаток можна розвивати далі, додавши веб-інтерфейс користувача або використовуючи більш складні моделі машинного навчання для підвищення точності прогнозів.

Опис реалізації машинного навчання на базі Flask: Кейс прогнозування вартості будинку

pic

Вступ

Що таке Flask? Flask — це легкий та гнучкий мікрофреймворк для Python, який дозволяє створювати веб-додатки. Flask надає надійну основу для веб-розробки, дозволяючи зосередитися на бізнес-логіці додатка без необхідності турбуватися про складну конфігурацію.

Чому Flask та машинне навчання? Flask чудово поєднується з машинним навчанням завдяки простоті створення API. Такі API дозволяють перетворити модель машинного навчання на веб-сервіс, який може використовувати інші додатки або навіть бути доступним безпосередньо через браузер.

Кейс: Прогнозування вартості будинку

Опис проблеми: Наше завдання — створити модель, яка зможе передбачити вартість будинку на основі кількох характеристик, таких як площа землі, кількість кімнат, розташування та рік будівництва. Цю модель можна використовувати агентами нерухомості, потенційними покупцями або додатками для пошуку нерухомості.

Використовувані дані: Ми використовуватимемо набір даних, який містить інформацію про будинки, що були продані, з ціною продажу та їхніми характеристиками. Ці дані можна отримати з різних джерел, таких як сайти нерухомості або державні органи.

Створення моделі:

  1. Очищення даних: Ми очистимо дані, видаливши пропущені значення, викиди та виконаємо кодування категоріальних даних (наприклад, локацію).
  2. Вибір ознак: Виберемо ознаки, які є релевантними для прогнозування вартості будинку.
  3. Вибір моделі: Використовуватимемо алгоритми регресії, такі як лінійна регресія, регресія випадкових лісів (Random Forest Regression) або XGBoost.
  4. Навчання моделі: Модель буде навчена на тренувальних даних для вивчення зв'язку між ознаками та ціною будинку.
  5. Оцінка моделі: Модель буде протестована на тестових даних за допомогою таких метрик, як середньоквадратична помилка (Mean Squared Error, MSE) або коефіцієнт детермінації (R-squared).

Реалізація з Flask:

модулі Python

від flask імпортувати Flask, request, jsonify
імпортувати pickle
імпортувати pandas як pd
# Завантаження вже натренованої моделі
model = pickle.load(open('model_harga_rumah.pkl', 'rb'))  # Завантаження стовпців, які використовувались для тренування
з відкриттям('columns.txt', 'r') як f:
    columns = f.read().splitlines()

app = Flask(__name__)

@app.route('/predict_harga', methods=['POST'])
def dict_harga():
    # Отримання вхідних даних з запиту
    data = request.json['data']

    # Створення DataFrame з вхідних даних
    df = pd.DataFrame([data], columns=columns)

    # Прогнозування
    prediction = model.predict(df)[0]

    # Повернення результату у форматі JSON
    return jsonify({'harga_prediksi': prediction})

if __name__ == '__main__':
    app.run(debug=True)

Кроки реалізації

  • Збір даних: Збираємо дані з різних джерел та очищаємо їх.
  • Вибір моделі та навчання: Вибираємо відповідний алгоритм і навчаємо модель на підготовлених даних.
  • Створення API Flask: Створюємо API Flask для прийому вхідних даних і повернення прогнозу вартості.
  • Розгортання: Розгортаємо додаток Flask на хмарних платформах, таких як Heroku або AWS.

Демонстрація

[Додати скріншот або відео, що демонструє роботу додатка. Наприклад, користувач вводить дані про будинок (площа, кількість кімнат, локація) у форму, а додаток виводить прогноз вартості.]

Висновок

Використовуючи Flask та машинне навчання, ми можемо створити додаток, який здатний прогнозувати вартість будинку з досить високою точністю.
Ця модель може використовуватись як інструмент для прийняття рішень у сфері нерухомості.

Потенціал для розвитку

  • Додавання нових функцій: Додавання нових функцій, таких як прогнозування зростання вартості будинку за певний період часу.
  • Покращення точності: Спроба використання більш складних алгоритмів або налаштування гіперпараметрів.
  • Створення кращого інтерфейсу користувача: Використання фронтенд-фреймворків, таких як React або Vue.js, для створення більш інтерактивного веб-додатка.

Важливо:

  • Якість даних: Якість даних має значний вплив на точність моделі. Переконайтеся, що дані чисті та репрезентативні.
  • Вибір моделі: Виберіть алгоритм, який відповідає типу даних і проблемі, яку необхідно вирішити.
  • Оцінка моделі: Проведіть повну оцінку моделі, щоб переконатися в її хорошій продуктивності.
  • Розгортання: Виберіть платформу для розгортання, яка відповідає потребам і масштабам додатка.

Перекладено з: Implementasi Machine Learning Berbasis Flask untuk Prediksi Harga Rumah

Leave a Reply

Your email address will not be published. Required fields are marked *