IIS_2023_1/almukhammetov_bulat_lab_3/README.md
2023-11-01 23:05:45 +04:00

6.4 KiB
Raw Blame History

Вариант 2

Задание: Предсказание категории возраста дома (housingMedianAge) на основе других признаков, таких как широта, долгота, общее количество комнат и т.д.

Данные: Данный набор данных использовался во второй главе недавней книги Аурелиена Жерона "Практическое машинное обучение с помощью Scikit-Learn и TensorFlow". Он служит отличным введением в реализацию алгоритмов машинного обучения, потому что требует минимальной предварительной обработки данных, содержит легко понимаемый список переменных и находится в оптимальном размере, который не слишком мал и не слишком большой.

Данные содержат информацию о домах в определенном районе Калифорнии и некоторую сводную статистику на основе данных переписи 1990 года. Следует отметить, что данные не прошли предварительную очистку, и для них требуются некоторые этапы предварительной обработки. Столбцы включают в себя следующие переменные, их названия весьма наглядно описывают их суть:

долгота longitude

широта latitude

средний возраст жилья median_house_value

общее количество комнат total_rooms

общее количество спален total_bedrooms

население population

домохозяйства households

медианный доход median_income

Запуск: Запустите файл lab3.py

Описание программы:

  1. Загружает набор данных из файла 'housing.csv', который содержит информацию о домах в Калифорнии, включая их координаты, возраст, количество комнат, население, доход и другие характеристики.

  2. Удаляет строки с нулевыми значениями из набора данных для чистоты анализа.

  3. Выбирает набор признаков (features) из данных, которые будут использоваться для обучения моделей регрессии и классификации.

  4. Определяет задачу регрессии, где целевой переменной (target) является 'housing_median_age', и задачу классификации, где целевой переменной является 'housing_median_age'.

  5. Разделяет данные на обучающий и тестовый наборы для обеих задач с использованием функции train_test_split. Тестовый набор составляет 1% от исходных данных.

  6. Создает и обучает дерево решений для регрессии и классификации с использованием моделей DecisionTreeRegressor и DecisionTreeClassifier.

  7. Предсказывает значения целевой переменной на тестовых наборах для обеих задач.

  8. Оценивает качество моделей с помощью среднеквадратичной ошибки (MSE) для регрессии и точности (accuracy) для классификации.

  9. Выводит среднеквадратичную ошибку для регрессии и точность для классификации, а также важности признаков для обеих задач.

Результаты:

Alt text

Выводы:

Для задачи регрессии, где целью было предсказать возраст жилья (housing_median_age), модель дерева решений показала среднюю ошибку (MSE) равную 117.65. Это означает, что модель регрессии вполне приемлемо предсказывает возраст жилья на основе выбранных признаков.

Для задачи классификации, где целью было предсказать стоимость жилья (housing_median_age), модель дерева решений показала низкую точность, всего 8.29%. Это свидетельствует о том, что модель классификации не справляется с предсказанием стоимости жилья на основе выбранных признаков. Низкая точность указывает на необходимость улучшения модели или выбора других методов для решения задачи классификации.

Анализ важности признаков для задачи регрессии показал, что наибольший вклад в предсказание возраста жилья вносят признаки 'longitude', 'latitude' и 'total_rooms'. Эти признаки оказывают наибольшее влияние на результаты модели.

Для задачи классификации наибольший вклад в предсказание стоимости жилья вносят признаки 'median_income', 'longitude' и 'latitude'. Эти признаки имеют наибольшее значение при определении классов стоимости жилья.

В целом, результаты указывают на успешное решение задачи регрессии с использованием модели дерева решений. Однако задача классификации требует дополнительных улучшений.