Я очень рад сообщить, что выполнил финальное задание по курсу Coursera, который я изучал, под названием Анализ данных с помощью Python. Последнее задание состоит в том, чтобы сделать прогноз по набору данных о ценах на жилье. Мне удалось найти набор данных на веб-сайте Kaggle, поэтому я решил использовать его. Преимущество использования набора данных, сохраненного в каталоге Kaggle, заключается в том, что мне не нужно его загружать и использовать ценную память моего ноутбука. Ссылку на набор данных о жилье в округе Кинг можно найти здесь: - https://www.kaggle.com/harlfoxem/housesalesprediction

Задание, которое мне дали, заключает в себе все, что я узнал за предыдущие пять недель. Поэтому мне пришлось взять затронутые темы и объединить их в одну программу, чтобы делать прогнозы по набору данных о жилье.

Я также использовал GridSearchCV в этом задании, что я сказал, что буду делать в последнем посте, который я сделал. Мой последний пост на GridsearchCV можно найти здесь: - https://tracyrenee61.medium.com/how-gridsearchcv-helped-to-solve-an-automobile-problem-6e7e91d95da2

Я создал программу в каталоге, в котором хранится набор данных о жилье, что означает, что мне не нужно было использовать память моего компьютера для выполнения этой задачи.

Как только я создал программу, я импортировал библиотеки, которые мне понадобятся. Я импортировал numpy, pandas, os, sklearn, matplotlib и seaborn. Numpy создает массивы и выполняет алгебраические вычисления, pandas создает и поддерживает кадры данных, os переходит в каталог и извлекает набор данных, sklearn содержит функции машинного обучения, а matplotlib и seaborn строят графики различных точек данных.

Как только я импортировал библиотеки, я использовал библиотеку os для загрузки набора данных:

Как только набор данных был загружен, я прочитал его в системе и определил как фрейм данных, long_df:-

Поскольку обучение данных занимало так много времени, я уменьшил размер набора данных до 10 000 примеров и определил вновь созданный фрейм данных как df:-

Я проанализировал цены на жилье, используя функцию отображения Seaborn:

Затем я определил переменную target и установил в нее цены.

Затем я решил удалить столбцы, идентификатор, дату и цену, потому что цена - это метка, а идентификатор и дата не нужны для прогнозов в кадре данных: -

Я создал тепловую карту, чтобы определить корреляцию между независимыми функциями:

Я решил удалить функции с низкой корреляцией, поэтому удалил yr_built, yr_renovated, zipcode, lat, long, sqft_living15 и sqft_lot1:

Когда данные были проанализированы и предварительно обработаны, я определил переменные X и Y. Переменная y, будучи зависимой, содержала в себе содержимое цели. Переменная X, будучи независимой, содержала в себе остальные функции фрейма данных df.

Затем я стандартизировал переменную X, преобразовав каждую ячейку в предопределенное минимальное и максимальное значение. Я мог бы нормализовать переменную X, что преобразовало бы каждую ячейку в значение от нуля до единицы, но в данном случае я решил этого не делать. Всегда полезно нормализовать и стандартизировать, выбирая метод, обеспечивающий наивысшую точность:

Затем я использовал функцию train_test_split от sklearn, чтобы разделить набор данных на наборы для обучения и проверки:

Именно в этот момент я выбрал оценщик, который буду использовать. Я хотел попробовать RandomForestRegressoir от sklearn, но его обучение заняло слишком много времени. Потратив день на обучение данных, я решил, что лучше использовать другой оценщик. Однако я создал другую программу только с RandomForestRegressor, и полученная точность выглядела так, как будто данные были переобучены.

Я решил попробовать BayesianRidge от sklearn. Когда я ввожу параметры в функцию GridSearchCV sklearn и ввожу лучшее значение n_iter в качестве параметра, я достиг точности 59,80%, что совсем не очень высокое значение: -

Когда я делал прогнозы на проверочном наборе, я добился точности 61,60%. Поскольку точность близка к точности набора обучающих данных, это показывает, что модель не переобучена:

Я также построил график, сравнивающий фактические значения с прогнозируемыми значениями, и видно, что точность модели невелика:

Подводя итог, можно сказать, что если бы я использовал RandomForestRegressor или XGBoost, у меня была бы более высокая точность, но обучение данных заняло слишком много времени. Если позволит время, я могу попробовать другой оценщик и посмотреть, смогу ли я добиться лучшего результата.

Код для этого сообщения можно полностью найти в моей личной учетной записи Kaggle, ссылка находится здесь: - https://www.kaggle.com/tracyporter/coursera-house-prices-final-project?scriptVersionId=74108759