開発環境
- 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 コメント:
コメントを投稿