2019年8月3日土曜日

開発環境

はじめての機械学習 (小高知宏(著)、オーム社)の第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 コメント:

コメントを投稿