Ôm mặt Train và chia tập dữ liệu

Om Mat Train Va Chia Tap Du Lieu



Thư viện Ôm Mặt không có chức năng cụ thể tên là train_test_split. Tuy nhiên, khi nói đến việc phân tách dữ liệu để huấn luyện và kiểm tra trong các tác vụ machine learning, hàm train_test_split thường được sử dụng phổ biến trong các thư viện phổ biến khác như scikit-learn. Ở đây, chúng tôi sẽ giải thích các tham số thường được sử dụng trong hàm train_test_split từ scikit-learn.

Phương thức train_test_split trong thư viện tập dữ liệu của Hugging Face được sử dụng để chia tập dữ liệu thành hai tập con: tập con huấn luyện và tập con thử nghiệm. Phương pháp này thường được sử dụng trong học máy để đánh giá hiệu suất của một mô hình trên dữ liệu chưa nhìn thấy. Tập hợp con huấn luyện được sử dụng để huấn luyện mô hình, trong khi tập hợp con thử nghiệm được sử dụng để đánh giá hiệu suất và khả năng khái quát hóa của nó.







Dưới đây là tổng quan về phương thức train_test_split trong Ôm mặt:



  1. test_size (numpy.random.Generator, tùy chọn) : Kích thước của phần phân chia thử nghiệm được xác định bởi tùy chọn này. Kiểu có thể là float hoặc số nguyên.
  • Nếu nó được đưa ra dưới dạng float, nó sẽ phản ánh tỷ lệ phần trăm của tập dữ liệu được đưa vào phần tách thử nghiệm và nằm trong khoảng từ 0,0 đến 1,0.
  • Số lượng mẫu thử nghiệm chính xác được biểu thị bằng giá trị nếu nó được cung cấp dưới dạng số nguyên.
  • Nếu nó được đặt thành Không, phần bù của kích thước tàu sẽ được sử dụng làm giá trị.
  • Nếu train_size cũng là Không, nó sẽ được đặt thành 0,25 (25% tập dữ liệu).
  • train_size (numpy.random.Generator, tùy chọn): Kích thước phân chia đoàn tàu được xác định bởi tham số này. Nó tuân theo các nguyên tắc tương tự như test_size.
    • Nếu nó được đưa ra dưới dạng float, nó sẽ phản ánh tỷ lệ phần trăm của tập dữ liệu được đưa vào phần chia đoàn tàu và nằm trong khoảng từ 0,0 đến 1,0.
    • Số lượng mẫu tàu chính xác được biểu thị bằng giá trị nếu nó được cung cấp dưới dạng số nguyên.
    • Nếu được đặt thành Không, giá trị sẽ tự động được thay đổi thành phần bù của kích thước kiểm tra.
  • xáo trộn (bool, tùy chọn, mặc định là True)
    • Tham số này xác định có xáo trộn dữ liệu trước khi chia tách hay không.
    • Nếu được đặt thành True, dữ liệu sẽ được xáo trộn ngẫu nhiên trước khi phân tách.
    • Nếu được đặt thành Sai, dữ liệu sẽ được phân chia mà không bị xáo trộn.
  • stratify_by_column (str, tùy chọn, mặc định là Không)
    • Tham số này được sử dụng để phân chia dữ liệu theo tầng dựa trên một cột cụ thể.
    • Nếu được chỉ định thì nó phải là tên cột của nhãn hoặc lớp.
    • Dữ liệu sẽ được phân chia theo cách duy trì sự phân bổ giống nhau của các nhãn hoặc lớp trong các phần tách đào tạo và kiểm tra.
  • hạt giống (int, tùy chọn)
    • Tham số này cho phép bạn đặt hạt giống để khởi tạo BitGenerator mặc định.
    • Nếu nó được đặt thành Không, một entropy mới, không thể đoán trước sẽ được lấy ra khỏi hệ điều hành.
    • Nếu một số nguyên hoặc số nguyên giống mảng được truyền, chúng sẽ được sử dụng để lấy trạng thái BitGenerator ban đầu.
  • trình tạo (numpy.random.Generator, tùy chọn)
    • Tham số này cho phép bạn chỉ định trình tạo ngẫu nhiên NumPy để tính toán hoán vị của các hàng tập dữ liệu.
    • Nếu nó được đặt thành Không (mặc định), thì nó sử dụng np.random.default_rng là BitGenerator (PCG64) mặc định của NumPy.
  • keep_in_memory (bool, mặc định là Sai)
    • Tham số này xác định xem có giữ các chỉ mục phân tách trong bộ nhớ hay không thay vì ghi chúng vào tệp bộ đệm.
    • Nếu được đặt thành True, các chỉ số phân tách sẽ được lưu trong bộ nhớ trong quá trình phân tách.
    • Nếu nó được đặt thành Sai, các chỉ mục phân tách sẽ được ghi vào tệp bộ đệm để sử dụng sau.
  • Load_from_cache_file (Tùy chọn[bool], mặc định là True nếu bộ nhớ đệm được bật)
    • Tham số này xác định xem có nên sử dụng tệp bộ đệm để tải các chỉ mục được phân tách thay vì tính toán lại chúng hay không.
    • Nếu nó được đặt thành True và có thể xác định được tệp bộ đệm lưu trữ các chỉ mục phân tách thì nó sẽ được sử dụng.
    • Nếu nó được đặt thành Sai, các chỉ mục phân tách sẽ được tính toán lại ngay cả khi có tệp bộ đệm.
    • Giá trị mặc định là True nếu bộ nhớ đệm được bật.
  • train_cache_file_name (str, tùy chọn)
    • Tham số này cho phép bạn cung cấp đường dẫn hoặc tên cụ thể cho tệp bộ đệm lưu trữ các chỉ mục phân chia đoàn tàu.
    • Nếu được chỉ định, các chỉ số phân chia đoàn tàu sẽ được lưu trữ trong tệp bộ đệm này thay vì tên tệp bộ đệm được tạo tự động.
  • test_cache_file_name (str, tùy chọn)
    • Tham số này cho phép bạn cung cấp đường dẫn hoặc tên cụ thể cho tệp bộ đệm lưu trữ các chỉ mục phân tách thử nghiệm.
    • Nếu được chỉ định, các chỉ mục phân tách thử nghiệm sẽ được lưu trữ trong tệp bộ đệm này thay vì tên tệp bộ đệm được tạo tự động.
  • writer_batch_size (int, mặc định là 1000)
    • Tham số này xác định số lượng hàng cho mỗi thao tác ghi đối với trình ghi tệp bộ đệm.
    • Đó là sự cân bằng giữa việc sử dụng bộ nhớ và tốc độ xử lý.
    • Giá trị cao hơn làm giảm số lượng thao tác ghi nhưng tiêu tốn nhiều bộ nhớ hơn trong quá trình xử lý.
    • Giá trị thấp hơn tiêu thụ ít bộ nhớ tạm thời hơn nhưng có thể ảnh hưởng đôi chút đến tốc độ xử lý.
  • train_new_fingerprint (str, tùy chọn, mặc định là Không)
    • Tham số này thể hiện dấu vân tay mới của tập tàu sau khi áp dụng phép biến đổi.
    • Nếu được chỉ định, nó sẽ cung cấp dấu vân tay mới cho đoàn tàu.
    • Nếu nó được đặt thành Không, dấu vân tay mới được tính toán bằng cách sử dụng hàm băm của dấu vân tay trước đó và các đối số chuyển đổi.
  • test_new_fingerprint (str, tùy chọn, mặc định là Không)
    • Tham số này thể hiện dấu vân tay mới của tập kiểm tra sau khi áp dụng phép biến đổi.
    • Nếu được chỉ định, nó sẽ cung cấp một dấu vân tay mới cho bộ kiểm tra.
    • Nếu nó được đặt thành Không, dấu vân tay mới được tính toán bằng cách sử dụng hàm băm của dấu vân tay trước đó và các đối số chuyển đổi.

    Cú pháp:

    từ sklearn.model_selection nhập train_test_split

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0,2, Random_state=42)

    X : Điều này thể hiện các tính năng đầu vào hoặc các biến độc lập của tập dữ liệu của bạn.



    • : Điều này thể hiện biến đầu ra hoặc biến phụ thuộc mà bạn đang cố gắng dự đoán.
    • kích thước thử nghiệm : Tham số này xác định tỷ lệ tập dữ liệu sẽ được phân bổ để thử nghiệm. Nó có thể được chỉ định dưới dạng số float (ví dụ: 0,2 cho 20%) hoặc số nguyên (ví dụ: 200 cho 200 mẫu).
    • trạng thái ngẫu nhiên : Đây là tham số tùy chọn cho phép bạn đặt hạt giống cho trình tạo số ngẫu nhiên. Nó đảm bảo rằng sự phân chia có thể tái tạo được, điều đó có nghĩa là bạn sẽ có được sự phân chia giống nhau nếu bạn sử dụng cùng một giá trị trạng thái ngẫu nhiên.

    Hàm train_test_split trả về bốn bộ dữ liệu:





    • X_train : Tập huấn luyện các đặc trưng đầu vào.
    • X_test : Bộ thử nghiệm các đặc tính đầu vào.
    • y_train : Tập huấn luyện các nhãn đầu ra.
    • y_test : Bộ thử nghiệm các nhãn đầu ra.

    Ví dụ : Chương trình ví dụ sau được lưu dưới dạng “ test.py ”.

    từ sklearn.model_selection nhập train_test_split

    từ tập dữ liệu nhập Load_dataset

    # Bước 1: Load data

    tập dữ liệu = Load_dataset('imdb')

    X = tập dữ liệu['train']['text']

    y = tập dữ liệu['train']['nhãn']

    # Bước 2: Tách tập dữ liệu

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0,2,

    shuffle=Đúng, Random_state=42)

    # Bước 3: Khám phá tập dữ liệu

    print('Số mẫu trong tập dữ liệu gốc:', len(X))

    print('Số mẫu trong tập dữ liệu tàu:', len(X_train))

    print('Số mẫu trong tập dữ liệu thử nghiệm:', len(X_test))

    # Bước 4: Truy cập và in dữ liệu mẫu

    print('\nVí dụ từ tập dữ liệu tàu:')

    print(X_train[0], y_train[0])

    print('\nVí dụ từ tập dữ liệu thử nghiệm:')

    print(X_test[0], y_test[0])

    Câu lệnh nhập này là từ scikit-learn, không phải từ thư viện bộ dữ liệu Ôm mặt. Hãy đảm bảo rằng bạn đã cài đặt scikit-learn trong môi trường của mình. Bạn có thể cài đặt nó bằng lệnh sau:



    pip cài đặt scikit-learn

    Giải thích: Đầu tiên, chúng tôi nhập mô-đun cần thiết: train_test_split từ scikit-learn.

    • Chúng tôi tải tập dữ liệu IMDb bằng cách sử dụng Load_dataset('imdb') và gán nó cho biến tập dữ liệu.
    • Để sử dụng train_test_split, chúng ta cần tách riêng các đặc điểm đầu vào (X) và các nhãn tương ứng (y). Trong trường hợp này, chúng tôi giả định rằng tập dữ liệu có phần phân tách có tên là “train” với “văn bản” làm tính năng đầu vào và “nhãn” làm nhãn tương ứng. Bạn có thể cần điều chỉnh các khóa dựa trên cấu trúc tập dữ liệu của mình.
    • Sau đó, chúng tôi chuyển các tính năng đầu vào (X) và nhãn (y) cho train_test_split cùng với các tham số khác. Trong ví dụ này, chúng tôi đặt test_size thành 0,2, nghĩa là 20% dữ liệu sẽ được phân bổ để thử nghiệm. Tham số xáo trộn được đặt thành “Đúng” để xáo trộn ngẫu nhiên dữ liệu trước khi phân tách và tham số Random_state được đặt thành 42 để tái tạo.
    • Hàm train_test_split trả về bốn bộ dữ liệu: X_train, X_test, y_train và y_test. Chúng đại diện cho các tập con huấn luyện và thử nghiệm của các tính năng và nhãn đầu vào tương ứng.
    • Chúng tôi in số lượng ví dụ trong tập dữ liệu gốc (len(X)), tập dữ liệu huấn luyện (len(X_train)) và tập dữ liệu thử nghiệm (len(X_test)). Điều này cho phép chúng tôi xác minh quá trình phân tách và đảm bảo rằng các tập hợp con được tạo chính xác.
    • Cuối cùng, chúng tôi truy cập và in một ví dụ từ tập dữ liệu huấn luyện (X_train[0], y_train[0]) và một ví dụ từ tập dữ liệu thử nghiệm (X_test[0], y_test[0]).

    đầu ra : Chúng tôi chạy chương trình đã lưu trước đó bằng Python “test.py”.

    Phần kết luận

    Chức năng phân tách thử nghiệm đào tạo được cung cấp bởi thư viện bộ dữ liệu của Hugging Face, kết hợp với chức năng train_test_split của scikit-learn, cung cấp một cách thuận tiện và hiệu quả để chia tập dữ liệu thành các tập con thử nghiệm và đào tạo riêng biệt.

    Bằng cách sử dụng hàm train_test_split, bạn có thể kiểm soát kích thước của tập kiểm tra, có xáo trộn dữ liệu hay không và đặt hạt giống ngẫu nhiên để tái tạo. Tính linh hoạt này cho phép đánh giá hiệu quả các mô hình học máy trên dữ liệu chưa được nhìn thấy và hỗ trợ phát hiện các vấn đề như trang bị quá mức hoặc thiếu trang bị.

    Các tham số của hàm train_test_split cho phép bạn kiểm soát các khía cạnh khác nhau của quá trình phân tách, chẳng hạn như kích thước của tập kiểm tra (test_size), xáo trộn dữ liệu (ngẫu nhiên) và thực hiện phân tách phân tầng dựa trên các cột cụ thể (stratify_by_column). Ngoài ra, bạn có thể chỉ định giá trị hạt giống (hạt giống) cho khả năng tái tạo và tùy chỉnh tên tệp bộ đệm để lưu trữ các chỉ mục phân tách (train_cache_file_name và test_cache_file_name).

    Chức năng mà Ôm Mặt cung cấp giúp bạn chuẩn bị dữ liệu cho việc đào tạo và đánh giá mô hình dễ dàng hơn. Bằng cách có các tập hợp con thử nghiệm và đào tạo riêng biệt, bạn có thể đánh giá chính xác hiệu suất của mô hình trên dữ liệu không nhìn thấy, phát hiện các vấn đề tiềm ẩn như trang bị quá mức và đưa ra quyết định sáng suốt để cải thiện mô hình.

    Nhìn chung, chức năng phân tách thử nghiệm đào tạo trong thư viện bộ dữ liệu của Hugging Face, kết hợp với train_test_split của scikit-learn, cung cấp một bộ công cụ mạnh mẽ để phân tách dữ liệu hiệu quả, đánh giá mô hình và phát triển các giải pháp máy học mạnh mẽ.