Xử lý hiệu suất tốt về dữ liệu đào tạo và xác nhận, nhưng hiệu suất rất tệ đối với dữ liệu thử nghiệm


8

Tôi có một vấn đề hồi quy với 5-6k biến. Tôi chia dữ liệu của mình thành 3 bộ không chồng chéo: đào tạo, xác nhận và kiểm tra. Tôi huấn luyện chỉ sử dụng tập huấn luyện và tạo ra rất nhiều mô hình hồi quy tuyến tính khác nhau bằng cách chọn một bộ 200 biến khác nhau cho mỗi mô hình (tôi thử khoảng 100 nghìn tập con như vậy). Tôi chấm điểm một mô hình là . Sử dụng tiêu chí này, cuối cùng tôi chọn một mô hình. Hóa ra mô hình được chọn có R ^ 2 rất giống nhau về đào tạo và dữ liệu xác nhận. Tuy nhiên, khi tôi thử mô hình này trên dữ liệu thử nghiệm, nó có R ^ 2 thấp hơn nhiều . Vì vậy, có vẻ như tôi bằng cách nào đó quá mức cho cả dữ liệu đào tạo và xác nhận. Bất kỳ ý tưởng về làm thế nào tôi có thể có được một mô hình mạnh mẽ hơn? min(Rtraining data2,Rvalidation data2)R2R2

Tôi đã cố gắng tăng kích thước dữ liệu đào tạo, nhưng điều đó không giúp được gì. Tôi đang nghĩ về việc có thể thu nhỏ kích thước của mỗi tập hợp con.

Tôi đã thử sử dụng chính quy. Tuy nhiên, các mô hình tôi thu được bằng lasso hoặc lưới đàn hồi có R ^ 2 thấp hơn nhiều R2trên tập huấn luyện cũng như tập xác thực, so với mô hình tôi có được bằng cách thực hiện phương pháp chọn tập hợp con. Do đó, tôi không xem xét các mô hình này, vì tôi cho rằng nếu Mô hình A hoạt động tốt hơn Mô hình B trên cả tập huấn luyện cũng như tập xác thực, thì Mô hình A rõ ràng tốt hơn Mô hình B. Tôi sẽ rất tò mò nếu bạn không đồng ý với điều này

Về một lưu ý liên quan, bạn có nghĩ R2 là một tiêu chí tồi để chọn mô hình của tôi không?

Câu trả lời:


5

Mặc dù điều này nghe có vẻ giống như quá mức, tôi nghĩ rằng thực sự nhiều khả năng là bạn đã gặp một số "lỗi" trong mã hoặc quy trình của bạn. Tôi sẽ bắt đầu bằng cách xác minh rằng bộ kiểm tra của bạn không khác biệt một cách có hệ thống so với bộ đào tạo / xác nhận hợp lệ. Giả sử dữ liệu của bạn được sắp xếp theo ngày (hoặc bất cứ điều gì). Nếu bạn đã sử dụng 50% đầu tiên cho đào tạo, 25% tiếp theo để xác thực và phần còn lại để kiểm tra, bạn có thể đã vô tình phân tầng dữ liệu của mình theo cách làm cho dữ liệu đào tạo đại diện cho dữ liệu xác thực, nhưng ít hơn cho dữ liệu thử nghiệm. Điều này khá dễ dàng để làm một cách tình cờ.

Bạn cũng nên đảm bảo rằng bạn không "nhúng hai lần" vào dữ liệu xác nhận bằng cách nào đó, điều này đôi khi xảy ra vô tình.

Cách khác, @Frank Harrell của CV đã báo cáo rằng một phân tách thử nghiệm / đào tạo duy nhất thường quá thay đổi để cung cấp thông tin hữu ích về hiệu suất của hệ thống (có thể anh ta có thể cân nhắc với một trích dẫn hoặc một số dữ liệu). Bạn có thể xem xét thực hiện một số thứ như xác thực chéo hoặc bootstrapping, điều này sẽ cho phép bạn đo cả giá trị trung bình và phương sai của thước đo chính xác của bạn.

Không giống như Mikera, tôi không nghĩ vấn đề là cơ chế tính điểm của bạn. Điều đó nói rằng, tôi không thể tưởng tượng được một tình huống trong đó , vì vậy tôi khuyên bạn nên ghi điểm chỉ bằng dữ liệu xác thực.Rtraining2<Rvalidation2

Tổng quát hơn, tôi nghĩ hoặc một cái gì đó giống như nó là một lựa chọn hợp lý để đo hiệu suất của một mô hình đầu ra liên tục, giả sử bạn biết về sự cẩn thận tiềm năng của nó. Tùy thuộc vào chính xác những gì bạn đang làm, bạn cũng có thể muốn xem xét lỗi tối đa hoặc trường hợp xấu nhất. Nếu bạn bằng cách nào đó phân biệt đầu ra của mình (hồi quy logistic, một số ngưỡng bên ngoài), thì nhìn vào độ chính xác / thu hồi / AUC có thể là một ý tưởng tốt hơn.R2


Cảm ơn bạn đã trả lời Matt. Tôi thực sự có dữ liệu được sắp xếp theo ngày. Tôi chia nó thành 3 phần và sử dụng phần đầu tiên để đào tạo, phần tiếp theo để xác nhận và phần cuối để thử nghiệm. Đối với ứng dụng của tôi, dữ liệu thử nghiệm sẽ luôn được sắp xếp theo thứ tự thời gian sau tập huấn luyện và xác thực, mặc dù tôi có thể xen kẽ tập huấn luyện và xác thực theo cách tôi thích (bao gồm cả xác thực chéo). Tôi sẽ thử xác nhận chéo. Mặc dù, tôi không hy vọng nó sẽ làm tốt điều đó bởi vì của tôi trên cả tập huấn luyện và xác nhận khá gần nhau. <Phần còn lại tiếp tục trong bình luận tiếp theo>R2
user10

Tôi cũng sẽ kiểm tra phương sai trong cho các ngày khác nhau. Nếu phương sai cao, tôi hy vọng xác nhận chéo sẽ hữu ích. Nếu không, tôi hy vọng nó sẽ cho kết quả tương tự như chỉ có một bộ xác nhận như tôi đã có. Cảm ơn một lần nữa! R2
dùng10

Thứ tự mỗi se không phải là vấn đề; đó là tập huấn luyện có thể đại diện cho tập xác thực hơn tập kiểm thử. Ví dụ: hãy tưởng tượng bạn đang dự đoán doanh số của một cửa hàng. Nếu tập huấn luyện của bạn chứa tháng sáu, tháng bảy và tháng tám, nó có thể sẽ làm tốt công việc dự đoán doanh số của tháng 9 (bộ xác nhận). Tuy nhiên, nó có thể hoàn toàn sụp đổ khi được thử nghiệm vào doanh số tháng 11 và tháng 12: mọi người đang mua quà tặng ngày lễ và quần áo mùa đông thay vì quần short và kem chống nắng, v.v.
Matt Krause

1

Bạn đang quá mức vì bạn đang sử dụng min(training r-square,validation r-square)dữ liệu để tạo điểm số, đến lượt nó được sử dụng để thúc đẩy lựa chọn mô hình. Bởi vì r-vuông đào tạo của bạn có thể bằng hoặc thấp hơn (rốt cuộc bạn chỉ thực hiện hồi quy trên nó), điều này gần tương đương với việc lựa chọn mô hình trên bình phương r của dữ liệu đào tạo.

Điều này có tác dụng phù hợp quá chặt chẽ với dữ liệu đào tạo và bỏ qua dữ liệu xác nhận.

Nếu bạn đã sử dụng chỉ validation r-squaresau đó bạn sẽ nhận được một kết quả tốt hơn.


Nhưng đó không phải là điểm có một bộ dữ liệu xác nhận? Tôi không nên chọn một mô hình có lỗi thấp khi xác thực (nghĩa là ngoài mẫu) được đặt?
10

Xin lỗi tôi hơi đọc sai câu hỏi của bạn. Tôi đã sửa đổi câu trả lời.
mikera

Vì tôi đã chạy hồi quy, nên đào tạo của tôi thường phải lớn hơn xác thực và vì tôi sử dụng min, nên nó không tương đương với việc lựa chọn mô hình bằng cách sử dụng bộ xác thực? Nó chỉ xảy ra khi tôi sử dụng min, tôi nhận được cho cả đào tạo và xác nhận, điều không may là không dịch sang bộ kiểm tra. Cảm ơn! R2R2R2
10
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.