Hướng dẫn how do you split data into training and testing in dataframe python? - làm thế nào để bạn chia dữ liệu thành đào tạo và thử nghiệm trong dataframe python?

Có nhiều cách để tạo ra một chuyến tàu/thử nghiệm và thậm chí các mẫu xác nhận.

Trường hợp 1: Cổ điển cách

from sklearn.model_selection import KFold
kf = KFold(n_splits=10, random_state=0)
y_hat_all = []
for train_index, test_index in kf.split(X, y):
    reg = RandomForestRegressor(n_estimators=50, random_state=0)
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    clf = reg.fit(X_train, y_train)
    y_hat = clf.predict(X_test)
    y_hat_all.append(y_hat)
0 mà không có bất kỳ tùy chọn nào:

from sklearn.model_selection import train_test_split
train, test = train_test_split(df, test_size=0.3)

Trường hợp 2: Trường hợp của một bộ dữ liệu rất nhỏ (

from sklearn.model_selection import KFold
kf = KFold(n_splits=10, random_state=0)
y_hat_all = []
for train_index, test_index in kf.split(X, y):
    reg = RandomForestRegressor(n_estimators=50, random_state=0)
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    clf = reg.fit(X_train, y_train)
    y_hat = clf.predict(X_test)
    y_hat_all.append(y_hat)

Trường hợp 3a: Bộ dữ liệu không cân bằng cho mục đích phân loại. Theo trường hợp 1, đây là giải pháp tương đương:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, test_size=0.3)

Trường hợp 3B: Bộ dữ liệu không cân bằng cho mục đích phân loại. Theo trường hợp 2, đây là giải pháp tương đương:

from sklearn.model_selection import StratifiedKFold
kf = StratifiedKFold(n_splits=10, random_state=0)
y_hat_all = []
for train_index, test_index in kf.split(X, y):
    reg = RandomForestRegressor(n_estimators=50, random_state=0)
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    clf = reg.fit(X_train, y_train)
    y_hat = clf.predict(X_test)
    y_hat_all.append(y_hat)

Trường hợp 4: Bạn cần tạo một bộ tàu/kiểm tra/xác nhận trên dữ liệu lớn để điều chỉnh siêu âm (tàu 60%, kiểm tra 20% và 20% VAL).

from sklearn.model_selection import train_test_split
X_train, X_test_val, y_train, y_test_val = train_test_split(X, y, test_size=0.6)
X_test, X_val, y_test, y_val = train_test_split(X_test_val, y_test_val, stratify=y, test_size=0.5)

Trong học máy, đó là một thực tế phổ biến để chia dữ liệu của bạn thành hai bộ khác nhau. Hai bộ này là bộ đào tạo và bộ thử nghiệm. Như tên cho thấy, bộ đào tạo được sử dụng để đào tạo mô hình và bộ thử nghiệm được sử dụng để kiểm tra độ chính xác của mô hình.training set and the testing set. As the name suggests, the training set is used for training the model and the testing set is used for testing the accuracy of the model.

Trong hướng dẫn này, chúng tôi sẽ:

  • Đầu tiên, hãy tìm hiểu tầm quan trọng của việc phân tách bộ dữ liệu
  • Sau đó xem cách chia dữ liệu thành hai bộ trong Python

Tại sao chúng ta cần chia dữ liệu thành các bộ đào tạo và thử nghiệm?

Mặc dù đào tạo một mô hình học máy, chúng tôi đang cố gắng tìm một mẫu thể hiện tốt nhất tất cả các điểm dữ liệu với lỗi tối thiểu. Trong khi làm như vậy, hai lỗi phổ biến xuất hiện. Đây là quá mức và thiếu hụt.overfitting and underfitting.

Thiếu hụt

Underfit là khi mô hình thậm chí không thể đại diện cho các điểm dữ liệu trong bộ dữ liệu đào tạo. Trong trường hợp không phù hợp, bạn sẽ có độ chính xác thấp ngay cả khi thử nghiệm trên bộ dữ liệu đào tạo.

Underfit thường có nghĩa là mô hình của bạn quá đơn giản để nắm bắt sự phức tạp của bộ dữ liệu.

Quá mức

Việc quá mức là trường hợp khi mô hình của bạn đại diện cho bộ dữ liệu đào tạo hơi quá chính xác. Điều này có nghĩa là mô hình của bạn phù hợp quá chặt chẽ. Trong trường hợp quá mức, mô hình của bạn sẽ không thể thực hiện tốt trên dữ liệu chưa từng thấy mới. Quá mức thường là một dấu hiệu của mô hình quá phức tạp.

Cả hai đều phù hợp và không phù hợp là không mong muốn.undesirable.

Chúng ta có nên kiểm tra dữ liệu đào tạo không?

Lý tưởng nhất, bạn không nên kiểm tra dữ liệu đào tạo. Mô hình của bạn có thể quá mức tập huấn luyện và do đó sẽ thất bại trên dữ liệu mới.

Độ chính xác tốt trong bộ dữ liệu đào tạo có thể đảm bảo sự thành công của mô hình của bạn trên dữ liệu chưa từng thấy.

Đây là lý do tại sao nên giữ dữ liệu đào tạo tách biệt với dữ liệu thử nghiệm.

Ý tưởng cơ bản là sử dụng tập kiểm tra được đặt dưới dạng dữ liệu chưa từng thấy.

Sau khi đào tạo dữ liệu của bạn về bộ đào tạo, bạn nên kiểm tra mô hình của mình trên bộ thử nghiệm.

Nếu mô hình của bạn hoạt động tốt trên bộ thử nghiệm, bạn có thể tự tin hơn về mô hình của mình.

Tỷ lệ phân chia phổ biến nhất là 80:20. 80:20.

Đó là 80% bộ dữ liệu đi vào tập huấn luyện và 20% bộ dữ liệu đi vào bộ thử nghiệm.

Trước khi chia dữ liệu, hãy đảm bảo rằng bộ dữ liệu đủ lớn. Phân chia tàu/thử nghiệm hoạt động tốt với các bộ dữ liệu lớn.

Hãy để có được bàn tay của chúng tôi bẩn với một số mã.

1. Nhập toàn bộ bộ dữ liệu

Chúng tôi đang sử dụng bộ dữ liệu nhà ở & nbsp; California cho toàn bộ hướng dẫn.

Hãy để bắt đầu với việc nhập dữ liệu vào khung dữ liệu bằng cách sử dụng & nbsp; gấu trúc.

Bạn có thể cài đặt gấu trúc bằng lệnh PIP:

Nhập bộ dữ liệu vào DataFrame Pandas bằng cách sử dụng:

import pandas as pd
housing = pd.read_csv("/sample_data/california_housing.csv")
housing.head()

Hướng dẫn how do you split data into training and testing in dataframe python? - làm thế nào để bạn chia dữ liệu thành đào tạo và thử nghiệm trong dataframe python?
Nhà ở DataFrame

Hãy để đối xử với cột trung bình_income là đầu ra (y).

Đồng thời chúng ta sẽ phải thả cột từ bộ dữ liệu để tạo thành vectơ đầu vào.

x=housing.drop('median_income',axis=1)

Bạn có thể sử dụng phương thức .head () trong gấu trúc để xem đầu vào và đầu ra trông như thế nào.

Hướng dẫn how do you split data into training and testing in dataframe python? - làm thế nào để bạn chia dữ liệu thành đào tạo và thử nghiệm trong dataframe python?
Đầu vào x

Hướng dẫn how do you split data into training and testing in dataframe python? - làm thế nào để bạn chia dữ liệu thành đào tạo và thử nghiệm trong dataframe python?
Đầu ra y

Bây giờ chúng tôi đã sẵn sàng các vectơ đầu vào và đầu ra, chúng tôi có thể chia dữ liệu thành các bộ đào tạo và thử nghiệm.

2. Tách dữ liệu bằng Sklearn

Để phân chia dữ liệu, chúng tôi sẽ sử dụng Train_Test_Split từ Sklearn.train_test_split from sklearn.

Train_Test_Split phân phối ngẫu nhiên dữ liệu của bạn vào tập huấn luyện và kiểm tra theo tỷ lệ được cung cấp.

Hãy để xem cách nó được thực hiện trong Python.

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2)

Ở đây chúng tôi đang sử dụng tỷ lệ phân chia là 80:20. Bộ dữ liệu thử nghiệm 20% được biểu thị bằng 0,2 ở cuối.

Để so sánh hình dạng của các bộ thử nghiệm và đào tạo khác nhau, hãy sử dụng đoạn mã sau:

print("shape of original dataset :", housing.shape)
print("shape of input - training set", x_train.shape)
print("shape of output - training set", y_train.shape)
print("shape of input - testing set", x_test.shape)
print("shape of output - testing set", y_test.shape)

Điều này cho đầu ra sau.

Hướng dẫn how do you split data into training and testing in dataframe python? - làm thế nào để bạn chia dữ liệu thành đào tạo và thử nghiệm trong dataframe python?

Mã hoàn chỉnh

Mã hoàn chỉnh cho dữ liệu đào tạo và thử nghiệm chia tách này như sau:

import pandas as pd
housing = pd.read_csv("/sample_data/california_housing.csv")
print(housing.head())

#output
y= housing.median_income

#input
x=housing.drop('median_income',axis=1)

#splitting
x_train,x_teinst,y_train,y_test=train_test_split(x,y,test_size=0.2)

#printing shapes of testing and training sets :
print("shape of original dataset :", housing.shape)
print("shape of input - training set", x_train.shape)
print("shape of output - training set", y_train.shape)
print("shape of input - testing set", x_test.shape)
print("shape of output - testing set", y_test.shape)

Sự kết luận

Trong hướng dẫn này, chúng tôi đã tìm hiểu về tầm quan trọng của việc chia dữ liệu vào các bộ đào tạo và thử nghiệm. Hơn nữa, chúng tôi đã nhập một bộ dữ liệu vào một khung dữ liệu gấu trúc và sau đó sử dụng sklearn để chia dữ liệu thành các bộ đào tạo và thử nghiệm.sklearn to split the data into training and testing sets.

Làm thế nào để bạn chia một chuyến tàu và kiểm tra dữ liệu dữ liệu trong Python?

Làm thế nào để phân chia các bộ dữ liệu đào tạo và kiểm tra trong Python ?..
Nhập toàn bộ bộ dữ liệu. Chúng tôi đang sử dụng bộ dữ liệu nhà ở California cho toàn bộ hướng dẫn. Hãy bắt đầu với việc nhập dữ liệu vào khung dữ liệu bằng gấu trúc. ....
Chia dữ liệu bằng Sklearn. Để phân chia dữ liệu, chúng tôi sẽ sử dụng Train_Test_Split từ Sklearn ..

Làm thế nào để bạn chia dữ liệu thành đào tạo và thử nghiệm bằng thủ công Python?

Cách đơn giản nhất để chia bộ dữ liệu mô hình hóa thành các bộ đào tạo và thử nghiệm là gán 2/3 điểm dữ liệu cho cái trước và một phần ba còn lại cho cái sau.Do đó, chúng tôi đào tạo mô hình bằng cách sử dụng tập huấn luyện và sau đó áp dụng mô hình vào tập kiểm tra.Theo cách này, chúng tôi có thể đánh giá hiệu suất của mô hình của chúng tôi.assign 2/3 data points to the former and the remaining one-third to the latter. Therefore, we train the model using the training set and then apply the model to the test set. In this way, we can evaluate the performance of our model.

Làm thế nào để bạn chia dữ liệu thành đào tạo và thử nghiệm trong Python mà không cần Sklearn?

Cách chia dữ liệu thành đào tạo và thử nghiệm trong Python mà không có .....
Nhập các gói ..
Tải dữ liệu ..
Xáo trộn bộ dữ liệu ..
Chia bộ dữ liệu ..

Tại sao chúng ta chia dữ liệu thành đào tạo và thử nghiệm được đặt trong Python?

Chúng ta cần chia một bộ dữ liệu thành các bộ đào tạo và thử nghiệm để đánh giá mô hình học máy của chúng ta hoạt động tốt như thế nào.Bộ tàu được sử dụng để phù hợp với mô hình và số liệu thống kê của bộ tàu được biết đến.Bộ thứ hai được gọi là tập dữ liệu thử nghiệm, tập hợp này chỉ được sử dụng để dự đoán.to evaluate how well our machine learning model performs. The train set is used to fit the model, and the statistics of the train set are known. The second set is called the test data set, this set is solely used for predictions.