saito

記者紹介

saitoxu(さいとぅ)

株式会社Carat 最高技術責任者 京都大学大学院修了。新卒でITベンチャーに就職し、BtoBのWebサービス開発に従事。キカガクOnlineでは機械学習を学ぶ初心者が、次のステップを踏み出すのに役立つ情報を発信していく予定。


graph

今回は回帰分析の基礎である単回帰分析を、機械学習のライブラリであるsklearnを使って体験してみます。

単回帰分析とは?

単回帰分析回帰分析の一種で、1つの目的変数(予測したい変数)を1つの説明変数(目的変数を説明する変数)で予測するものです。
単回帰分析では、上記の2変量の間の関係性を
$$
y=ax+b
$$
という一次方程式の形で表します。

理論は以下のスライドが分かりやすいので、ぜひ参考にしてください。

回帰分析はビジネスの現場では非常に応用の効く手法です。
例)売上に関係する要素の中で、どの要素の影響が最も大きいかが分かる
回帰分析の基礎である単回帰分析を使えるようになることで、ビジネスへの適用もぐっと近づくはずです。

単回帰分析をsklearnで実践

sklearn(正式にはscikit-learn)はこれまで何度か紹介してきましたが、Pythonの機械学習ライブラリです。
このsklearnを使って単回帰分析のプログラムを作成します。
sklearnを使えば単回帰分析もわずか数行のコードで作成できます。

# coding: utf-8
from sklearn import linear_model

# 線形回帰のモデルを生成
reg = linear_model.LinearRegression()
# 説明変数、目的変数の順にデータを与えモデルを学習
x = [[0], [1], [2], [3], [4], [5]] # 説明変数
y = [[5], [7], [6], [8], [11], [10] ]  # 目的変数
reg.fit(x,y)  # 回帰モデルの生成

print(reg.predict(6)) # 予測結果 ⇒ [11.73333333]

データをグラフ上にプロットすると、以下の図のようになります。
graph2

データから、点線のような関数だとデータをうまく表現できると考えられますが、x=6のときの点線の値とプログラムの予測値がおおよそ一致しているのが分かります。

おわりに

以上、単回帰分析について簡単なプログラムを交え説明しました。
ビジネスにおいて、集客数から売上を予測するためのモデルにも使えますし、手軽ですが非常に実践的な解析手法です。

今回は非常に単純なデータを用いたので、ぜひより複雑なデータでも試してみてください。