Tạo tập huấn luyện và kiểm tra trong python

Một trong những khía cạnh quan trọng của học máy có giám sát là đánh giá và xác nhận mô hình. Khi bạn đánh giá hiệu suất dự đoán của mô hình, điều cần thiết là quy trình phải không thiên vị. Sử dụng

$ conda install -c anaconda scikit-learn=0.23
7 từ scikit-learning của thư viện khoa học dữ liệu, bạn có thể chia tập dữ liệu của mình thành các tập hợp con để giảm thiểu khả năng sai lệch trong quy trình đánh giá và xác thực của bạn

Trong hướng dẫn này, bạn sẽ học

  • Tại sao bạn cần chia tập dữ liệu của mình trong học máy có giám sát
  • Tập hợp con nào của tập dữ liệu bạn cần để đánh giá khách quan về mô hình của mình
  • Cách sử dụng
    $ conda install -c anaconda scikit-learn=0.23
    
    7 để phân chia dữ liệu của bạn
  • Cách kết hợp
    $ conda install -c anaconda scikit-learn=0.23
    
    7 với các phương pháp dự đoán

Ngoài ra, bạn sẽ nhận được thông tin về các công cụ liên quan từ

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
0

Tiền thưởng miễn phí. Nhấp vào đây để có quyền truy cập vào Hướng dẫn tài nguyên NumPy miễn phí chỉ cho bạn các hướng dẫn, video và sách tốt nhất để cải thiện kỹ năng NumPy của bạn

Tầm quan trọng của việc chia nhỏ dữ liệu

Học máy có giám sát là tạo ra các mô hình ánh xạ chính xác các đầu vào đã cho (các biến độc lập hoặc yếu tố dự đoán) với các đầu ra đã cho (biến phụ thuộc hoặc phản hồi)

Cách bạn đo lường độ chính xác của mô hình tùy thuộc vào loại sự cố mà bạn đang cố gắng giải quyết. Trong phân tích hồi quy, bạn thường sử dụng hệ số xác định, sai số trung bình bình phương gốc, sai số tuyệt đối trung bình hoặc các đại lượng tương tự. Đối với các bài toán phân loại, các bạn thường áp dụng các chỉ số về độ chính xác, độ chính xác, độ thu hồi, điểm F1 và các chỉ số liên quan

Các giá trị số được chấp nhận để đo độ chính xác khác nhau giữa các trường. Bạn có thể tìm giải thích chi tiết từ Statistics By Jim, Quora, và nhiều nguồn khác

Điều quan trọng nhất cần hiểu là bạn thường cần đánh giá khách quan để sử dụng đúng các biện pháp này, đánh giá hiệu suất dự đoán của mô hình và xác thực mô hình

Điều này có nghĩa là bạn không thể đánh giá hiệu suất dự đoán của một mô hình với cùng dữ liệu bạn đã sử dụng để đào tạo. Bạn cần đánh giá mô hình bằng dữ liệu mới mà mô hình chưa từng thấy trước đây. Bạn có thể thực hiện điều đó bằng cách tách tập dữ liệu của mình trước khi sử dụng

Loại bỏ các quảng cáo

Bộ đào tạo, xác nhận và kiểm tra

Việc chia nhỏ tập dữ liệu của bạn là điều cần thiết để đánh giá khách quan về hiệu suất dự đoán. Trong hầu hết các trường hợp, chỉ cần chia ngẫu nhiên tập dữ liệu của bạn thành ba tập hợp con là đủ

  1. Tập huấn luyện được áp dụng để huấn luyện hoặc khớp với mô hình của bạn. Ví dụ: bạn sử dụng tập huấn luyện để tìm các trọng số hoặc hệ số tối ưu cho hồi quy tuyến tính, hồi quy logistic hoặc mạng thần kinh

  2. Bộ xác thực được sử dụng để đánh giá mô hình khách quan trong quá trình điều chỉnh siêu tham số. Ví dụ: khi bạn muốn tìm số nơ-ron tối ưu trong mạng nơ-ron hoặc hạt nhân tốt nhất cho máy vectơ hỗ trợ, bạn thử nghiệm với các giá trị khác nhau. Đối với mỗi cài đặt được xem xét của siêu tham số, bạn điều chỉnh mô hình bằng tập huấn luyện và đánh giá hiệu suất của mô hình bằng tập xác thực

  3. Bộ thử nghiệm là cần thiết để đánh giá khách quan về mô hình cuối cùng. Bạn không nên sử dụng nó để điều chỉnh hoặc xác nhận

Trong các trường hợp ít phức tạp hơn, khi bạn không phải điều chỉnh siêu đường kính, bạn chỉ có thể làm việc với tập huấn luyện và tập kiểm tra

Mặc thiếu và mặc quá nhiều

Việc tách một tập dữ liệu cũng có thể quan trọng để phát hiện xem mô hình của bạn có gặp phải một trong hai vấn đề rất phổ biến hay không, được gọi là trang bị thiếu và trang bị quá mức

  1. Trang bị thiếu thường là hậu quả của việc một mô hình không thể gói gọn các mối quan hệ giữa các dữ liệu. Ví dụ: điều này có thể xảy ra khi cố gắng biểu diễn các mối quan hệ phi tuyến tính bằng một mô hình tuyến tính. Các mô hình không phù hợp có thể sẽ có hiệu suất kém với cả tập huấn luyện và tập kiểm tra

  2. Việc trang bị quá mức thường diễn ra khi một mô hình có cấu trúc quá phức tạp và học cả mối quan hệ hiện có giữa dữ liệu và nhiễu. Những mô hình như vậy thường có khả năng khái quát hóa kém. Mặc dù chúng hoạt động tốt với dữ liệu đào tạo, nhưng chúng thường mang lại hiệu suất kém với dữ liệu (thử nghiệm) không nhìn thấy được

Bạn có thể tìm thấy lời giải thích chi tiết hơn về trang bị thiếu và trang bị quá mức trong Hồi quy tuyến tính trong Python

Điều kiện tiên quyết để sử dụng $ conda install -c anaconda scikit-learn=0.23 7

Bây giờ bạn đã hiểu sự cần thiết phải phân tách tập dữ liệu để thực hiện đánh giá mô hình khách quan và xác định trang bị thiếu hoặc trang bị thừa, bạn đã sẵn sàng tìm hiểu cách phân tách tập dữ liệu của riêng mình

Bạn sẽ sử dụng phiên bản 0. 23. 1 của scikit-learning, hoặc

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
2. Nó có nhiều gói dành cho khoa học dữ liệu và máy học, nhưng đối với hướng dẫn này, bạn sẽ tập trung vào gói
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
3, cụ thể là hàm
$ conda install -c anaconda scikit-learn=0.23
7

Bạn có thể cài đặt

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
2 với
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
6

$ conda install -c anaconda scikit-learn=0.23
0

Nếu bạn sử dụng Anaconda, thì có thể bạn đã cài đặt nó rồi. Tuy nhiên, nếu bạn muốn sử dụng một môi trường mới, hãy đảm bảo rằng bạn có phiên bản được chỉ định hoặc sử dụng Miniconda, thì bạn có thể cài đặt

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
2 từ Anaconda Cloud với
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
8

$ conda install -c anaconda scikit-learn=0.23

Bạn cũng sẽ cần NumPy, nhưng bạn không phải cài đặt riêng. Bạn nên cài đặt nó cùng với

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
2 nếu bạn chưa cài đặt nó. Nếu bạn muốn làm mới kiến ​​thức về NumPy của mình, hãy xem tài liệu chính thức hoặc xem Look Ma, No For-Loops. Lập trình mảng với NumPy

Ứng dụng của $ conda install -c anaconda scikit-learn=0.23 7

Bạn cần nhập

$ conda install -c anaconda scikit-learn=0.23
7 và NumPy trước khi có thể sử dụng chúng, vì vậy bạn có thể bắt đầu với các câu lệnh
$ conda install -c anaconda scikit-learn=0.23
72

>>>

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split

Bây giờ bạn đã nhập cả hai, bạn có thể sử dụng chúng để chia dữ liệu thành tập huấn luyện và tập kiểm tra. Bạn sẽ phân chia đầu vào và đầu ra cùng một lúc, với một lệnh gọi hàm duy nhất

Với

$ conda install -c anaconda scikit-learn=0.23
7, bạn cần cung cấp các chuỗi mà bạn muốn tách cũng như bất kỳ đối số tùy chọn nào. Nó trả về một danh sách các mảng NumPy, các chuỗi khác hoặc ma trận thưa thớt SciPy nếu thích hợp

$ conda install -c anaconda scikit-learn=0.23
7

$ conda install -c anaconda scikit-learn=0.23
74 là chuỗi các danh sách, mảng NumPy, DataFrames của gấu trúc hoặc các đối tượng giống như mảng tương tự chứa dữ liệu bạn muốn phân tách. Tất cả các đối tượng này cùng nhau tạo nên tập dữ liệu và phải có cùng độ dài

Trong các ứng dụng học máy được giám sát, thông thường bạn sẽ làm việc với hai trình tự như vậy

  1. Một mảng hai chiều với các đầu vào (
    $ conda install -c anaconda scikit-learn=0.23
    
    75)
  2. Mảng một chiều có đầu ra (______176)

$ conda install -c anaconda scikit-learn=0.23
77 là các đối số từ khóa tùy chọn mà bạn có thể sử dụng để có được hành vi mong muốn

  • $ conda install -c anaconda scikit-learn=0.23
    
    78 là số xác định kích thước của tập huấn luyện. Nếu bạn cung cấp một
    $ conda install -c anaconda scikit-learn=0.23
    
    79, thì nó phải nằm trong khoảng từ
    $ conda install -c anaconda scikit-learn=0.23
    
    70 đến
    $ conda install -c anaconda scikit-learn=0.23
    
    71 và sẽ xác định phần chia sẻ của tập dữ liệu được sử dụng để thử nghiệm. Nếu bạn cung cấp
    $ conda install -c anaconda scikit-learn=0.23
    
    72, thì nó sẽ đại diện cho tổng số mẫu đào tạo. Giá trị mặc định là
    $ conda install -c anaconda scikit-learn=0.23
    
    73

  • $ conda install -c anaconda scikit-learn=0.23
    
    74 là số xác định kích thước của bộ kiểm tra. Nó rất giống với
    $ conda install -c anaconda scikit-learn=0.23
    
    78. Bạn nên cung cấp
    $ conda install -c anaconda scikit-learn=0.23
    
    78 hoặc
    $ conda install -c anaconda scikit-learn=0.23
    
    74. Nếu không được cung cấp, thì phần chia sẻ mặc định của tập dữ liệu sẽ được sử dụng để thử nghiệm là
    $ conda install -c anaconda scikit-learn=0.23
    
    78 hoặc 25 phần trăm

  • $ conda install -c anaconda scikit-learn=0.23
    
    79 là đối tượng kiểm soát ngẫu nhiên hóa trong quá trình phân tách. Nó có thể là một
    $ conda install -c anaconda scikit-learn=0.23
    
    72 hoặc một thể hiện của
    >>> import numpy as np
    >>> from sklearn.model_selection import train_test_split
    
    81. Giá trị mặc định là
    $ conda install -c anaconda scikit-learn=0.23
    
    73

  • >>> import numpy as np
    >>> from sklearn.model_selection import train_test_split
    
    83 là đối tượng Boolean (
    >>> import numpy as np
    >>> from sklearn.model_selection import train_test_split
    
    84 theo mặc định) xác định xem có xáo trộn tập dữ liệu trước khi áp dụng phân tách hay không

  • >>> import numpy as np
    >>> from sklearn.model_selection import train_test_split
    
    85 là một đối tượng giống như mảng, nếu không phải là
    $ conda install -c anaconda scikit-learn=0.23
    
    73, xác định cách sử dụng phân chia tầng

Bây giờ là lúc thử tách dữ liệu. Bạn sẽ bắt đầu bằng cách tạo một tập dữ liệu đơn giản để làm việc với. Bộ dữ liệu sẽ chứa các đầu vào trong mảng hai chiều

$ conda install -c anaconda scikit-learn=0.23
75 và đầu ra trong mảng một chiều
$ conda install -c anaconda scikit-learn=0.23
76

>>>

$ conda install -c anaconda scikit-learn=0.23
7

Để lấy dữ liệu, bạn sử dụng

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
89, rất thuận tiện để tạo mảng dựa trên dãy số. Bạn cũng sử dụng
$ conda install -c anaconda scikit-learn=0.23
80 để sửa đổi hình dạng của mảng được trả về bởi
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
89 và nhận cấu trúc dữ liệu hai chiều

Bạn có thể tách cả bộ dữ liệu đầu vào và đầu ra bằng một lệnh gọi hàm duy nhất

>>>

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
8

Đưa ra hai chuỗi, như

$ conda install -c anaconda scikit-learn=0.23
75 và
$ conda install -c anaconda scikit-learn=0.23
76 ở đây,
$ conda install -c anaconda scikit-learn=0.23
7 thực hiện phân tách và trả về bốn chuỗi (trong trường hợp này là mảng NumPy) theo thứ tự này

  1. $ conda install -c anaconda scikit-learn=0.23
    
    85. Phần đào tạo của trình tự đầu tiên (______175)
  2. $ conda install -c anaconda scikit-learn=0.23
    
    87. Phần thử nghiệm của trình tự đầu tiên (
    $ conda install -c anaconda scikit-learn=0.23
    
    75)
  3. $ conda install -c anaconda scikit-learn=0.23
    
    89. Phần huấn luyện của trình tự thứ hai (______176)
  4. >>> import numpy as np
    >>> from sklearn.model_selection import train_test_split
    
    01. Phần thử nghiệm của trình tự thứ hai (
    $ conda install -c anaconda scikit-learn=0.23
    
    76)

Bạn có thể nhận được kết quả khác với những gì bạn thấy ở đây. Điều này là do việc chia tách tập dữ liệu là ngẫu nhiên theo mặc định. Kết quả khác nhau mỗi khi bạn chạy chức năng. Tuy nhiên, đây thường không phải là điều bạn muốn

Đôi khi, để làm cho các bài kiểm tra của bạn có thể tái sản xuất, bạn cần phân chia ngẫu nhiên với cùng một đầu ra cho mỗi lệnh gọi hàm. Bạn có thể làm điều đó với tham số

$ conda install -c anaconda scikit-learn=0.23
79. Giá trị của
$ conda install -c anaconda scikit-learn=0.23
79 không quan trọng—nó có thể là bất kỳ số nguyên không âm nào. Thay vào đó, bạn có thể sử dụng phiên bản của
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
05, nhưng đó là cách tiếp cận phức tạp hơn

Trong ví dụ trước, bạn đã sử dụng tập dữ liệu có mười hai quan sát (hàng) và lấy mẫu huấn luyện có chín hàng và mẫu thử nghiệm có ba hàng. Đó là bởi vì bạn đã không chỉ định kích thước mong muốn của tập huấn luyện và tập kiểm tra. Theo mặc định, 25 phần trăm mẫu được chỉ định cho bộ kiểm tra. Tỷ lệ này nói chung là tốt cho nhiều ứng dụng, nhưng không phải lúc nào nó cũng là thứ bạn cần

Thông thường, bạn sẽ muốn xác định rõ ràng quy mô của bộ kiểm tra (hoặc đào tạo) và đôi khi, bạn thậm chí sẽ muốn thử nghiệm với các giá trị khác nhau. Bạn có thể làm điều đó với các tham số

$ conda install -c anaconda scikit-learn=0.23
78 hoặc
$ conda install -c anaconda scikit-learn=0.23
74

Sửa đổi mã để bạn có thể chọn kích thước của bộ kiểm tra và nhận kết quả có thể lặp lại

>>>

$ conda install -c anaconda scikit-learn=0.23
8

Với thay đổi này, bạn sẽ nhận được một kết quả khác với trước đó. Trước đó, bạn đã có một tập huấn luyện gồm chín mục và tập kiểm tra gồm ba mục. Bây giờ, nhờ đối số

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
08, tập huấn luyện có tám phần tử và tập kiểm tra có bốn phần tử. Bạn sẽ nhận được kết quả tương tự với
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
09 vì 33 phần trăm của mười hai là xấp xỉ bốn

Có một sự khác biệt rất quan trọng nữa giữa hai ví dụ cuối cùng. Bây giờ bạn nhận được cùng một kết quả mỗi khi bạn chạy chức năng. Điều này là do bạn đã sửa bộ tạo số ngẫu nhiên bằng

$ conda install -c anaconda scikit-learn=0.23
00

Hình dưới đây cho thấy những gì đang xảy ra khi bạn gọi

$ conda install -c anaconda scikit-learn=0.23
7

Tạo tập huấn luyện và kiểm tra trong python

Các mẫu của tập dữ liệu được xáo trộn ngẫu nhiên và sau đó được chia thành các tập huấn luyện và kiểm tra theo kích thước bạn đã xác định

Bạn có thể thấy rằng

$ conda install -c anaconda scikit-learn=0.23
76 có sáu số không và sáu số một. Tuy nhiên, bộ kiểm tra có ba số không trong số bốn mục. Nếu bạn muốn (xấp xỉ) giữ tỷ lệ của các giá trị
$ conda install -c anaconda scikit-learn=0.23
76 thông qua các tập huấn luyện và kiểm tra, thì hãy vượt qua
$ conda install -c anaconda scikit-learn=0.23
04. Điều này sẽ cho phép phân chia tầng

>>>

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
0

Bây giờ

$ conda install -c anaconda scikit-learn=0.23
89 và
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
01 có cùng tỷ lệ số không và số một như mảng
$ conda install -c anaconda scikit-learn=0.23
76 ban đầu

Trong một số trường hợp, bạn nên phân tách phân tầng, chẳng hạn như khi bạn đang phân loại một tập dữ liệu không cân bằng, một tập dữ liệu có sự khác biệt đáng kể về số lượng mẫu thuộc về các lớp riêng biệt

Cuối cùng, bạn có thể tắt xáo trộn dữ liệu và phân tách ngẫu nhiên với

$ conda install -c anaconda scikit-learn=0.23
08

>>>

$ conda install -c anaconda scikit-learn=0.23
0

Bây giờ bạn có một phần tách trong đó hai phần ba mẫu đầu tiên trong mảng

$ conda install -c anaconda scikit-learn=0.23
75 và
$ conda install -c anaconda scikit-learn=0.23
76 ban đầu được gán cho tập huấn luyện và phần ba cuối cùng cho tập kiểm tra. không xáo trộn. không ngẫu nhiên

Loại bỏ các quảng cáo

Học máy được giám sát với $ conda install -c anaconda scikit-learn=0.23 7

Bây giờ là lúc để xem hoạt động của

$ conda install -c anaconda scikit-learn=0.23
7 khi giải các bài toán học có giám sát. Bạn sẽ bắt đầu với một vấn đề hồi quy nhỏ có thể được giải quyết bằng hồi quy tuyến tính trước khi xem xét một vấn đề lớn hơn. Bạn cũng sẽ thấy rằng bạn cũng có thể sử dụng
$ conda install -c anaconda scikit-learn=0.23
7 để phân loại

Ví dụ tối giản về hồi quy tuyến tính

Trong ví dụ này, bạn sẽ áp dụng những gì bạn đã học cho đến nay để giải một bài toán hồi quy nhỏ. Bạn sẽ tìm hiểu cách tạo tập dữ liệu, chia chúng thành các tập con đào tạo và kiểm tra, đồng thời sử dụng chúng cho hồi quy tuyến tính

Như thường lệ, bạn sẽ bắt đầu bằng cách nhập các gói, hàm hoặc lớp cần thiết. Bạn sẽ cần NumPy,

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
64 và
$ conda install -c anaconda scikit-learn=0.23
7

>>>

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
6

Bây giờ bạn đã nhập mọi thứ mình cần, bạn có thể tạo hai mảng nhỏ,

$ conda install -c anaconda scikit-learn=0.23
75 và
$ conda install -c anaconda scikit-learn=0.23
76, để thể hiện các quan sát và sau đó chia chúng thành các tập huấn luyện và kiểm tra giống như bạn đã làm trước đây

>>>

$ conda install -c anaconda scikit-learn=0.23
0

Tập dữ liệu của bạn có 20 quan sát hoặc cặp

$ conda install -c anaconda scikit-learn=0.23
75-
$ conda install -c anaconda scikit-learn=0.23
76. Bạn chỉ định đối số
$ conda install -c anaconda scikit-learn=0.23
00, vì vậy tập dữ liệu được chia thành tập huấn luyện với mười hai quan sát và tập kiểm tra với tám quan sát

Bây giờ bạn có thể sử dụng tập huấn luyện để điều chỉnh mô hình

>>>

$ conda install -c anaconda scikit-learn=0.23
1

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
64 tạo đối tượng đại diện cho mô hình, trong khi
$ conda install -c anaconda scikit-learn=0.23
02 đào tạo hoặc khớp với mô hình và trả về mô hình. Với hồi quy tuyến tính, việc khớp mô hình có nghĩa là xác định các giá trị chặn tốt nhất (
$ conda install -c anaconda scikit-learn=0.23
03) và độ dốc (
$ conda install -c anaconda scikit-learn=0.23
04) của đường hồi quy

Mặc dù bạn có thể sử dụng

$ conda install -c anaconda scikit-learn=0.23
85 và
$ conda install -c anaconda scikit-learn=0.23
89 để kiểm tra mức độ phù hợp, nhưng đây không phải là cách tốt nhất. Ước tính không thiên vị về hiệu suất dự đoán của mô hình của bạn dựa trên dữ liệu thử nghiệm

>>>

$ conda install -c anaconda scikit-learn=0.23
2

$ conda install -c anaconda scikit-learn=0.23
07 trả về hệ số xác định, hoặc R², cho dữ liệu được truyền. Tối đa của nó là
$ conda install -c anaconda scikit-learn=0.23
08. Giá trị R² càng cao thì càng phù hợp. Trong trường hợp này, dữ liệu huấn luyện mang lại hệ số cao hơn một chút. Tuy nhiên, R² được tính bằng dữ liệu thử nghiệm là thước đo khách quan về hiệu suất dự đoán của mô hình của bạn

Đây là giao diện của nó trên biểu đồ

Tạo tập huấn luyện và kiểm tra trong python

Các chấm màu xanh lá cây đại diện cho các cặp

$ conda install -c anaconda scikit-learn=0.23
75-
$ conda install -c anaconda scikit-learn=0.23
76 được sử dụng để đào tạo. Đường màu đen, được gọi là đường hồi quy ước tính, được xác định bởi kết quả khớp mô hình. đánh chặn và độ dốc. Vì vậy, nó chỉ phản ánh vị trí của các chấm màu xanh lá cây

Các chấm trắng đại diện cho bộ kiểm tra. Bạn sử dụng chúng để ước tính hiệu suất của mô hình (đường hồi quy) với dữ liệu không được sử dụng để đào tạo

Ví dụ hồi quy

Bây giờ bạn đã sẵn sàng để chia một tập dữ liệu lớn hơn để giải quyết vấn đề hồi quy. Bạn sẽ sử dụng bộ dữ liệu giá nhà nổi tiếng ở Boston, được bao gồm trong

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
2. Bộ dữ liệu này có 506 mẫu, 13 biến đầu vào và giá trị nhà ở là đầu ra. Bạn có thể truy xuất nó bằng
$ conda install -c anaconda scikit-learn=0.23
12

Đầu tiên, nhập

$ conda install -c anaconda scikit-learn=0.23
7 và
$ conda install -c anaconda scikit-learn=0.23
12

>>>

$ conda install -c anaconda scikit-learn=0.23
3

Bây giờ bạn đã nhập cả hai chức năng, bạn có thể lấy dữ liệu để làm việc với

>>>

$ conda install -c anaconda scikit-learn=0.23
4

Như bạn có thể thấy,

$ conda install -c anaconda scikit-learn=0.23
12 với đối số
$ conda install -c anaconda scikit-learn=0.23
16 trả về một bộ có hai mảng NumPy

  1. Một mảng hai chiều với các đầu vào
  2. Mảng một chiều với các đầu ra

Bước tiếp theo là chia dữ liệu theo cách tương tự như trước đây

>>>

$ conda install -c anaconda scikit-learn=0.23
5

Bây giờ bạn có tập huấn luyện và kiểm tra. Dữ liệu đào tạo có trong

$ conda install -c anaconda scikit-learn=0.23
85 và
$ conda install -c anaconda scikit-learn=0.23
89, trong khi dữ liệu để kiểm tra có trong
$ conda install -c anaconda scikit-learn=0.23
87 và
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
01

Khi bạn làm việc với các tập dữ liệu lớn hơn, sẽ thuận tiện hơn khi vượt qua quy mô đào tạo hoặc kiểm tra theo tỷ lệ.

$ conda install -c anaconda scikit-learn=0.23
21 có nghĩa là khoảng 40 phần trăm mẫu sẽ được gán cho dữ liệu thử nghiệm và 60 phần trăm còn lại sẽ được gán cho dữ liệu huấn luyện

Cuối cùng, bạn có thể sử dụng tập huấn luyện (

$ conda install -c anaconda scikit-learn=0.23
85 và
$ conda install -c anaconda scikit-learn=0.23
89) để điều chỉnh mô hình và tập kiểm tra (
$ conda install -c anaconda scikit-learn=0.23
87 và
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
01) để đánh giá mô hình một cách khách quan. Trong ví dụ này, bạn sẽ áp dụng ba thuật toán hồi quy nổi tiếng để tạo các mô hình phù hợp với dữ liệu của mình

  1. Hồi quy tuyến tính với
    $ conda install -c anaconda scikit-learn=0.23
    
    26
  2. Tăng cường độ dốc với
    $ conda install -c anaconda scikit-learn=0.23
    
    27
  3. Rừng ngẫu nhiên với
    $ conda install -c anaconda scikit-learn=0.23
    
    28

Quá trình này khá giống với ví dụ trước

  1. Nhập các lớp bạn cần
  2. Tạo các thể hiện mô hình bằng cách sử dụng các lớp này
  3. Điều chỉnh các phiên bản mô hình với
    $ conda install -c anaconda scikit-learn=0.23
    
    02 bằng cách sử dụng tập huấn luyện
  4. Đánh giá mô hình với
    $ conda install -c anaconda scikit-learn=0.23
    
    07 bằng cách sử dụng bộ kiểm tra

Đây là mã thực hiện theo các bước được mô tả ở trên cho cả ba thuật toán hồi quy

>>>

$ conda install -c anaconda scikit-learn=0.23
6

Bạn đã sử dụng tập dữ liệu thử nghiệm và đào tạo của mình để khớp với ba mô hình và đánh giá hiệu suất của chúng. Thước đo độ chính xác thu được với

$ conda install -c anaconda scikit-learn=0.23
07 là hệ số xác định. Nó có thể được tính toán với tập huấn luyện hoặc tập kiểm tra. Tuy nhiên, như bạn đã biết, điểm đạt được với bộ kiểm tra thể hiện ước tính không thiên vị về hiệu suất

Như đã đề cập trong tài liệu, bạn có thể cung cấp các đối số tùy chọn cho

$ conda install -c anaconda scikit-learn=0.23
26,
$ conda install -c anaconda scikit-learn=0.23
27 và
$ conda install -c anaconda scikit-learn=0.23
28.
$ conda install -c anaconda scikit-learn=0.23
27 và
$ conda install -c anaconda scikit-learn=0.23
28 sử dụng tham số
$ conda install -c anaconda scikit-learn=0.23
79 vì lý do giống như
$ conda install -c anaconda scikit-learn=0.23
7. để đối phó với tính ngẫu nhiên trong các thuật toán và đảm bảo khả năng tái tạo

Đối với một số phương pháp, bạn cũng có thể cần nhân rộng tính năng. Trong những trường hợp như vậy, bạn nên khớp các bộ chia tỷ lệ với dữ liệu đào tạo và sử dụng chúng để chuyển đổi dữ liệu thử nghiệm

Loại bỏ các quảng cáo

Ví dụ phân loại

Bạn có thể sử dụng

$ conda install -c anaconda scikit-learn=0.23
7 để giải các bài toán phân loại giống như cách bạn làm để phân tích hồi quy. Trong học máy, các vấn đề phân loại liên quan đến việc đào tạo một mô hình để áp dụng nhãn hoặc phân loại các giá trị đầu vào và sắp xếp tập dữ liệu của bạn thành các danh mục

Trong hướng dẫn Hồi quy logistic trong Python, bạn sẽ tìm thấy một ví dụ về tác vụ nhận dạng chữ viết tay. Ví dụ này cung cấp một minh chứng khác về việc chia dữ liệu thành các tập huấn luyện và kiểm tra để tránh sai lệch trong quá trình đánh giá

Các chức năng xác thực khác

Gói

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
0 cung cấp rất nhiều chức năng liên quan đến lựa chọn và xác nhận mô hình, bao gồm các tính năng sau

  • xác thực chéo
  • đường cong học tập
  • điều chỉnh siêu tham số

Xác thực chéo là một tập hợp các kỹ thuật kết hợp các phép đo hiệu suất dự đoán để có được các ước tính mô hình chính xác hơn

Một trong những phương pháp xác thực chéo được sử dụng rộng rãi là xác thực chéo k-fold. Trong đó, bạn chia tập dữ liệu của mình thành k (thường là năm hoặc mười) tập con hoặc tập hợp có kích thước bằng nhau, sau đó thực hiện quy trình đào tạo và kiểm tra k lần. Mỗi lần, bạn sử dụng một nếp gấp khác làm tập kiểm tra và tất cả các nếp gấp còn lại làm tập huấn luyện. Điều này cung cấp k phép đo hiệu suất dự đoán và sau đó bạn có thể phân tích giá trị trung bình và độ lệch chuẩn của chúng

Bạn có thể triển khai xác thực chéo với

$ conda install -c anaconda scikit-learn=0.23
41,
$ conda install -c anaconda scikit-learn=0.23
42,
$ conda install -c anaconda scikit-learn=0.23
43 và một số lớp và hàm khác từ
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
0

Một đường cong học tập, đôi khi được gọi là một đường cong đào tạo, cho thấy điểm dự đoán của các tập hợp đào tạo và xác thực phụ thuộc như thế nào vào số lượng mẫu đào tạo. Bạn có thể sử dụng

$ conda install -c anaconda scikit-learn=0.23
45 để có được sự phụ thuộc này, điều này có thể giúp bạn tìm kích thước tối ưu của tập huấn luyện, chọn siêu tham số, so sánh các mô hình, v.v.

Điều chỉnh siêu tham số, còn được gọi là tối ưu hóa siêu tham số, là quá trình xác định tập hợp siêu tham số tốt nhất để xác định mô hình máy học của bạn.

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
0 cung cấp cho bạn một số tùy chọn cho mục đích này, bao gồm
$ conda install -c anaconda scikit-learn=0.23
47,
$ conda install -c anaconda scikit-learn=0.23
48,
$ conda install -c anaconda scikit-learn=0.23
49 và các tùy chọn khác. Việc chia tách dữ liệu của bạn cũng rất quan trọng đối với việc điều chỉnh siêu tham số

Phần kết luận

Bây giờ bạn đã biết tại sao và cách sử dụng

$ conda install -c anaconda scikit-learn=0.23
7 từ
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
2. Bạn đã học được rằng, để ước tính khách quan về hiệu suất dự đoán của các mô hình máy học, bạn nên sử dụng dữ liệu chưa được sử dụng để điều chỉnh mô hình. Đó là lý do tại sao bạn cần chia tập dữ liệu của mình thành tập huấn luyện, kiểm tra và trong một số trường hợp, tập hợp con xác thực

Trong hướng dẫn này, bạn đã học cách

  • Sử dụng
    $ conda install -c anaconda scikit-learn=0.23
    
    7 để nhận tập huấn luyện và kiểm tra
  • Kiểm soát kích thước của các tập hợp con với các tham số
    $ conda install -c anaconda scikit-learn=0.23
    
    78 và
    $ conda install -c anaconda scikit-learn=0.23
    
    74
  • Xác định tính ngẫu nhiên của các phần tách của bạn với tham số
    $ conda install -c anaconda scikit-learn=0.23
    
    79
  • Có được các phân tách phân tầng với tham số
    >>> import numpy as np
    >>> from sklearn.model_selection import train_test_split
    
    85
  • Sử dụng
    $ conda install -c anaconda scikit-learn=0.23
    
    7 như một phần của quy trình học máy được giám sát

Bạn cũng đã thấy rằng mô-đun

>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
0 cung cấp một số công cụ khác để xác thực mô hình, bao gồm xác thực chéo, đường cong học tập và điều chỉnh siêu tham số

Nếu bạn có câu hỏi hoặc ý kiến, xin vui lòng đặt chúng trong phần bình luận bên dưới

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Tách bộ dữ liệu bằng scikit-learning và train_test_split()

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Tạo tập huấn luyện và kiểm tra trong python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Mirko Stojiljković

Tạo tập huấn luyện và kiểm tra trong python
Tạo tập huấn luyện và kiểm tra trong python

Mirko có bằng tiến sĩ. D. trong Kỹ thuật cơ khí và làm việc như một giáo sư đại học. Anh là một Pythonista, người áp dụng các phương pháp tối ưu hóa kết hợp và máy học để hỗ trợ ra quyết định trong lĩnh vực năng lượng

» Thông tin thêm về Mirko


Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Tạo tập huấn luyện và kiểm tra trong python

Aldren

Tạo tập huấn luyện và kiểm tra trong python

Geir Arne

Tạo tập huấn luyện và kiểm tra trong python

Joanna

Tạo tập huấn luyện và kiểm tra trong python

Gia-cốp

Tạo tập huấn luyện và kiểm tra trong python

Kyle

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tạo tập huấn luyện và kiểm tra trong python

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Làm cách nào để chia tập dữ liệu thành tập huấn luyện và kiểm tra bằng Python?

Sử dụng phân tách kiểm tra đào tạo trong Python .
Tải Tập dữ liệu
Sắp xếp dữ liệu thành các tính năng và mục tiêu
Chia dữ liệu thành các tập huấn luyện và kiểm tra
Nhập mô hình bạn muốn sử dụng
Tạo một thể hiện của mô hình
Huấn luyện mô hình trên dữ liệu
Dự đoán nhãn của dữ liệu thử nghiệm chưa nhìn thấy
Tham số vs Siêu tham số

Chúng ta có thể sử dụng cùng một tập làm tập huấn luyện và tập kiểm tra không?

Không sử dụng cùng một tập dữ liệu để đào tạo mô hình và đánh giá mô hình . Nếu bạn muốn xây dựng một mô hình học máy đáng tin cậy, bạn cần chia tập dữ liệu của mình thành các tập huấn luyện, xác thực và kiểm tra. Nếu không, kết quả của bạn sẽ bị sai lệch và cuối cùng bạn sẽ có ấn tượng sai về độ chính xác của mô hình tốt hơn.

Bạn sẽ tạo tập dữ liệu hình ảnh thử nghiệm và huấn luyện như thế nào?

Các bước tạo thư mục cho ảnh. Tạo thư mục class_A và class_B làm thư mục con bên trong thư mục đào tạo và xác thực . Đặt 80% ảnh class_A vào đường dẫn thư mục data/train/class_A. Đặt 20% hình ảnh loại A vào đường dẫn thư mục `data/validation/class A. Đặt 80% ảnh class_B vào đường dẫn thư mục data/train/class_B.

Tập huấn luyện và tập kiểm tra là gì Giải thích bằng các ví dụ?

Thời gian ước tính. 8 phút. Mô-đun trước đã giới thiệu ý tưởng chia tập dữ liệu của bạn thành hai tập hợp con. tập huấn luyện— tập hợp con để huấn luyện một mô hình. tập kiểm tra—một tập hợp con để kiểm tra mô hình được đào tạo .