【確認課題】scikit-learn#
前準備#
データの読み取り#
scikit-learnから提供されるiris
というデータセットを読み込みます。
from sklearn.datasets import load_iris
import pandas as pd
iris = load_iris()
# 説明変数の読み取り
data = iris.data
feature_names = iris.feature_names
df_data = pd.DataFrame(data=data, columns=feature_names)
# 目的変数の読み取り
target = iris.target
target_names = iris.target_names
df_target = pd.DataFrame(data=target, columns=["target"])
説明変数の把握#
問. df_data
の先頭 5 行を表示しましょう。
問. df_data
の行数と列数を表示しましょう。
問. df_data
の基本特徴量を表示しましょう。
問. df_data
に欠損値がないかを確認しましょう。
目的変数の把握#
問. df_target
のうち、ランダムに 10 行表示しましょう。
目的変数の数字はそれぞれ、
0 が
setosa
(ヒオウギアヤメ)1 が
versicolor
(ブルーフラッグ)2 が
virginica
(バージニカ)
を指しています。
データの可視化(Extra)#
問. x 軸を petal length (cm)、y 軸を petal width (cm)にして散布図を作成しましょう。 ただし、目的変数に応じて点の色と形を変更してください。
機械学習#
データの分割#
問. iris データを 4:1 に分割して、80% を学習データとして 20% をテストデータとしてください。
ただし、分割した後の変数名は以下の通りにしてください。
変数名 |
内容 |
---|---|
x_train |
学習用の説明変数 |
x_test |
テスト用の説明変数 |
y_train |
学習用の目的変数 |
y_test |
テスト用の目的変数 |
学習データでモデルの学習を行い、テストデータでモデルの評価を行います。
問. 本当に 4:1 に分割できているか確認しましょう。
学習#
問. RandamForest の学習モデルのインスタンスを生成しましょう。
問. x_train
と y_train
を用いて、モデルを学習させましょう。
推論#
問. 学習したモデルに x_test
を入力して予測をしましょう。
問. 予測結果と y_test
に対して、accuracy
を計算することでモデルを評価しましょう。
実は、iris データセットはかなり簡単な分布をしているので、正解率はほぼ 100% になったと思います。