住宅価格_予測

Patricia Arquette
リリース: 2024-11-03 12:28:29
オリジナル
183 人が閲覧しました

不動産の世界では、不動産価格の決定には、立地や規模から設備や市場動向まで、多くの要素が関係します。機械学習の基本的な手法である単純線形回帰は、部屋数や平方フィートなどの主要な特徴に基づいて住宅価格を予測する実用的な方法を提供します。

この記事では、データの前処理と特徴の選択から、価値のある価格の洞察を提供できるモデルの構築まで、住宅データセットに単純な線形回帰を適用するプロセスを詳しく説明します。データ サイエンスを初めて使用する場合でも、理解を深めたいと考えている場合でも、このプロジェクトは、データに基づいた予測がどのようにしてより賢明な不動産に関する意思決定を形成できるかを実践的に探求するのに役立ちます。

まず最初に、ライブラリをインポートすることから始めます:

import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
ログイン後にコピー
ログイン後にコピー
#Read from the directory where you stored the data

data  = pd.read_csv('/kaggle/input/california-housing-prices/housing.csv')
ログイン後にコピー
ログイン後にコピー
data
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

住宅価格_予測

#Test to see if there arent any null values
data.info()
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

#Trying to draw the same number of null values
data.dropna(inplace = True)
ログイン後にコピー
ログイン後にコピー
data.info()
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

#From our data, we are going to train and test our data

from sklearn.model_selection import train_test_split

X = data.drop(['median_house_value'], axis = 1)
y = data['median_house_value']
ログイン後にコピー
ログイン後にコピー
y
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)
ログイン後にコピー
ログイン後にコピー
#Examining correlation between x and y training data
train_data = X_train.join(y_train)
ログイン後にコピー
ログイン後にコピー
train_data
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

住宅価格_予測

#Visualizing the above
train_data.hist(figsize=(15, 8))
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

#Encoding non-numeric columns to see if they are useful and categorical for analysis

train_data_encoded = pd.get_dummies(train_data, drop_first=True)
correlation_matrix = train_data_encoded.corr()
print(correlation_matrix)
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

住宅価格_予測

住宅価格_予測

train_data_encoded.corr()
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

住宅価格_予測

住宅価格_予測

plt.figure(figsize=(15,8))
sns.heatmap(train_data_encoded.corr(), annot=True, cmap = "inferno")
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
ログイン後にコピー
ログイン後にコピー
#Read from the directory where you stored the data

data  = pd.read_csv('/kaggle/input/california-housing-prices/housing.csv')
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

data
ログイン後にコピー
ログイン後にコピー

海洋近接
インランド 5183
ニアオーシャン 2108
ニアベイ 1783
アイランド5
名前: count、dtype: int64

#Test to see if there arent any null values
data.info()
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

#Trying to draw the same number of null values
data.dropna(inplace = True)
ログイン後にコピー
ログイン後にコピー
data.info()
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

住宅価格_予測

#From our data, we are going to train and test our data

from sklearn.model_selection import train_test_split

X = data.drop(['median_house_value'], axis = 1)
y = data['median_house_value']
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

y
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)
ログイン後にコピー
ログイン後にコピー
#Examining correlation between x and y training data
train_data = X_train.join(y_train)
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

train_data
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

#Visualizing the above
train_data.hist(figsize=(15, 8))
ログイン後にコピー
ログイン後にコピー
#Encoding non-numeric columns to see if they are useful and categorical for analysis

train_data_encoded = pd.get_dummies(train_data, drop_first=True)
correlation_matrix = train_data_encoded.corr()
print(correlation_matrix)
ログイン後にコピー
ログイン後にコピー
train_data_encoded.corr()
ログイン後にコピー
ログイン後にコピー
plt.figure(figsize=(15,8))
sns.heatmap(train_data_encoded.corr(), annot=True, cmap = "inferno")
ログイン後にコピー
ログイン後にコピー
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)
ログイン後にコピー
train_data.hist(figsize=(15, 8))
ログイン後にコピー

0.5092972905670141

#convert ocean_proximity factors into binary's using one_hot_encoding
train_data.ocean_proximity.value_counts()
ログイン後にコピー

住宅価格_予測

#For each feature of the above we will then create its binary(0 or 1)
pd.get_dummies(train_data.ocean_proximity)
ログイン後にコピー

0.4447616558596853

#Dropping afterwards the proximity
train_data = train_data.join(pd.get_dummies(train_data.ocean_proximity)).drop(['ocean_proximity'], axis=1)
ログイン後にコピー

住宅価格_予測

train_data
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

住宅価格_予測

#recheck for correlation
plt.figure(figsize=(18, 8))
sns.heatmap(train_data.corr(), annot=True, cmap ='twilight')
ログイン後にコピー

0.5384474921332503

マシンのトレーニングは最も簡単なプロセスではないと本当に言いたいのですが、上記の結果を改善し続けるために、min_feature などの機能を param_grid の下に追加できます。そうすることで、最高の推定スコアを改善し続けることができます。

ここまで読んだ方は、以下のコメントを「いいね」して共有してください。あなたの意見は非常に重要です。ありがとう!??❤️

以上が住宅価格_予測の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート