難易度:★★★★☆
不動産業界には、自動化、効率化、客観化の余地がまだまだたくさんあります。例えば、不動産の物件価格推定などです。物件価格は公示地価や路線価などをベースに算定されていますが、他の要因もあるため、人の経験や勘に依るところが多いです。そのため、価格を決定するのに時間がかかったり、人によってばらつきが生じたり、妥当な価格になっていない場合があります。AIが妥当で客観的な物件価格を算出してくれれば、大きな作業効率化につながります。そこで、本Questでは不動産業界でのAI活用の一例として、賃貸物件の家賃推定に取り組みます。
あなたは不動産会社のマネージャーとして、社員の生産性を高めるために、社内業務の効率化に取り組んでいます。どの業務にどれくらいの時間がかかっているのかを調べたところ、どうやら物件の家賃を決めるのに時間がかかっていることが分かりました。家賃決めは、担当者の勘と経験をベースとした相場感によって決めていた部分が大きいため、人によって金額にばらつきが生じていました。そのため、一つの家賃に決めるのに時間がかかっていたのです。そこで、過去の物件データを用いて、妥当な家賃を予測するAIを作成することにしました。妥当な家賃が自動的に決まれば、家賃決めの時間削減に繋がるからです。
Mission 1
まず初めに、データ管理部に依頼し過去の物件情報と家賃のデータを用意してもらいました。しかしデータの中身を見てみると、一つの箇所に複数の情報が記載されていたり、記入漏れがあったりと、綺麗な状態ではありませんでした。このままでは扱いづらいので、まずはデータを綺麗な形に整形していきましょう。
データ分析を始めるにあたって、まずはPython上で扱えるようにデータを取り込まなくてはなりません。
このタスクでは、ライブラリのimport方法と、データ分析のための様々なツールが用意されているライブラリ`pandas`を使ったcsvデータの読み込み方法を学びます。
`DataFrame`形式で読み込むことで、各種データについて様々な処理を行う準備ができました。
このタスクでは、読み込んだデータについて、その大きさを調べたり、データの形式を確認する方法を学びます。
Mission 2
家賃を推定するために、どのような要素が家賃に影響するのかを調べてみましょう。
その際に重要となるのは仮説を立てることです。
なぜなら、あらかじめ仮説を立てておくことで、闇雲に探索するのを避け、効率の良い探索ができるからです。例えば面積や築年数は家賃に影響するだろうといった仮説を立てることができます。家賃に影響する要素の仮説を立て、正しいかどうか確認していきましょう。その為の方法論として本ミッションでは、探索的分析について学びます。データ分析ではデータの分布や数値等からデータの特徴を抽出し、それに基づき仮説を立てたり仮説の検証を行います。基本統計量や可視化の方法論についても学んでいきましょう。
このタスクでは、データに含まれる各変数について、基本統計量を確認したりヒストグラムを描画することで、その分布の特徴を知る方法を学びます。
良い分析を行うにあたって、データの特徴を知ることは不可欠です。このタスクを通してその基本的な方法を学び、未知のデータに対しても活用できるようになりましょう。
Mission 3
物件データから家賃に影響がある要素が分かりました。次は今ある物件データだけではなく、新しく緯度経度情報を使用することにしました。手元にあるデータだけでなく、新しくデータを取得することは精度の良いモデル作成に役立つ場合があります。本ミッションでは緯度経度の使用方法を学びます。
ここまでは与えられたデータのみを使用してきました。しかし、データ分析やモデル作成において、与えられたデータのみを使用するのではなく、自分で新しくデータを取得したり、一般に公開されているデータを使用することも可能です。このタスクでは、外部データの取得方法や扱い方に関して学んでいきましょう。
Mission 4
いよいよ本クエストのメインである、家賃の予測をする為のモデル作成を実施することになりました。本ミッションではモデリング手法の1つ、ランダムフォレストモデルについて学びます。モデルを作成することで、過去の実績から将来の値を予測することができるようになります。具体的なモデルの作り方や作ったモデルの正しい評価方法、予測値の可視化方法について学んでいきましょう。
このタスクでは、決定木モデルの一つであるランダムフォレストの概念を学び、その`scikit-learn`上の実装である`RandomForestRegressor`を用いて実際に学習を行います。
これまで長々と前処理や下準備の話をしてきましたが、ついに、本格的な統計分析、機械学習の第一歩を踏み出すことになります。
このタスクでは、予測した値を可視化して、どのような予測が行われたのかを確認する方法を学びます。予測傾向を可視化することで、モデル改善の手がかりを得れる場合があります。
Mission 5
家賃を予測するモデルを作成することができましたが、高額物件を過小評価してしまっているなど、実務に使用するのに十分な精度には達しませんでした。そこで、目的変数を変更することで、精度を上げる方法を学びましょう。
目的変数を直接予測するのではなく、別の値を予測して、間接的に予測値を算出する方法があります。このタスクでは目的変数を変更することにより精度を向上させる方法を学んでいきましょう。
本クエストでは、家賃を予測するモデルを作成しました。ただ予測モデルを作るだけでなく、予測値を可視化してどのような値が予測できていないのかを確認し、それに合わせて目的変数を変更することで予測精度の改善も行いました。クエストを通じて学んだこと、そしてクエストの成果をおさらいしましょう。
Competition
これまで学習したことを元に、SIGNATEのSOTAコンペティションに挑戦してみましょう。
Competitionに挑戦する