Chọn một số liệu hiệu suất phân loại để lựa chọn mô hình, lựa chọn tính năng và xuất bản


8

Tôi có một bộ dữ liệu nhỏ, không cân bằng (70 dương, 30 âm) và tôi đã chơi xung quanh với lựa chọn mô hình cho các tham số SVM bằng BAC (độ chính xác cân bằng) và AUC (vùng dưới đường cong). Tôi đã sử dụng các trọng số lớp khác nhau cho tham số C trong libSVM để bù dữ liệu không cân bằng theo lời khuyên ở đây ( Đào tạo cây quyết định chống lại dữ liệu không cân bằng ).

  1. Có vẻ như lỗi xác thực chéo k-Fold rất nhạy cảm với loại đo lường hiệu suất. Bản thân nó cũng có một lỗi vì các tập huấn luyện và xác nhận được chọn ngẫu nhiên. Ví dụ: nếu tôi lặp lại BAC hai lần với các hạt ngẫu nhiên khác nhau, tôi sẽ nhận được các lỗi khác nhau và sau đó là các giá trị tham số tối ưu khác nhau. Nếu tôi tính trung bình điểm BAC lặp lại, trung bình 1000 lần sẽ cho tôi các giá trị tham số tối ưu khác nhau so với trung bình 10000 lần. Hơn nữa, việc thay đổi số lần gập mang lại cho tôi các giá trị tham số tối ưu khác nhau.

  2. Số liệu chính xác để xác nhận chéo có thể quá lạc quan. Thông thường, bất cứ điều gì qua xác thực chéo 2 lần đều cho tôi độ chính xác 100%. Ngoài ra, tỷ lệ lỗi được rời rạc do kích thước mẫu nhỏ. Lựa chọn mô hình thường sẽ cho tôi cùng một tỷ lệ lỗi trên tất cả hoặc hầu hết các giá trị tham số.

  3. Khi viết báo cáo, làm thế nào tôi biết rằng phân loại là 'tốt' hay 'chấp nhận được'? Trong lĩnh vực này, có vẻ như chúng ta không có thứ gì đó giống như mức độ phù hợp hoặc ngưỡng giá trị p thường được chấp nhận. Vì tôi đang thêm vào dữ liệu lặp đi lặp lại, tôi muốn biết khi nào nên dừng lại - một N tốt là gì khi mô hình không cải thiện đáng kể?

Với các vấn đề được mô tả ở trên, có vẻ như độ chính xác không thể dễ dàng so sánh giữa các ấn phẩm trong khi AUC được mô tả là một chỉ số kém về hiệu suất ( ví dụ ở đây , hoặc ở đây ).

Bất kỳ lời khuyên về cách giải quyết bất kỳ trong số 3 vấn đề này?


1
Những gì bạn muốn làm phần lớn không thể được thực hiện, đặc biệt là với rất ít dữ liệu. Nó khá là nhiều. Về quan điểm của bạn rằng bạn không có một quy ước như ngưỡng cho các giá trị p, có lẽ bạn nên biết ơn.
gung - Phục hồi Monica

Câu trả lời:


5

Có vẻ như lỗi xác thực chéo k-Fold rất nhạy cảm với loại đo lường hiệu suất. Bản thân nó cũng có một lỗi vì các tập huấn luyện và xác nhận được chọn ngẫu nhiên.

Tôi nghĩ rằng bạn đã phát hiện ra phương sai hiệu suất cao là tỷ lệ số lượng trường hợp, chẳng hạn như . Bạn cố gắng ước tính, ví dụ như xác suất phân loại của bạn trả lời đúng. Từ quan điểm thống kê, điều đó được mô tả như một thử nghiệm Bernoulli, dẫn đến phân phối nhị thức. Bạn có thể tính khoảng tin cậy cho các phân phối nhị thức và sẽ thấy rằng chúng rất rộng. Điều này tất nhiên giới hạn khả năng của bạn để làm so sánh mô hình.# correct predictions# test cases

Với các mô hình xác thực lấy mẫu lại, chẳng hạn như xác thực chéo, bạn có một nguồn biến thể bổ sung: tính không ổn định của các mô hình của bạn (khi bạn xây dựng các mô hình thay thế trong mỗi lần chạy CV)k

Hơn nữa, việc thay đổi số lần gập mang lại cho tôi các giá trị tham số tối ưu khác nhau.

Đó là dự kiến ​​do phương sai. Bạn có thể có một hiệu ứng bổ sung ở đây: libSVM chỉ chia tách dữ liệu một lần nếu bạn sử dụng xác thực chéo tích hợp sẵn của chúng để điều chỉnh. Do tính chất của SVM, nếu bạn xây dựng SVM với dữ liệu huấn luyện giống hệt nhau và thay đổi từ từ các tham số, bạn sẽ thấy các vectơ hỗ trợ (và do đó chính xác) nhảy: miễn là các tham số SVM không quá khác nhau, nó vẫn sẽ chọn các vectơ hỗ trợ tương tự. Chỉ khi các paraters được thay đổi đủ, đột nhiên các vectơ hỗ trợ khác nhau sẽ xuất hiện. Vì vậy, việc đánh giá lưới tham số SVM với các phân chia xác thực chéo chính xác có thể ẩn sự biến đổi mà bạn thấy giữa các lần chạy khác nhau.

IMHO vấn đề cơ bản là bạn thực hiện tìm kiếm dạng lưới, đó là một tối ưu hóa dựa trên hành vi hợp lý trơn tru của chức năng mục tiêu của bạn (độ chính xác hoặc bất cứ điều gì bạn sử dụng). Do phương sai hiệu suất cao của bạn, giả định này bị vi phạm. Sự phụ thuộc "tăng vọt" của mô hình SVM cũng vi phạm giả định này.

Số liệu chính xác để xác nhận chéo có thể quá lạc quan. Thông thường, bất cứ điều gì qua xác thực chéo 2 lần đều cho tôi độ chính xác 100%. Ngoài ra, tỷ lệ lỗi được rời rạc do kích thước mẫu nhỏ. Lựa chọn mô hình thường sẽ cho tôi cùng một tỷ lệ lỗi trên tất cả hoặc hầu hết các giá trị tham số.

Đó là dự kiến ​​cho các vấn đề chung của phương pháp này.

Tuy nhiên, thông thường có thể chọn các giá trị tham số thực sự cực đoan trong đó trình phân loại bị hỏng. IMHO phạm vi tham số trong đó các SVM hoạt động tốt là thông tin quan trọng.

Trong mọi trường hợp, bạn hoàn toàn cần một xác nhận bên ngoài (gấp đôi / lồng nhau) về hiệu suất của mô hình bạn chọn là 'tốt nhất'.

Tôi có thể thực hiện một số lần chạy / lặp lại / lặp lại của xác thực chéo bên ngoài hoặc xác thực ngoài bootstrap bên ngoài và cung cấp phân phối

  • siêu âm cho mô hình "tốt nhất"
  • báo cáo hiệu suất của điều chỉnh
  • quan sát hiệu suất của xác nhận bên ngoài

Sự khác biệt giữa hai cái cuối cùng là một chỉ số của quá mức (ví dụ do "lướt qua" phương sai).

Khi viết báo cáo, làm thế nào tôi biết rằng phân loại là 'tốt' hay 'chấp nhận được'? Trong lĩnh vực này, có vẻ như chúng ta không có thứ gì đó giống như mức độ phù hợp hoặc ngưỡng giá trị p thường được chấp nhận. Vì tôi đang thêm vào dữ liệu lặp đi lặp lại, tôi muốn biết khi nào nên dừng lại - một N tốt là gì khi mô hình không cải thiện đáng kể?

(Bạn đang thêm gì? Các trường hợp hoặc biến thể / tính năng?)

Trước hết, nếu bạn thực hiện mô hình lặp, bạn cần phải báo cáo rằng do quy trình phù hợp của bạn, hiệu suất của bạn không được coi trọng vì nó có xu hướng lạc quan. Thay thế tốt hơn là thực hiện xác nhận mô hình cuối cùng. Tuy nhiên, dữ liệu thử nghiệm phải độc lập với tất cả dữ liệu đã được đào tạo hoặc quy trình quyết định của bạn cho mô hình hóa (vì vậy bạn có thể không còn bất kỳ dữ liệu nào như vậy).


Cảm ơn câu trả lời tuyệt vời. Theo những gì tôi hiểu, chiến lược của bạn sẽ liên quan đến việc xây dựng một phân phối siêu âm từ các phạm vi giá trị đến từ nhiều nếp gấp / lần lặp bên ngoài. (1) Trong trường hợp này, độ chính xác lạc quan hoặc AUC là ổn? Tôi cảm thấy rằng một số liệu bi quan sẽ tốt hơn để tìm ra "mô hình tốt nhất" bởi vì nếu không, phân phối điểm từ CV lặp đi lặp lại sẽ là "một đầu". (2) Ngoài ra, tôi thấy có một điều đặc biệt là việc tính trung bình nhiều lần lặp lại của CV không nhất thiết phải giúp đỡ - đó có phải là do lỗi không được phân phối chính xác do mất ổn định mô hình SVM không?
bravetang8

Để làm rõ về câu hỏi cuối cùng của tôi, tôi đang thêm các trường hợp lặp lại với các thí nghiệm. Tôi đang sử dụng một mô hình ban đầu để chọn các điểm 'thông tin', từ đó tôi có thể xây dựng lại và tinh chỉnh mô hình ban đầu. Điều tôi chủ yếu muốn biết là tôi cần thêm bao nhiêu trường hợp để lỗi ước tính (từ xác nhận bên ngoài) bị sai lệch tối thiểu. Tôi đã hy vọng rằng có một tỷ lệ trường hợp / tính năng là 'chấp nhận được'.
bravetang8

@ bravetang8: (1) bạn đã đúng: các biện pháp thiên vị lạc quan không phải là một ý tưởng hay: không phải để tối ưu hóa nội bộ vì tối ưu hóa có thể phân biệt giữa các mô hình khác nhau mà tất cả dường như là hoàn hảo. Không phải để tối ưu hóa bên ngoài bởi vì trong nhiều ứng dụng, tốt hơn là có một ước tính thận trọng về hiệu suất hơn là một đánh giá quá mức. Nhưng thật tốt khi biết liệu tối ưu hóa nội bộ có bị ước tính nội bộ quá mức hay không, hay đây không phải là vấn đề ở đây.
cbeleites không hài lòng với SX

@ bravetang8: 2) các lần lặp trung bình của CV sẽ chỉ giảm phần sai lệch do sự không ổn định của mô hình, nhưng không phải là phần do tập hợp hữu hạn của bạn. Vì vậy, sau các lần lặp "đủ", phương sai kiểu không ổn định mô hình sẽ chỉ là một đóng góp nhỏ cho tổng phương sai và nó không giúp đi đến các lần lặp nhiều hơn.
cbeleites không hài lòng với SX

@cbeleites, hi cbeleites, tôi đã tự hỏi liệu bạn có thời gian để xem bài đăng này mặc dù prof.Harrel đã thực hiện một lưu ý quan trọng ở đây không? Cảm ơn. stats.stackexchange.com/questions/86917/ Cách
lennon 310

3

Đơn giản hơn BIR là quy tắc tính điểm logarit hoặc bậc hai (Brier). Đây là những điểm số phù hợp, không giống như tỷ lệ được phân loại chính xác, sẽ không tạo ra một mô hình không có thật khi tối ưu hóa.


Vì thế, OP cần chuyển sang đầu ra xác suất cho SVM. Ít nhất là IIRC với libSVM, điều này được tính bằng cách khớp một logistic và tôi không chắc điều này có liên quan chặt chẽ đến SVM ban đầu như thế nào.
cbeleites không hài lòng với SX

1

Như bạn chỉ ra, độ chính xác dự đoán và AUC bị hạn chế ở một số khía cạnh nhất định. Tôi sẽ cho Phần thưởng Thông tin Bayes (BIR), việc này sẽ đưa ra đánh giá nhạy cảm hơn về việc trình phân loại của bạn hoạt động tốt hay xấu và thay đổi như thế nào khi bạn điều chỉnh các tham số của mình (số lần xác thực, v.v.).

Trực giác của BIR như sau: người đặt cược được thưởng không chỉ vì xác định người thắng và người thua cuối cùng (0 và 1), mà quan trọng hơn là xác định tỷ lệ cược phù hợp. Hơn nữa, nó đi trước một bước và so sánh tất cả các dự đoán với xác suất trước đó.

WTôinLoSe

nhập mô tả hình ảnh ở đây

pp'p'= =0,6p= =0,6(-Tôinf,1].

BIR không giới hạn trong phân loại nhị phân nhưng cũng được khái quát hóa cho các vấn đề phân loại đa quốc gia.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.