訓練資料和測試資料之間的區別
介紹
在機器學習中,如果我們擁有良好的資料表示和數量,就可以生成良好的模型。在訓練模型時,資料可以被劃分為不同的資料集,這些資料集具有不同的用途。訓練集和測試集是兩個非常有用且常見的資料集。訓練集是原始資料集的一部分,用於訓練模型並找到良好的擬合。測試資料是原始資料的一部分,用於驗證模型訓練並分析計算的指標。
在本文中,讓我們詳細探討訓練集和測試資料集。
訓練資料 | 測試資料 |
---|---|
提供給機器學習模型的資料,以便它可以透過分析資料來學習其中的模式,稱為訓練資料集。 | 用於評估模型並檢查其效能的資料稱為測試資料。 |
它通常大於建立的其他任何資料集。訓練資料集的大小大於測試資料集。訓練集和測試集之間常用的比例為 80:20、70:30 等 | 它通常以 80:20 或 70:30 等比例獲取,較小的比例代表測試資料。 |
資料量越大,模型可用的資訊就越多。但是,應注意不要用所有資料來訓練模型,這可能導致過擬合。 | 用於測試的資料應該是完全未見過的,以便模型獲得新資料來檢查效能。 |
用於訓練的資料可以有標籤也可以沒有標籤。這取決於任務的型別。如果是像 KMeans 這樣的無監督演算法,則不需要標籤,但如果是像查詢電子郵件是否為垃圾郵件這樣的分類任務,則需要帶標籤的訓練資料。 | 測試資料可以根據任務型別新增或不新增標籤。 |
資料應該與正在解決的用例或問題相關。例如,要確定房價,則與房屋位置、面積等相關的資料與訓練相關。 | 資料應該代表原始資料,如訓練資料集中所示,並且在特徵上不應完全偏離。 |
訓練資料應該更大,以便模型能夠很好地擬合,並且不會由於資料不足而導致欠擬合。 | 資料集應該足夠大,以便演算法/模型能夠做出更好的預測並在指標上顯示一些相關結果。 |
例如,假設一個可以預測公司未來銷售額的預測模型。為了構建和學習此模型,它需要過去的歷史資料。這作為訓練資料提供。 | 對於相同的預測模型,可以將一部分歷史資料用於測試。 |

程式碼實現
讓我們看看將資料集拆分為訓練集和測試集的實現,並分析其一些特徵。
資料集 CSVimport pandas as pd from sklearn.model_selection import train_test_split data = pd.read_csv('/content/train_test.csv') X_data = data.iloc[:, :-1] y_data = data.iloc[:, -1] X_train, X_test, y_train, y_test = train_test_split( X_data, y_data, test_size=0.3) print("X Train shape : ",X_train.shape) print("y Train shape : ",y_train.shape) print("X Test shape : ",X_test.shape) print("y Test shape : ",y_train.shape)
輸出
X Train shape : (289, 7) y Train shape : (289,) X Test shape : (125, 7) y Test shape : (289,)
從上述實現中,我們已將原始資料集以 70:30 的比例拆分為訓練集和測試集。資料集通常有 7 個特徵列。Scikit learn 的 train_test_split 函式是一個方便且有用的工具,可以將任何資料集拆分為訓練集和測試集。
結論
訓練集和測試集都是原始資料的一部分。訓練集用於訓練模型,測試資料用於訓練後的模型預測和評估模型在未見資料上的效能。訓練集通常大於測試集,但兩個資料集都應相關且來自同一來源,並具有相似的特徵。
廣告