Tại sao chúng ta chia dữ liệu thành tập huấn luyện và kiểm tra trong python?

Để đào tạo và kiểm tra dữ liệu, chúng tôi cần hai bộ dữ liệu khác nhau. Bộ kiểm tra hoạt động như bộ dữ liệu hoàn toàn mới cho mô hình và sử dụng để dự đoán đầu ra. Nhưng nếu chúng tôi có một bộ dữ liệu sửa lỗi được cung cấp thì cách tạo dữ liệu kiểm tra và huấn luyện này

Vì vậy, đây là công thức về cách chúng ta có thể phân tách dữ liệu thử nghiệm đào tạo bằng sklearn và python

Nắm vững nghệ thuật làm sạch dữ liệu trong học máy

Bước 1 - Nhập thư viện

from sklearn import datasets from sklearn.model_selection import train_test_split

Chúng tôi chỉ nhập gấu trúc cần thiết

Bước 2 - Thiết lập dữ liệu

Chúng tôi đã nhập bộ dữ liệu rượu có sẵn để sử dụng test_train_split. Chúng tôi đã lưu trữ dữ liệu trong X và mục tiêu trong y. Chúng tôi cũng đã in hình dạng của dữ liệu.

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

Bước 3 - Tách dữ liệu

Vì vậy, bây giờ chúng tôi đang sử dụng test_train_split để phân chia dữ liệu. Chúng tôi đã vượt qua test_size là 0. 33 có nghĩa là 33% dữ liệu sẽ nằm trong phần thử nghiệm và phần còn lại sẽ nằm trong phần đào tạo. Tham số random_state biểu thị việc chia dữ liệu ngẫu nhiên thành hai phần. Cuối cùng, chúng tôi đã in hình dạng của dữ liệu kiểm tra và huấn luyện.

import pandas as pd
housing = pd.read_csv("/sample_data/california_housing.csv")
housing.head()
1 Vì vậy, đầu ra đến

Trong học máy, thông thường chia dữ liệu của bạn thành hai bộ khác nhau. Hai tập này là tập huấn luyện và tập kiểm tra. Như tên cho thấy, tập huấn luyện được sử dụng để đào tạo mô hình và tập kiểm tra được sử dụng để kiểm tra độ chính xác của mô hình

Trong hướng dẫn này, chúng ta sẽ

  • trước tiên, hãy tìm hiểu tầm quan trọng của việc chia nhỏ 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 tập huấn luyện và kiểm tra?

Trong khi đà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à trang phục thừa và trang phục thiếu

đồ lót

Thiếu trang bị là khi mô hình thậm chí không thể biểu thị các điểm dữ liệu trong tập dữ liệu huấn luyện. Trong trường hợp under-fitting, bạn sẽ nhận được độ chính xác thấp ngay cả khi test trên tập dữ liệu huấn luyện

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

trang bị quá mức

Overfitting là trường hợp khi mô hình của bạn đại diện cho tập dữ liệu huấn luyện hơi quá chính xác. Điều này có nghĩa là mô hình của bạn quá khớp. Trong trường hợp trang bị quá mức, mô hình của bạn sẽ không thể hoạt động tốt trên dữ liệu mới chưa nhìn thấy. Trang bị quá mức thường là dấu hiệu của mô hình quá phức tạp

Cả trang phục quá mức và trang phục không phù hợp đều là điều không mong muốn

Chúng ta có nên thử nghiệm trên dữ liệu huấn luyện không?

Tốt nhất, bạn không nên kiểm tra dữ liệu huấn luyện. Mô hình của bạn có thể phù hợp với tập huấn luyện và do đó sẽ không thành công trên dữ liệu mới

Độ chính xác cao trong tập dữ liệu huấn luyện không thể đảm bảo thành công cho mô hình của bạn trên dữ liệu không nhìn thấy

Đây là lý do tại sao nên tách dữ liệu đào tạo khỏi dữ liệu thử nghiệm

Ý tưởng cơ bản là sử dụng bộ thử nghiệm dưới dạng dữ liệu chưa nhìn thấy

Sau khi huấn luyện dữ liệu của bạn trên tập huấn luyện, bạn nên kiểm tra mô hình của mình trên tập kiểm tra

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

Làm cách nào để phân chia tập dữ liệu đào tạo và thử nghiệm trong Python?

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

Đó là 80% tập dữ liệu được đưa vào tập huấn luyện và 20% tập dữ liệu được đưa vào tập kiểm tra

Trước khi tách dữ liệu, đảm bảo rằng tập dữ liệu đủ lớn. Phân tách đào tạo/kiểm tra hoạt động tốt với các bộ dữ liệu lớn

Hãy bắt tay với một số mã

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

Chúng tôi đang sử dụng tập 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 Pandas

Bạn có thể cài đặt pandas bằng lệnh pip

pip install pandas

Nhập tập dữ liệu vào Dataframe gấu trúc bằng cách sử dụng

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

Tại sao chúng ta chia dữ liệu thành tập huấn luyện và kiểm tra trong python?
Khung dữ liệu nhà ở

Hãy coi cột median_ income là đầu ra (Y)

y= housing.median_income

Đồng thời, chúng tôi sẽ phải xóa cột khỏi tập dữ liệu để tạo thành vectơ đầu vào

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

Bạn có thể dùng. head() trong Pandas để xem đầu vào và đầu ra trông như thế nào

x.head()

Tại sao chúng ta chia dữ liệu thành tập huấn luyện và kiểm tra trong python?
Nhập X

y.head()

Tại sao chúng ta chia dữ liệu thành tập huấn luyện và kiểm tra trong 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 tập huấn luyện và kiểm tra

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

Để phân tách dữ liệu, chúng tôi sẽ sử dụng train_test_split từ 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 nó được thực hiện như thế nào 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. Tập 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 tập kiểm tra và huấn luyện 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 mang lại đầu ra sau

Tại sao chúng ta chia dữ liệu thành tập huấn luyện và kiểm tra trong python?

Mã hoàn chỉnh

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

________số 8

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu về tầm quan trọng của việc chia nhỏ dữ liệu thành các tập huấn luyện và kiểm tra. Hơn nữa, chúng tôi đã nhập tập dữ liệu vào Dataframe của gấu trúc và sau đó sử dụng sklearn để chia dữ liệu thành các tập huấn luyện và kiểm tra