東京のAirbnbのデータについて、レビューの点数とアメニティの関係について興味があったため調べてみました。
ここではレビューの点数は100点満点から(期待値と現実のギャップ)分マイナスしたものと考えます。
宿泊施設の場所や価格は宿泊する前から分かっていると仮定しました。アメニティは実際に宿泊施設に行ったあとに分かるとし、そのアメニティの有無とレビューの点数の関係を調べることにしました。
amenities列のデータはカンマ区切りの繰り返しだったため、Mutate関数でアメニティ毎の列に分割しました。アメニティは全部で176種類ありました。
レビューの点数(review_scores_rating列)は80点以上が大部分をしめます。 逆に考えると80点より低い点数をつけるということはなにか不満があったのかもしれません。各宿泊施設を80点以上、80点より下の2つのグループ(TRUE、FALSE)に分けました。
目的変数に「スコア80点以上」、予測変数にアメニティの各列を設定し、ランダムフォレストをしました。「分野ごとのサマリ」をみるとF値と再現率が著しく低くなっていました。
ここで、ブートキャンプ次の資料を確認すると「データに不均衡があることは分かっているので、あらかじめ「データの不均衡を解消」を有効にしておく。」との記述を見つけました。 その後、「データの不均衡を調整する」を「Yes」にして再度実行するとF値、再現率共に0.7以上になりました。
変数重要度を見てみました。 (チャートの「Tentative」と「Rejected」をクリックすると「Confirmed」のみ表示できます) この中で「TV」「Internet」に注目しました。ここでも逆に考え、今どきはテレビやインターネットが無いとレビューを低く付けられてもいたし方ないと思いました。 また、「Kitchen」「Heating」「Elevator」「Refrigerator」など普段の生活で普通に使っているものもあります。 こちらの考察は間違いでした。
次に予測影響度を見てみます。 各アメニティ毎に見てみると、アメニティが有る(FALSEからTRUE)ことでネガティブに影響するものが多くあることがわかりました。「TV」「Washer」などはポジティブに影響しています。
民泊ではテレビ、インターネット、冷蔵庫など普段の生活で使用しているアメニティ無いとがっかりすることがわかりました。
重要なアメニティが有ることでレビューがマイナスになるという、謎の結果となりました。こういう場合はどうアクションすればよいのか。という、課題を見つけることができました。
(おわり)