Tôi sẽ không khuyên bạn nên sử dụng thủ tục đó. Đề nghị của tôi là: Từ bỏ dự án này. Chỉ cần từ bỏ và bỏ đi. Bạn không có hy vọng làm việc này.
nguồn cho hình ảnh
Đặt các vấn đề tiêu chuẩn sang một bên với lựa chọn từng bước (xem, ở đây ), trong trường hợp của bạn, bạn rất có khả năng có những dự đoán hoàn hảo do sự tách biệt trong một không gian nhiều chiều như vậy.
Tôi không có thông tin cụ thể về tình huống của bạn, nhưng bạn nói rằng bạn "chỉ có vài mẫu 10". Hãy từ thiện và nói rằng bạn có 90. Bạn còn nói thêm rằng bạn có "vài nghìn tính năng". Hãy tưởng tượng rằng bạn 'chỉ' có 2.000. Để đơn giản, hãy nói rằng tất cả các tính năng của bạn là nhị phân. Bạn "tin rằng nhãn lớp có thể được dự đoán chính xác chỉ bằng một vài tính năng", giả sử rằng bạn sẽ tìm kiếm tối đa 9 tính năng tối đa. Cuối cùng, hãy tưởng tượng rằng mối quan hệ là xác định, do đó mối quan hệ thực sự sẽ luôn hiện diện hoàn hảo trong dữ liệu của bạn. (Chúng ta có thể thay đổi những con số và giả định này, nhưng điều đó chỉ làm cho vấn đề tồi tệ hơn.) Bây giờ, Làm thế nào tốt bạn có thể phục hồi mối quan hệ đó trong các điều kiện (hào phóng)? Đó là, bao lâu thì bộ chính xác sẽ là bộ duy nhất mang lại độ chính xác hoàn hảo? Hoặc, đặt một cách khác, bao nhiêu bộ chín tính năng cũng sẽ phù hợp chỉ có cơ hội?
Một số (quá mức) toán học đơn giản và mô phỏng nên cung cấp một số manh mối cho câu hỏi này. Đầu tiên, với 9 biến, mỗi biến có thể là 0 hoặc 1, số mẫu mà một quan sát có thể hiển thị là , nhưng bạn sẽ chỉ có 90 quan sát. Do đó, hoàn toàn có thể, với một bộ 9 biến nhị phân nhất định, mỗi quan sát có một bộ giá trị dự đoán khác nhau, không có bản sao. Nếu không có các bản sao với cùng các giá trị dự đoán trong đó một số có y = 0 và một số y = 1, bạn sẽ có sự phân tách hoàn toàn và dự đoán hoàn hảo của mọi quan sát sẽ có thể. 29=512
Dưới đây, tôi có một mô phỏng (được mã hóa bằng R) để xem tần suất bạn có thể không có các mẫu giá trị x với cả 0 và 1. Cách thức hoạt động là tôi nhận được một tập hợp các số từ 1 đến 512, đại diện cho các mẫu có thể và xem liệu có bất kỳ mẫu nào trong 45 đầu tiên (có thể là 0) khớp với bất kỳ mẫu nào trong 45 giây thứ hai không (đó có thể là 1s). Điều này giả định rằng bạn có dữ liệu phản hồi cân bằng hoàn hảo, mang lại cho bạn sự bảo vệ tốt nhất có thể chống lại vấn đề này. Lưu ý rằng việc có một số vectơ x được sao chép với các giá trị y khác nhau sẽ không thực sự đưa bạn ra khỏi rừng, điều đó có nghĩa là bạn sẽ không thể dự đoán hoàn hảo mọi quan sát trong tập dữ liệu của mình, đó là tiêu chuẩn rất nghiêm ngặt của tôi Tôi đang sử dụng ở đây.
set.seed(7938) # this makes the simulation exactly reproducible
my.fun = function(){
x = sample.int(512, size=90, replace=TRUE)
return(sum(x[1:45]%in%x[46:90])==0)
}
n.unique = replicate(10000, my.fun())
mean(n.unique) # [1] 0.0181
Mô phỏng cho thấy bạn sẽ gặp vấn đề này với khoảng 1,8% trong số 9 biến x. Bây giờ, có bao nhiêu bộ 9? Nghiêm túc, đó sẽ là (vì chúng tôi đã quy định rằng 9 biến nhân quả xác định thực sự nằm trong tập hợp của bạn). Tuy nhiên, nhiều bộ trong số đó sẽ bị chồng chéo; sẽ có năm 1991 / 9 ≈ 221 bộ không chồng chéo của 9 trong một phân vùng nhất định của các biến của bạn (với nhiều phân vùng như vậy có thể). Như vậy, trong một số phân vùng nào đó, chúng ta có thể mong đợi sẽ có 221 × 0,018 ≈ 41991 choose 9=1.3×10241991/9≈221221×0.018≈4 bộ 9 biến x sẽ dự đoán hoàn hảo mọi quan sát trong tập dữ liệu của bạn.
Lưu ý rằng các kết quả này chỉ dành cho các trường hợp bạn có bộ dữ liệu tương đối lớn hơn (trong "hàng chục"), số lượng biến tương đối nhỏ hơn (trong "hàng nghìn"), chỉ tìm kiếm các trường hợp mà mọi quan sát đơn lẻ có thể dự đoán hoàn hảo ( sẽ còn nhiều bộ nữa gần như hoàn hảo), v.v ... Trường hợp thực tế của bạn không có khả năng giải quyết 'cái này tốt'. Hơn nữa, chúng tôi quy định rằng mối quan hệ là hoàn toàn xác định. Điều gì sẽ xảy ra nếu có một số tiếng ồn ngẫu nhiên trong mối quan hệ? Trong trường hợp đó, bạn vẫn sẽ có ~ 4 (null) dự đoán hoàn hảo dữ liệu của mình, nhưng bộ đúng có thể không nằm trong số đó .
Tl; dr , điểm cơ bản ở đây là tập hợp các biến của bạn quá lớn / chiều cao và lượng dữ liệu của bạn quá nhỏ, cho mọi thứ đều có thể. Nếu thực sự đúng là bạn có "hàng chục" mẫu, "hàng ngàn" biến và hoàn toàn không biết biến nào có thể đúng, thì bạn không có hy vọng có được bất kỳ quy trình nào. Đi làm một cái gì đó khác với thời gian của bạn.