プログラミング

機械学習しようぜ! Part3 単回帰分析編 2日目

こんにちは、チズチズです。

カイロを携帯していないと辛い季節になってきました。

前回の復習

  • 予測する元になるデータは説明変数
  • 予測するデータは目的変数
  • 単回帰分析を実装した

こんな感じかな。(省略の極み

単回帰分析1日目の記事

↑から前の記事見られるので、復習がてらに興味あったら見てみて下さい。

前回のコード

GitHubでも公開しました

前使ったデータの説明

単回帰分析のデータって少ないんですよね…

僕が学んでいる機械学習の講座が公開しているデータを使っています。

配布されているサイト

PART 2.REGRESSIONのSection 4のzipファイルをダウンロードして展開してください。

そして、Simple~の方のファイルを開き、Salaryのデータがあります。(csvファイル)

それを作業ディレクトリ内に移動させれば、インポートできます。

わからなかったらコメント欄から…( `・∀・´)ノヨロシク

重回帰分析はコンテストの練習のところから使おうと思います。

グラフ化するよ!

何をグラフ化するの?

線形回帰のときは基本的に、

テストデータと予測データの誤差

がほとんどです。

データの相関係数もありますが…(今度

まずは、誤差をグラフ化させましょう!

どうやって?

前回インポートしたMatplotlibを使います

基本的な使い方

次の記事で書くので、更新したらここにURL貼っつけます(多分明日

コード説明

トレーニングデータと予測データのグラフ

トレーニングデータで学習させているので、トレーニングデータのグラフ書く必要あるか…

って言われそうですが、最初は書いてみて見て実感するしたほうが良いかなぁと思いました。

scatterは散布図をグラフします。

第一引数にX軸、第二引数にY軸。オプションですが、色は赤にします。

plotは折れ線グラフや直線のグラフなどと、基本的なグラフはこれでできます。

こちらも同様第一引数にX軸、第二引数にY軸。色を赤に。

単語で察しは付くでしょうが、上からタイトル、X軸の名前、Y軸の名前です。

んで表示。

テストデータと予測データのグラフ

上とほぼ変わりません。

変数名をテストデータに変えただけです。

誤差の表示

ここからレベルが上がります。

1行目は、散布図でテストデータの予測との誤差を表示しています。

Xはy_pred(予測値)、Yはy_pred-y_test(予測値と実測値の差)。

markere= は色々ありますが、oだと丸になります。sは四角形

2行目も1行目の変数と色を変えただけです。

plt.scatterの最後にlabel…と宣言しています。

凡例ですが、コードの最後にはlegend関数で凡例を表示しますという表示をしなければいけません。上の左に指定しています。

こちらは、直線を引くためのコードです。

第一引数にはyの値、第二引数にはxのスタート地点、第三引数にはゴール地点(表現があれだがまぁ理解してくれるだろう…

lw=は線の太さだが、デフォルトでいいから書かなくていいと思う(消せばよかった

y=0 の水平線を0から140000まで赤い線で引きますよ~って感じです。

結果はこんなもん。

あんま精度良くない… 5千ドルの誤差ってことは…

5000 x 120 = 600000 60万円

単回帰分析は精度悪いです

重回帰分析は単回帰分析とほぼ変わりありません。

重回帰分析使いましょう。

しかし、前処理は大変…

頑張ろう

次回予告

Matplotlibの解説か重回帰分析を始める

重回帰分析だったら前処理からだね!

どちらにせよいずれは書くだろう…

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です