contac完train & test data後,要如何再拆分train & test??
contac完train & test data後,要如何再拆分train & test?
回答列表
-
2022/06/10 下午 10:19王健安贊同數:1不贊同數:0留言數:0
Ly Dia 您好, 本案例剛好是有明確的訓練資料以及測試資料, 為了進行特徵工程才進行合併, 因此可以先給予一個欄位名稱用來判斷該筆資料是來自於訓練資料或是測試資料, 再進行合併, 這樣要拆開時就可以進行拆開的動作。 ```python # 載入基本套件 import pandas as pd import numpy as np # 載入標籤編碼與最小最大化, 以便做最小的特徵工程 from sklearn.preprocessing import LabelEncoder, MinMaxScaler # 讀取訓練與測試資料 data_path = 'data/' df_train = pd.read_csv(data_path + 'house_train.csv.gz') df_test = pd.read_csv(data_path + 'house_test.csv.gz') print(df_train.shape) # 訓練資料需要 train_X, train_Y / 預測輸出需要 ids(識別每個預測值), test_X # 在此先抽離出 train_Y 與 ids, 而先將 train_X, test_X 該有的資料合併成 df, 先作特徵工程 train_Y = np.log1p(df_train['SalePrice']) ids = df_test['Id'] df_train = df_train.drop(['Id', 'SalePrice'] , axis=1) df_train["data_set"] = "train" # 判斷該資料為訓練資料 df_test = df_test.drop(['Id'] , axis=1) df_test["data_set"] = "test" # 判斷該資料為測試資料 df = pd.concat([df_train,df_test]) df.head() ```