大辞林より
従来,機械(コンピュータ)に仕事をさせるには,人間が情報処理の手順や法則をプログラムとして記述し,機械に与えて実行していた
一方,機械学習による情報処理では,機械(コンピュータ)がデータから法則を自動的・統計的に学習する
ヒオウギ・アヤメ(Iris-Setosa) | ブルーフラッグ (Iris-Versicolour) | バージニカ (Iris-Virginica) |
![]() | ![]() | ![]() |
(C) Malcolm Manners - CC BY 2.0 | (C) Maja Dumat - CC BY 2.0 | (C) Frank Mayfield - CC BY-SA 2.0 |
# PandasとNumpyをインポート import pandas as pd import numpy as np # 日本語化Matplotlibもインポート import matplotlib.pyplot as plt !pip install japanize-matplotlib import japanize_matplotlib
#Irisデータをロード data = pd.read_csv("https://www2.cmds.kobe-u.ac.jp/~masa-n/dshandson/iris-sample.csv", encoding="UTF8") #個体番号をインデクスにセット data = data.set_index("個体番号") #確認 data
data.shape
data.describe()
data["品種"].value_counts()
#特徴に使う列名リスト features = ["がくの長さ", "がくの幅", "花びらの長さ", "花びらの幅"] #正解データに使う列名 label = "品種" X = data[features] y = data[label] from sklearn import tree #決定木による分類モデルの構築 model = tree.DecisionTreeClassifier(random_state = 0) model.fit(X,y)
#未知のデータで予測してみる new_data = pd.DataFrame([[4.8, 3.3, 1.4, 0.2],[7.3, 3.2, 4.4, 1.3],[5.5, 2.6, 5.5, 2.7] ], columns=features) new_data
#予測してみる model.predict(new_data)
#ユーザから入力を受け付けて,答えを出すプログラム print("■アヤメの品種予測アプリ") while True: input_str = input("がくの長さ・幅,花びらの長さ・幅をコンマ区切りで入力(0で終了):") if (input_str == "0"): break vals = np.array(input_str.split(",")).astype(float) if (len(vals) != 4): print(" ×エラー:4つの数値が必要です.やり直し") continue df_params = pd.DataFrame([vals], columns=features) print(f" ○AI:品種は{model.predict(df_params)[0]}と思われます") print("終了します")
ある基準に基づいて,