1.前提・実現したいこと
あ。学生データセットを2つのセットに分割します。最初の500行をトレインセットとして使用し、残りをテストセットとして使用します。すべてのコードについて、トレインセットのみを使用してトレーニングし、テストセットを使用して精度を計算します。
い。KNeighborsClassifierを使用して、不在からG3_binaryを予測します。 kを2に設定します。
う。モデルのパフォーマンスを判断するには、欠席と#2のモデルを使用してG3_binaryを予測します。 G3_binaryからの最初の20個の値と私たちが行った予測を出力します。
データー:
!curl https://dl.dropboxusercontent.com/s/ijh78s1bxm7kctv/gp_data.csv -so gp_data.csv
!curl https://dl.dropboxusercontent.com/s/1770hoabg1utoat/gp_grades.csv -so gp_grades.csv
!curl https://dl.dropboxusercontent.com/s/ymjz6vqjw3jg4e7/ms_data.csv -so ms_data.csv
!curl https://dl.dropboxusercontent.com/s/k1howfpyp5rmgnb/ms_grades.csv -so ms_grades.csv
df1 = pd.read_csv('gp_data.csv',sep= ";") df2 = pd.read_csv('ms_data.csv',sep= ";") student_data = pd.concat([df1, df2]) df3 = pd.read_csv('gp_grades.csv',sep= ";") df4 = pd.read_csv('ms_grades.csv',sep= ";") student_grades = pd.concat([df3, df4]) student = pd.merge(left=student_grades, right=student_data, left_on='student_id', right_on='student_id') df = student df['G3_binary'] = pd.Series(np.where(df.G3.values < 12, 0, 1), df.index) # データセットを2つのセットに分割します(問題がない) student = pd.merge(left=student_grades, right=student_data, left_on='student_id', right_on='student_id') df = student.sample(frac=1).reset_index(drop=True) df_train = df.loc[:500].reset_index(drop=True) df_test = df.loc[500:].reset_index(drop=True) df['G3_binary'] = pd.Series(np.where(df.G3.values < 12, 0, 1), df.index) import imp from sklearn.neighbors import KNeighborsClassifier model = KNeighborsClassifier(n_neighbors=2) # 問題があります。 X = df_train.drop('G3_binary',axis=1).values y = df_train["G3_binary"].values model.fit(X, y)
2.発生している問題・エラーメッセージ
"['G3_binary'] not found in axis"
3.該当のソースコード
X = df_train.drop('G3_binary',axis=1).values
4.自分で調べたことや試したこと
この方式ができる。 X = df[["G3_binary"]] y = df[["absences"]] でも、X = df_train[["G3_binary"]]ができませんでした。別の方法df.iloc[-1]も問題があります。
5.使っているツールのバージョンなど補足情報