Hướng dẫn how do you split a dataset into a train and test in python? - làm thế nào để bạn tách một tập dữ liệu thành một chuyến tàu và kiểm tra trong python?

Cách chia bộ dữ liệu thành các bộ đào tạo và thử nghiệm với Python

Khám phá ba cách tạo mẫu tàu và thử nghiệm ra khỏi bộ dữ liệu mô hình hóa

Ảnh của Siora Photography trên unplash

Trong bối cảnh học máy, việc phân chia bộ dữ liệu mô hình hóa của chúng tôi thành các mẫu đào tạo và thử nghiệm có lẽ là một trong những bước xử lý trước sớm nhất mà chúng tôi cần thực hiện. Việc tạo ra các mẫu khác nhau để đào tạo và thử nghiệm giúp chúng tôi đánh giá hiệu suất mô hình.

Trong bài viết này, chúng tôi sẽ thảo luận về mục đích đào tạo và thử nghiệm các mẫu trong bối cảnh mô hình hóa và đào tạo mô hình. Ngoài ra. Chúng tôi sẽ khám phá ba cách dễ dàng mà người ta có thể sử dụng để tạo ra các mẫu như vậy bằng Python và Pandas. Cụ thể hơn, chúng tôi sẽ giới thiệu cách tạo các mẫu đào tạo và thử nghiệm:

  • Sử dụng scikit-learn (còn gọi sklearn) train_test_split()
  • Sử dụng hàm numpy của randn()
  • hoặc với phương pháp pandas tích hợp được gọi là sample()

Tại sao chúng ta cần các mẫu đào tạo và thử nghiệm

Một vấn đề rất phổ biến khi đào tạo một mô hình là quá mức. Hiện tượng này xảy ra khi một mô hình thực hiện thực sự tốt về dữ liệu mà chúng tôi đã sử dụng để đào tạo nó nhưng nó không khái quát hóa tốt các điểm dữ liệu mới, không nhìn thấy. Có rất nhiều lý do tại sao điều này có thể xảy ra - nó có thể là do tiếng ồn trong dữ liệu hoặc có thể là mô hình học được để dự đoán các đầu vào cụ thể thay vì các tham số dự đoán có thể giúp nó đưa ra dự đoán chính xác. Thông thường, độ phức tạp của một mô hình càng cao thì cơ hội nó sẽ bị quá tải càng cao.overfitting. This phenomenon occurs when a model performs really well on the data that we used to train it but it fails to generalise well to new, unseen data points. There are numerous reasons why this can happen — it could be due to the noise in data or it could be that the model learned to predict specific inputs rather than the predictive parameters that could help it make correct predictions. Typically, the higher the complexity of a model the higher the chance that it will be overfitted.

Mặt khác, sự thiếu hụt xảy ra khi mô hình có hiệu suất kém ngay cả trên dữ liệu được sử dụng để đào tạo nó. Trong hầu hết các trường hợp, sự thiếu hụt xảy ra vì mô hình không phù hợp với vấn đề bạn đang cố gắng giải quyết. Thông thường, điều này có nghĩa là mô hình ít phức tạp hơn yêu cầu để tìm hiểu các tham số có thể được chứng minh là dự đoán.underfitting occurs when the model has poor performance even on the data that was used to train it. In most cases, underfitting occurs because the model is not suitable for the problem you are trying to solve. Usually, this means that the model is less complex than required in order to learn those parameters that can be proven to be predictive.

Tạo các mẫu dữ liệu khác nhau để đào tạo và thử nghiệm mô hình là cách tiếp cận phổ biến nhất có thể được sử dụng để xác định các loại vấn đề này. Theo cách này, chúng tôi có thể sử dụng tập huấn luyện để đào tạo mô hình của chúng tôi và sau đó coi bộ thử nghiệm như một tập hợp các điểm dữ liệu sẽ giúp chúng tôi đánh giá xem mô hình có thể khái quát tốt cho dữ liệu mới, không thấy hay không.

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. Ví dụ, nếu độ chính xác đào tạo là cực kỳ cao trong khi độ chính xác của thử nghiệm kém thì đây là một chỉ số tốt cho thấy mô hình có thể bị quá tải.

Lưu ý rằng việc chia bộ dữ liệu vào các bộ đào tạo và thử nghiệm không phải là hành động duy nhất có thể được yêu cầu để tránh các hiện tượng như quá mức. Chẳng hạn, nếu cả bộ đào tạo và thử nghiệm đều chứa các mẫu không tồn tại trong dữ liệu trong thế giới thực thì mô hình vẫn sẽ có hiệu suất kém mặc dù chúng tôi sẽ có thể quan sát nó từ đánh giá hiệu suất.

Trên một lưu ý thứ hai, bạn nên lưu ý rằng có một số tình huống nhất định bạn nên xem xét tạo một bộ bổ sung có tên là bộ xác thực. Bộ xác nhận thường được yêu cầu khi ngoài hiệu suất mô hình, chúng tôi cũng cần chọn trong số nhiều mô hình và đánh giá mô hình nào hoạt động tốt hơn.validation set. The validation set is usually required when apart from model performance we also need to choose among many models and evaluate which model performs better.

Trong phần này, chúng tôi sẽ khám phá ba cách khác nhau mà người ta có thể sử dụng để tạo ra các bộ đào tạo và thử nghiệm. Trước khi nhảy vào các cách tiếp cận này, hãy để tạo ra một bộ dữ liệu giả sẽ sử dụng cho mục đích trình diễn. Trong các ví dụ dưới đây, chúng tôi sẽ giả định rằng chúng tôi có một bộ dữ liệu được lưu trữ trong bộ nhớ dưới dạng gấu trúc DataFrame. Bộ dữ liệu IRIS chứa 150 điểm dữ liệu, mỗi điểm có bốn tính năng.

Trong các ví dụ dưới đây, chúng tôi sẽ giả định rằng chúng tôi cần tỷ lệ 80:20 để đào tạo: Bộ thử nghiệm.

Sử dụng gấu trúc

Tùy chọn đầu tiên là sử dụng phương pháp Pandas DataFrames, sample():

Trả về một mẫu ngẫu nhiên của các mục từ một trục của đối tượng.

Bạn có thể sử dụng Random_state để tái sản xuất

Ban đầu, chúng tôi tạo ra tập huấn luyện bằng cách lấy một mẫu với một phần nhỏ 0,8 từ các hàng tổng thể trong khung dữ liệu gấu trúc. Lưu ý rằng chúng tôi cũng xác định random_state tương ứng với hạt giống, do đó kết quả có thể tái sản xuất. Sau đó, chúng tôi tạo bộ thử nghiệm bằng cách bỏ các chỉ số tương ứng từ DataFrame gốc hiện được bao gồm trong bộ đào tạo.

Như chúng ta có thể thấy, bộ đào tạo chứa 120 ví dụ, phù hợp với phân số mà chúng tôi yêu cầu khi lấy mẫu dữ liệu mô hình hóa ban đầu. 30 ví dụ còn lại được đóng gói vào bộ thử nghiệm.

Sử dụng Scikit-learn

Tùy chọn thứ hai - và có thể được sử dụng phổ biến nhất - là việc sử dụng phương pháp của sklearn được gọi là train_test_split():

Tách các mảng hoặc ma trận thành các tập hợp con và kiểm tra ngẫu nhiên

Chúng tôi có thể tạo cả các bộ đào tạo và thử nghiệm trong một lớp một bằng cách chuyển sang train_test_split() Mô hình hóa dữ liệu cùng với phần của các ví dụ cần được đưa vào tập kiểm tra. Như trước đây, chúng tôi cũng đặt random_state để kết quả có thể tái tạo, đó là mỗi khi chúng tôi chạy mã, các trường hợp tương tự sẽ được đưa vào các bộ đào tạo và kiểm tra tương ứng. Phương pháp trả về một tuple với hai khung dữ liệu có chứa các ví dụ đào tạo và kiểm tra.

Sử dụng Numpy

Cuối cùng, một cách ít được sử dụng để tạo các mẫu thử nghiệm và đào tạo là với phương pháp numpy randn():

Trả lại một mẫu (hoặc mẫu) từ phân phối tiêu chuẩn bình thường của người dùng.

Trước tiên, chúng tôi tạo sklearn5, một mảng numpy chứa các giá trị boolean được tính toán bằng cách so sánh một số float ngẫu nhiên trong phạm vi từ 0 đến 1 với phân số chúng tôi muốn giữ cho tập huấn luyện. Sau đó, chúng tôi tạo ra các mẫu đào tạo và thử nghiệm bằng cách lọc dữ liệu phù hợp. Tuy nhiên, lưu ý rằng phương pháp này sẽ xấp xỉ với khẩu phần 80:20 có nghĩa là số lượng ví dụ được bao gồm trong các mẫu đào tạo và thử nghiệm won nhất thiết phải chính xác như hai phương pháp chúng tôi đã thảo luận trước đó trong bài viết này.approximately give a 80:20 ration meaning that the number of examples included in training and testing samples won’t be necessarily as accurate as the two methods we discussed earlier in this article.

Cái gì tiếp theo?

Bây giờ bạn đã tạo ra các bộ đào tạo và thử nghiệm ra khỏi bộ dữ liệu mô hình ban đầu của bạn, bạn cũng có thể cần thực hiện các bước xử lý trước như mở rộng hoặc chuẩn hóa. Bạn phải cẩn thận khi làm như vậy, vì bạn cần tránh đưa thông tin trong tương lai vào bộ đào tạo của bạn. Điều này có nghĩa là một số hành động nhất định cần được áp dụng trước trong tập huấn luyện và sau đó sử dụng các tham số đã học từ bước đó để áp dụng chúng khi kiểm tra tập hợp. Để giải thích toàn diện hơn về chủ đề này, bạn có thể đọc bài viết dưới đây.

Sự kết luận

Trong bài viết này, chúng tôi đã khám phá tầm quan trọng của việc chia bộ dữ liệu mô hình ban đầu của chúng tôi vào các mẫu đào tạo và thử nghiệm. Hơn nữa, chúng tôi đã thảo luận về cách các bộ này có thể giúp chúng tôi xác định xem mô hình của chúng tôi đã bị quá tải hay thiếu. Cuối cùng, chúng tôi đã thấy trong hành động làm thế nào để thực hiện sự chia rẽ này với Python và Pandas theo ba cách khác nhau; Sử dụng sklearn6, sklearn7 và sklearn8.

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

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 một bộ dữ liệu trong Python?

Scikit Tìm hiểu dữ liệu phân chia..
x, y = num. ....
mảng = () được sử dụng để xác định mảng ..
Danh sách (y) được sử dụng để in danh sách dữ liệu trên màn hình ..
X_TRAIN, X_TEST, Y_TRAIN, Y_TEST = Train_Test_Split (X, Y, Test_Size = 0.33, Random_State = 42) được sử dụng để chia dữ liệu dữ liệu thành Train và Test Data Set ..

Làm thế nào để bạn chia dữ liệu thành đào tạo và thử nghiệm trong Python với Sklearn?

Phương thức Train_Test_Split () được sử dụng để chia dữ liệu của chúng tôi thành các bộ đào tạo và thử nghiệm.Đầu tiên, chúng ta cần chia dữ liệu của mình thành các tính năng (x) và nhãn (y).DataFrame được chia thành X_Train, X_Test, Y_Train và Y_Test.Các bộ x_train và Y_Train được sử dụng để đào tạo và lắp mô hình.. First, we need to divide our data into features (X) and labels (y). The dataframe gets divided into X_train,X_test , y_train and y_test. X_train and y_train sets are used for training and fitting the model.

Phân chia thử nghiệm tàu trong Python là gì?

Phân chia thử nghiệm tàu được sử dụng để ước tính hiệu suất của các thuật toán học máy được áp dụng cho các thuật toán/ứng dụng dựa trên dự đoán.Phương pháp này là một quy trình nhanh chóng và dễ dàng để thực hiện sao cho chúng ta có thể so sánh kết quả mô hình học máy của riêng mình với kết quả máy.used to estimate the performance of machine learning algorithms that are applicable for prediction-based Algorithms/Applications. This method is a fast and easy procedure to perform such that we can compare our own machine learning model results to machine results.