【確認課題】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_trainy_train を用いて、モデルを学習させましょう。

推論#

問. 学習したモデルに x_test を入力して予測をしましょう。

問. 予測結果と y_test に対して、accuracy を計算することでモデルを評価しましょう。

実は、iris データセットはかなり簡単な分布をしているので、正解率はほぼ 100% になったと思います。