開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
はじめての機械学習 (小高知宏(著)、オーム社)の第2章(パラメーター調整による学習)、2.1(パラメーター調整と学習)、2.1.1(学習データセットの機械学習とパラメーター調整)、2.1.2(パラメーター調整の実行例)をC言語ではなくPythonで取り組んでみる。
コード
Python 3
#!/usr/bin/env python3
import sys
n = 0
sxi = 0
syi = 0
sxiyi = 0
sxi2 = 0
for line in sys.stdin:
try:
line = line.strip()
xi, yi = [float(o) for o in line.split()]
except Exception as err:
print(f'{err} Invalid data: {line}', file=sys.stderr)
else:
sxi += xi
syi += yi
sxiyi += xi * yi
sxi2 += xi ** 2
n += 1
if n > 1:
a0 = (sxi2 * syi - sxiyi * sxi) / (n * sxi2 - sxi ** 2)
a1 = (n * sxiyi - sxi*syi) / (n * sxi2 - sxi ** 2)
print(f'{a0}\n{a1}')
else:
print('データ不足', file=sys.stderr)
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))
$ cat sample4.txt 1 2.1 3 3.7 2.5 3.4 3.9 3.1 $ ./lsm.py < sample4.txt 2.0102941176470583 0.4095022624434396 $
0 コメント:
コメントを投稿