2011-07-05 27 views
5

Tôi muốn kiểm tra lại một số khái niệm mà tôi không chắc chắn về tập huấn luyện cho việc học tập phân loại. Khi chúng tôi chọn hồ sơ cho dữ liệu đào tạo của mình, chúng tôi có chọn số lượng bản ghi bình đẳng cho mỗi lớp, tổng hợp thành N hoặc nên chọn ngẫu nhiên N số bản ghi (bất kể lớp) không?cách chọn dữ liệu huấn luyện cho phân loại vịnh ngây thơ

Bằng trực giác, tôi đã nghĩ về cái cũ nhưng suy nghĩ về xác suất của lớp trước đó sẽ bằng nhau và không thực sự hữu ích?

Trả lời

1

Cách tiếp cận ưa thích là sử dụng xác thực K-Fold Cross để chọn dữ liệu học tập và kiểm tra.

Trích từ wikipedia:

K-fold cross-validation

Trong K-fold cross-validation, các mẫu ban đầu là ngẫu nhiên phân chia thành subsamples K. Trong số mẫu phụ K, một mẫu phụ duy nhất là được giữ lại làm dữ liệu xác thực cho kiểm tra mô hình và số còn lại K - 1 mẫu phụ được sử dụng làm tài liệu đào tạo . Quá trình xác nhận chéo là sau đó lặp lại K lần (các nếp gấp), với mỗi mẫu phụ K được sử dụng chính xác một lần làm dữ liệu xác thực. Kết quả K từ các nếp gấp sau đó có thể được tính trung bình (hoặc kết hợp khác) thành tạo ra một ước tính đơn lẻ. Lợi thế của phương pháp này lặp đi lặp lại lấy mẫu ngẫu nhiên là tất cả quan sát được sử dụng cho cả huấn luyện và xác nhận và mỗi quan sát được sử dụng để xác thực chính xác một lần. Xác nhận chéo 10 lần thường được sử dụng.

Trong xác thực chéo phân tầng K, các nếp gấp được chọn sao cho giá trị phản hồi trung bình xấp xỉ bằng nhau trong tất cả các nếp gấp. Trong trường hợp của một phân loại nhị phân, điều này có nghĩa là mỗi lần chứa khoảng cùng một tỷ lệ của hai loại của nhãn lớp.

Bạn nên luôn sử dụng phương pháp chung để có kết quả tương đương với các dữ liệu khoa học khác.

7

Điều đó phụ thuộc vào việc phân phối các lớp học của bạn và việc xác định chỉ có thể được thực hiện với kiến ​​thức về miền của sự cố trong tầm tay. Bạn có thể đặt các câu hỏi sau:

  • Có hai lớp nào rất giống nhau và người học có đủ thông tin để phân biệt chúng không?
  • Có khác biệt lớn về xác suất trước của mỗi lớp không?

Nếu có, bạn có thể phân phối lại các lớp học.

Theo kinh nghiệm của tôi, không có hại trong việc phân phối lại các lớp học, nhưng không phải lúc nào cũng cần thiết.

Điều đó thực sự phụ thuộc vào việc phân phối các lớp học của bạn. Trong trường hợp phát hiện gian lận hoặc xâm nhập, phân bố của lớp dự đoán có thể nhỏ hơn 1%. Trong trường hợp này, bạn phải phân bố đồng đều các lớp trong tập huấn luyện nếu bạn muốn trình phân loại tìm hiểu sự khác biệt giữa mỗi lớp. Nếu không, nó sẽ tạo ra một trình phân loại phân loại chính xác hơn 99% các trường hợp mà không bao giờ xác định chính xác một trường hợp gian lận, đó là toàn bộ điểm tạo một trình phân loại để bắt đầu.

Khi bạn có một tập hợp các lớp được phân bố đồng đều, bạn có thể sử dụng bất kỳ kỹ thuật nào, chẳng hạn như k-fold, để thực hiện đào tạo thực tế.

Ví dụ khác khi phân phối lớp cần được điều chỉnh, nhưng không nhất thiết trong số lượng bản ghi bằng nhau, là trường hợp xác định chữ thường của bảng chữ cái từ hình dạng của chúng.

Nếu bạn phân phối các chữ cái thường được sử dụng bằng tiếng Anh để đào tạo trình phân loại, hầu như không có trường hợp nào, nếu có, của chữ cái Q. Mặt khác, các chữ cái O là rất phổ biến. Nếu bạn không phân phối lại các lớp để cho phép cùng số lượng Q 's và O' s, trình phân loại không có đủ thông tin để phân biệt Q. Bạn cần cung cấp đủ thông tin (tức là thêm Q s) để có thể xác định rằng QO thực sự là các chữ cái khác nhau.

+0

tôi đọc về k-fold, như được cung cấp bởi @fyr. Tôi bối rối. Sau khi tôi có các bộ huấn luyện được phân bố đồng đều trên mỗi lớp, bộ nào được tôi cung cấp để đào tạo trình phân loại để sử dụng phân loại thực tế? Trước đây của tôi là tôi tin rằng ngay cả: như c1: 90% và c2: 10%. – goh

+1

Bạn tạo một tập dữ liệu hoàn toàn mới với các lớp được phân bố đồng đều. Sau đó bạn sử dụng dữ liệu mới này và phân vùng nó thành đào tạo, cross-val và kiểm tra khi cần thiết. k-fold là một cách rất phổ biến để phân vùng dữ liệu thành đào tạo và chéo-val. –

1

Tôi đã xây dựng triển khai trình phân loại Bayesian để xác định xem mẫu có phải là NSFW (Không an toàn cho công việc) hay không bằng cách kiểm tra sự xuất hiện của các từ trong ví dụ. Khi huấn luyện một trình phân loại để phát hiện NSFW, tôi đã thử làm cho nó sao cho mỗi lớp trong các bộ huấn luyện có cùng số ví dụ. Điều này đã không làm việc ra cũng như tôi đã lên kế hoạch cho rằng một trong các lớp học có nhiều từ hơn một ví dụ hơn so với các lớp khác.

Vì tôi đã tính toán khả năng của NSFW dựa trên những từ này tôi thấy rằng cân bằng các lớp dựa trên kích thước thực tế của chúng (MB) đã làm việc. Tôi đã thử xác thực 10 lần cho cả hai cách tiếp cận (cân bằng theo số lượng ví dụ và kích thước của các lớp) và thấy rằng cân bằng theo kích thước của dữ liệu hoạt động tốt.

Các vấn đề liên quan