機械学習を始めてみよう! ~最小二乗法の一般化~ (実装編)


はじめに
機械学習を初めてみよう! ~最小二乗法の一般化~ (理論編)
理論編を書き上げてから、少し時間が立ってしまいました、、、
申し訳ございません。
今回の実装には前回の理論編で解説した部分を使って実装していくので、是非読む前に理論編を一読してくれると助かります。

今回使うもの

numpy (行列計算)
csv (CSV読み込み)
matplotlib (グラフ描写)

実装

入力関数

# 入力関数
def load_csv(file_name, encode = ‘utf-8’):
#ファイルを開く
with open(file_name, mode = ‘r’, encoding = encode) as file:
# 行列を用意する
matrix = [] # CSVのデータの数だけ繰り返す
for row in csv.reader(file):
# もしデータが使えない時のために例外処理を入れておく
try:
matrix.append(data_cleaning(row))
except Exception e:
pass
# 行列を返す
return np.array(matrix)

データクリーニング関数
今回は自動車の重量について調べてみたいと思います。
データは下にあります。
Automobile Data Set

# データクリーニング関数
def data_cleaning(row):
# 車体重量を取得する
weight = float(row[13])
# 価格を取得する
price = row[25] # 2つをまとめて返す
return [weight, price]

基底関数(g)
この中のdimの値を上げる事によって複数次元の基底関数を設定することができます。

1 + x (dim = 1)\
1 + x + x^2 + x^3 (dim = 3)

とすることができます。

# 基底関数
def based_function(x,dim = 1):
return np.array(x ** np.arange(0,dim + 1…この記事の続きを読む

サイト名: Qiita - Python

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する


Leave a Reply

Your email address will not be published.