1
3

More than 3 years have passed since last update.

AI Quest2021のアセスメントでfolium使ってみました

Posted at

はじめに

現在、自動車部品メーカーでエンジニアをしております。
今年の5月からAidemyを受講し、Pythonの機械学習を学び始めた初学者になります。
最近データビジュアライゼーションを勉強中で、2021/8/9に締め切られたAI Quest2021アセスメントのデータをfoliumを使ってみました。
今回foliumを使ってみると思ったよりも色々考察できそうなところがありましたので、投稿しました。

アセスメントの解法については、shu421さんが、ご丁寧解説されているので、そちらをご参考ください。

foliumを使ったEDA

train_df= pd.read_csv('../input/train.csv')
test_df= pd.read_csv('../input/test.csv')
#各都市にデータを振り分け
train_LA = train_df.loc[train_df.city == 'LA']
train_DC = train_df.loc[train_df.city == 'DC']
train_NYC = train_df.loc[train_df.city == 'NYC']
train_SF = train_df.loc[train_df.city == 'SF']
train_Chicago = train_df.loc[train_df.city == 'Chicago']
train_Boston = train_df.loc[train_df.city == 'Boston']


#ここでは、ロサンゼルスに絞って分析します。

train_LA_lat_mean=train_LA.latitude.mean()
train_LA_lng_mean=train_LA.longitude.mean()
#train_LA_y_max = train_LA.y.max() 今回のデータは上限側に大きく振れるものがあるので使っていません。
train_LA_y_min = train_LA.y.min()

import folium
from folium.plugins import HeatMap
import branca.colormap as cm
m = folium.Map(location=[train_LA_lat_mean,  train_LA_lng_mean], zoom_start = 11) 

colormap = cm.LinearColormap(['green', 'yellow', 'red'],vmin=train_LA_y_min, vmax=500)
#colormap = cm.StepColormap(colors=['green','yellow','orange','red'] ,index=[min_price,105,190,327,max_price],vmin= min_price,vmax=max_price)
#cm.LinearColormap.to_step

for loc, p in zip(zip(train_LA["latitude"],train_LA["longitude"]),train_LA["y"]):
    folium.Circle(
        location=loc,
        radius=2,
        fill=True,
        color=colormap(p),
        #popup=
        #fill_opacity=0.7
    ).add_to(m)
m

Output:
スクリーンショット 2021-09-01 22.53.51.png

ロサンゼルスでは、海岸沿の価格が高くなりそうです。
この海岸沿いにあるかどうかを特徴量にしても良さそうです。
 
続いてニューヨークの価格を見てみます。

train_NYC_lat_mean=train_NYC.latitude.mean()
train_NYC_lng_mean=train_NYC.longitude.mean()

m = folium.Map(location=[train_NYC_lat_mean,  train_NYC_lng_mean], zoom_start = 11) 

colormap = cm.LinearColormap(['green', 'yellow', 'red'],vmin=0, vmax=500)
#colormap = cm.StepColormap(colors=['green','yellow','orange','red'] ,index=[min_price,105,190,327,max_price],vmin= min_price,vmax=max_price)
#cm.LinearColormap.to_step

for loc, p in zip(zip(train_NYC["latitude"],train_NYC["longitude"]),train_NYC["y"]):
    folium.Circle(
        location=loc,
        radius=2,
        fill=True,
        color=colormap(p),
        #popup=
        #fill_opacity=0.7
    ).add_to(m)

m

Output:
スクリーンショット 2021-09-01 22.58.25.png

ニューヨークも特定の場所の価格が高いことがわかります。
さらに、拡大して確認します。
スクリーンショット 2021-09-01 23.00.26.png

価格が高いところは、高いもの同士で集まっていそうです。なので、位置の共通点を示す「neighbourhood」や「zipcode」の重要度は高くなりそうです。

実際私のLightgbmを使った予測モデルでの各特徴量の重要度としては、neighbourhoodが一番高くなりました。
よろしければ、一度folium使ってみてください。

最後に

AI Quest2021に参加される皆様半年間どうぞよろしくお願いいたします。

参考

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3