セクション 1. 章 13
single
チャレンジ:分離不可能なデータの分類
メニューを表示するにはスワイプしてください
次のデータセット(2つの特徴量を持つ)を使用:
1234import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') print(df.head())
以下のコードを実行し、得られた散布図を確認すると、このデータセットが線形分離不可能であることが分かる:
123456import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') plt.scatter(df['X1'], df['X2'], c=df['y']) plt.show()
このデータに対して交差検証を用いて、単純なロジスティック回帰を評価。
123456789101112131415161718import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/circles.csv') X = df[['X1', 'X2']] y = df['y'] X = StandardScaler().fit_transform(X) lr = LogisticRegression().fit(X, y) y_pred = lr.predict(X) plt.scatter(df['X1'], df['X2'], c=y_pred) plt.show() print(f'Cross-validation accuracy: {cross_val_score(lr, X, y).mean():.2f}')
ご覧のとおり、通常のロジスティック回帰はこのタスクには適していません。多項式回帰を使用することで、モデルの性能向上が期待できます。さらに、GridSearchCV を利用することで、より高い精度のための最適な C パラメータを見つけることができます。
このタスクでは Pipeline クラスも使用します。これは前処理ステップの連続と考えることができます。その .fit_transform() メソッドは、パイプライン内の各ステップに対して順番に .fit_transform() を適用します。
タスク
スワイプしてコーディングを開始
DataFrame変数に格納されたdfとして記述されたデータセットが与えられています。
Xの2次の多項式特徴量を生成し、スケーリングを行うパイプラインを作成し、その結果のパイプラインをpipe変数に格納してください。param_gridハイパーパラメータの値として[0.01, 0.1, 1, 10, 100]を持つC辞書を作成してください。GridSearchCVオブジェクトを初期化し、学習させた後、そのオブジェクトをgrid_cv変数に格納してください。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 13
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください