Построение модели прогнозирования цен с использованием Python, Scikit Learn, Linear

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

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

Ингредиенты для предварительной подготовки: Numpy, Pandas, Scikit Learn, matplotlib, seaborn, линейная регрессия, StandardScaler, RandomForest.

Оглавление: прогноз цены варианта на основе нескольких переменных с использованием Python, ScikitLearn

Загрузка набора данных

В этой статье в качестве примера используется набор данных о ценах на жилье в Калифорнии. При этом вы можете использовать данные вашего бизнес-кейса в качестве набора данных. Просто убедитесь, что набор данных должен содержать определенный объем данных, который позволяет лучше предсказать оценку.

Как обычно, мы можем использовать Pandas для загрузки набора данных и применить info(), чтобы просмотреть условия набора данных.

Для лучшего прогнозирования одним из основных принципов является то, что размер данных разных метрик должен иметь одинаковое количество строк данных. Как вы можете видеть из этого примера, очевидно, что метрики totle_bedrooms показывают некоторую NA в своем столбце. Поэтому нам нужно сначала отказаться от АН.

data.dropna ( inplace= True )

Исследование данных

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

X = data.drop ([ 'median_house_value' ], axis= 1 )

y = data [ 'median_house_value' ]

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

Обычно для достижения этой цели нам не нужно использовать весь набор данных. В этом случае мы снова можем использовать разделение тестирования поездов. Мы подробно описали этот метод в предыдущей главе. Если вы заинтересованы, пожалуйста, изучите другие главы на Easy2Digital.com.

X_train , X_test , y_train , y_test = train_test_split ( X , y , test_size= 0.2 )

Затем мы можем попытаться отобразить их на графике гистограммы, используя методы join() и hist().

Или мы можем отобразить это на тепловой карте, используя метод corr(), который более нагляден благодаря глубокому и светлому цветовому контрасту.

Предварительная обработка данных

Мы видим множество избранных переменных. Более того, когда мы смотрим на распределение гистограммы выше, некоторые функции выглядят бессмысленными. Поэтому мы могли бы попытаться использовать log(), чтобы увидеть, может ли распределение избранных переменных быть лучше.

train_data [ 'total_rooms' ] = np.log ( train_data [ 'total_rooms' ] + 1 )

train_data [ 'total_bedrooms' ] = np.log ( train_data [ 'total_bedrooms' ] + 1 )

train_data [ 'population' ] = np.log ( train_data [ 'population' ] + 1 )

train_data [ 'households' ] = np.log ( train_data [ 'households' ] + 1 )

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

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

В наборе данных мы обнаруживаем, что близость океана указана в формате строкового типа данных. Таким образом, мы можем использовать метод panda get_dummies для решения этой проблемы.

pd.get_dummies ( train_data.ocean_proximity )

Прогнозируйте с помощью модели линейной регрессии

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

from sklearn.linear_model import LinearRegression

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler ()

X_train , y_train = train_data.drop ([ 'median_house_value' ], axis= 1 ), train_data [ 'median_house_value' ]

X_train_s = scaler.fit_transform ( X_train )

reg = LinearRegression ()

reg.fit ( X_train_s , y_train )

LinearRegression ()

test_data = X_test.join ( y_test )

test_data [ 'total_rooms' ] = np.log ( test_data [ 'total_rooms' ] + 1 )

test_data [ 'total_bedrooms' ] = np.log ( test_data [ 'total_bedrooms' ] + 1 )

test_data [ 'population' ] = np.log ( test_data [ 'population' ] + 1 )

test_data [ 'households' ] = np.log ( test_data [ 'households' ] + 1 )

test_data = test_data.join ( pd.get_dummies ( test_data.ocean_proximity )) .drop ([ 'ocean_proximity' ], axis= 1 )

X_test , y_test = test_data.drop ([ 'median_house_value' ], axis= 1 ), test_data [ 'median_house_value' ]

X_test_s = scaler.transform ( X_test )

reg.score ( X_test_s , y_test )

Полный скрипт Python для построения модели прогнозирования цен на основе нескольких переменных с использованием Python, ScikitLearn

Если вы заинтересованы в создании модели прогнозирования цен с использованием Python, ScikitLearn, линейной регрессии, подпишитесь на нашу рассылку , добавив сообщение «модель прогнозирования цен». . Мы немедленно отправим вам сценарий на ваш почтовый ящик.

Надеюсь, вам понравится чтение «Построение модели прогнозирования цен с использованием Python, ScikitLearn, линейной регрессии». Если да, поддержите нас, выполнив одно из действий, перечисленных ниже, потому что это всегда помогает нашему каналу.

  • Поддержите наш канал и сделайте пожертвование через PayPal ( paypal.me/Easy2digital ).
  • Подпишитесь на мой канал и включите колокольчик Easy2Digital Youtube-канал .
  • Подпишитесь на мою страницу и поставьте ей лайк. Страница Easy2Digital в Facebook.
  • Поделитесь статьей в своей социальной сети с хэштегом #easy2digital.
  • Вы подписываетесь на нашу еженедельную рассылку, чтобы получать последние статьи, видео и коды скидок Easy2Digital.
  • Подпишитесь на наше ежемесячное членство через Patreon, чтобы пользоваться эксклюзивными преимуществами ( www.patreon.com/louisludigital ).

Рекомендации по курсу «Наука о данных и машинное обучение»