開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
はじめての機械学習 (小高知宏(著)、オーム社)の第4章(教示学習)、4.2(教示学習に基づくデータ分類システムの構成)、4.2.1(判断木構成支援プログラム)をC言語ではなくPythonで取り組んでみる。
コード
Python 3
#!/usr/bin/env python3 import sys dataset = [line.split() for line in sys.stdin.readlines()] dataset_n = len(dataset) for j, _ in enumerate(dataset[0][:-1]): print(f'p{j + 1}') yes_n = 0 yes_point = 0 no_n = 0 no_point = 0 for data in dataset: category = data[-1] if data[j] == '1': yes_n += 1 if data[j] == category: yes_point += 1 else: no_n += 1 if data[j] == category: no_point += 1 for yes_or_no, point, total in zip(['Yes', 'No'], [yes_point, no_point], [yes_n, no_n]): print(f'{yes_or_no:3} {point}/{total} {point/total}') print()
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))
$ ./decision.py < ex.txt p1 Yes 3/7 0.42857142857142855 No 2/3 0.6666666666666666 p2 Yes 3/7 0.42857142857142855 No 2/3 0.6666666666666666 p3 Yes 4/7 0.5714285714285714 No 3/3 1.0 p4 Yes 0/3 0.0 No 3/7 0.42857142857142855 $
0 コメント:
コメントを投稿