【Python】NumPy,Pandas,Matplotlibと単回帰分析で家賃の予測値を求めてみる

Pythonの応用
スポンサーリンク

初心者の独学でのプログラミング学習はとてもツライ…

プログラミングをマスターしたい!

今のIT業界はプログラミングエンジニアが不足していると言われています。
高収入の職業とも言われる分野もありますし、AI、機械学習、ディープラーニング、IOTといった注目される分野が目白押しです。

でも、いざ初心者がプログラミングをマスターしようとすると…

  • 本を読んだりネットの記事で自力で勉強しているけど限界を感じる
  • プログラミングスクールに定期的に通うのは面倒だ
  • 地方に住んでると家の近くにプログラミングスクールなんてない
  • どのプログラミング言語を学べばいいのか悩む
  • 実際の就職や転職にプログラミングが活かせるのか心配だ

など、プログラミングを自分で勉強しようとすると悩みが尽きません。

プログラミングに詳しい友人に教えてもらおうと思っても、そんな友人なんて滅多にいません。いたとしても細かく教えてくれるほど時間に余裕がある人はいないでしょう。

そんな独学でプログラミングをマスターするのに限界を感じてる方に、オンラインプログラミングスクールをがおすすめです。

おすすめのオンラインスクールはこちら

ここまで、PythonのライブラリであるNumPy、Pandas、Matplotlibを扱って来ました。

これらの知識を使って、単回帰分析をやってみたいと思います。

ここでは関東のとある地域の高級マンションの広さと家賃のデータを使って家賃予測をやってみたいと思います。

単回帰分析をやると言っても、細かい統計的な知識、式の算出などをここでは扱いません。詳しい定義などは統計分析の書籍などで学んでください。ただ、分析自体は統計学で求められている結果の式などを利用するだけですので、難しく考える必要はありません。

スポンサーリンク

単回帰分析で家賃の予測をやってみよう!

まず家賃のデータですが、rent.csvファイルとして用意していますので、こちらを利用していきます。この中には、x,yをラベルとしてそれぞれ部屋の広さ、家賃のデータが入っています。(もちろん適当なデータを自分で用意しても構いません)

ライブラリをインポートしてデータの読み込み

jupyter notebookを起動して、まずはライブラリのインポートをしまよう。

そして先ほどのデータを読み込みます。データはダウンロードして、jupyter notebookで作業しているディレクトリと同じ場所に配置しておきます。

read_csv()で先ほどのcsvファイルのデータを読み込んでいます。head()を使って冒頭の5つのデータを表示しています。

データをグラフに描画

このデータのxは広さ、yは家賃なのですが、これをグラフに描画してみます。

データをそれぞれx,yにして、分布図を表示するscatter()を使ってshow()で表示します。

グラフを見ると、おおよそ右肩上がりの直線をイメージすることができます。

describe()を使ってデータの統計量を見てみます。

データ数や平均値などがわかります。

データの中心化

このデータを扱いやすいように中心化します。

データの中心化は、データからその平均を引く事で求めます。

dfを使ってまとめて求めて、先頭のデータだけ表示しています。(df_cのcはセンタリングの意味でつけています)

センタリングしたデータの統計量はこうなります。

中心化したデータをグラフに描画

このセンタリングしたデータをグラフ化してみます。

グラフ化は先ほどと同じ容量です。

単回帰を使ってグラフに描画

グラフの分布から右肩上がりの直線をイメージすることができます。ここから直線回帰を使うのが良いのだろうと考えることができます。いわゆるy = a*x + b の形ですね。

この単回帰には直線の傾きを求める必要があります。これは統計学的にはxの2乗の合計でxyの合計を割ったもので表すことができます。(ここの意味は統計の本などを参照してください)

統計学の定義の通りに計算して直線の傾きaを求めています。

データを中心化した直線回帰の予測値を求める式はy=a*xで表すことができます。これをグラフに表します。

scatter()でx,yの分布を描画します。labelに「実測家賃」を指定します。plotで折れ線グラフが描画できるので、x, a*xのグラフを描きます。labelに「予測家賃」を指定し、見やすいように色を’red’に指定しています。legend()でlabelの凡例を表示するようにし、show()でグラフを描きます。

これで、実際の分布と予測値を見比べることができます。

スポンサーリンク

予測値を求める関数を作る

これでグラフができましたが、予測式は中心化されたものですから、これを元に戻してそれぞれ値を与えて行けば、具体的な予測値を計算することができます。

関数を作る

それでも構わないのですが、手間でもあるので予測値を計算する関数を作ってみましょう。

ここでは、傾きの値と、x,yのそれぞれの平均をあらかじめ求めておくことにします。

この値を使って関数を作ることにします。

aは傾き、xm、ymはx,yの平均です。これに先ほどの値を入れます。xcとしてxと平均値を使って中心化します。中心化した直線回帰の予測式はa*xでしたからa*xcにyの平均を加えることで、中心化から戻した値にすることができます。それをy_hatとして家賃の予測値を求めています。これを関数名perdict()として定義しています。

これで家賃の予測値を求める関数ができました。

予測値の計算

試しに、広さ95㎡の家賃の予測をしてみましょう。

perdict(95)で関数を呼び出します。

86万円超の家賃と予測できました。ちなみに使ったデータは六本木や青山の高級マンションのデータです。まあ、高いのは納得の値ですかね?

スポンサーリンク

まとめ

PythonのライブラリであるNumPy、Pandas、Matplotlibを使って単回帰分析をやってみました。細かい統計的な知識、式の算出などは統計分析の書籍などで学ぶ必要がありますが、定義の結果だけを利用すれば、分析自体はできます。

もちろん、しっかりと統計学の知識を頭に入れて置くのも理解の助けにはなるはずです。

自宅学習はオンラインプログラミングスクールを活用!

自宅学習にはオンラインプログラミングスクールがおすすめ!

オンラインプログラミングスクールは独学でプログラミングを学習する時のデメリットを解消する仕組みが備わっています。

気になるところは…

学習がオンラインで完結するのはもちろんですが、独学ではできない質問サポートがあるかどうか。わからないことを現役のエンジニアが質問に答えてくれるといいですよね。

受講者個人に担当のメンターがつき、マンツーマンで学習の相談に乗ってくれることも必要で、ITエンジニアの世界についても伺えたりもすると幅が広がります。

オンライン面談だけでなく、チャット機能を使って気軽に質問を投げかけることができることも大切です。

また、オリジナルプロダクトの開発とサポートがコースの中に組み込まれていて、独学ではなかなか難しい実践的なスキルの習得にもつなげたい。

プログラミングをマスターした後の実際の仕事につながる転職サポートでがあると、ITエンジニアの世界に飛び込むのに不安が解消されます。

そんな豊富なメニューが揃っているおすすめのオンラインプログラミングスクールがこちらにあります。

おすすめのオンラインプログラミングスクールはこちら

TechAcademyはおすすめのオンラインプログラミングスクール!

オンラインのプログラミングスクールでは、テックアカデミーの充実度が目を見張ります。

オンラインで受講が完結するので、自宅学習でプログラミングをマスターしたい人にはテックアカデミーがおすすめです。

メンター制度も現役のプロが対応してくれます。大学生などが対応しているスクールに比べて本気度と専門性が違います。メンター制度の無いスクールもありますし、担当では無いメンターが対応するスクールもあったりするので、相談の質が違いますね。

チャットサポートもあるので、それが無いスクールに比べて相談の気軽さの違いがあります。

プロダクト開発のサポートで実践力が養われるだけでなく、どの講座を利用しても転職サポートが受けられるのはありがたい。

用意されているコースも、初心者向けのプログラミングコースから、Python、Java、PHP、iPhoneアプリ、AndroidといったITエンジニアのベースとなる主要な言語だけでなく、AI、データサイエンス、ブロックチェーン、webアプリケーションと行った実践的なコースまで用意しています。

他にも、webデザインやUI/UXデザイン、動画編集、webディレクションやwebマーケティングといったプログラミング以外での役立つコースまであります。

このようなたくさんの選択肢から自分にあったコースを選ぶことがでるのがテックアカデミーです。

コースの期間も短期間でマスターしたり、長期の受講でじっくり取り組むコースを選ぶこともできます。

複数講座のセットコースを利用することで大幅な割引が受けらるので、お得に受講することもできます。

無料体験もありますので、プログラミング学習でオンラインスクールを考えている人はTechAcademyをぜひ利用してみてください。

テックアカデミーの公式サイトはこちら

タイトルとURLをコピーしました