Làm thế nào để một người dễ dàng nhất overfit?


7

Đây là một câu hỏi kỳ lạ, tôi biết.

Tôi chỉ là một người mới và cố gắng tìm hiểu về các tùy chọn phân loại khác nhau và cách chúng hoạt động. Vì vậy, tôi đang đặt câu hỏi:

Đưa ra một tập dữ liệu về các kích thước n1 và n2 trong đó mỗi quan sát có thể được phân loại thành các nhóm n3, thuật toán này hiệu quả nhất (lý tưởng chỉ với một lần lặp đào tạo) tạo ra một mô hình (ranh giới phân loại) sẽ phân loại hoàn hảo mọi quan sát trong tập dữ liệu (hoàn toàn quá sức)?

Nói cách khác, làm thế nào để một người dễ dàng phù hợp nhất?

(Xin đừng giảng cho tôi về 'không quá mức'. Đây chỉ là mục đích giáo dục lý thuyết.)

Tôi có một nghi ngờ rằng câu trả lời đại loại như sau: "Chà, nếu số lượng kích thước của bạn lớn hơn số lượng quan sát của bạn, hãy sử dụng thuật toán X để vẽ ranh giới, nếu không hãy sử dụng thuật toán Y."

Tôi cũng có một nghi ngờ rằng câu trả lời sẽ nói: "Bạn có thể vẽ một ranh giới trơn tru, nhưng nó đắt hơn về mặt tính toán so với việc vẽ các đường thẳng giữa tất cả các quan sát được phân loại khác nhau."

Nhưng đó là theo trực giác của tôi sẽ hướng dẫn tôi. Bạn có thể giúp?

Tôi có một ví dụ vẽ tay về những gì tôi nghĩ rằng tôi đang nói về 2D với phân loại nhị phân.

Về cơ bản, chỉ cần phân chia sự khác biệt, phải không? Thuật toán nào thực hiện điều này một cách hiệu quả cho kích thước n?

Về cơ bản chỉ là phân chia sự khác biệt, phải không?  Thuật toán nào làm điều này một cách hiệu quả?


5
quỳ với k=1?
shimao

@shimao Tôi cho rằng nó sẽ hoạt động, phải không? Vâng, tôi không thể thấy tại sao không. Cảm ơn rât nhiều!
Ngăn xếp hợp pháp

@shimao Đó có phải là cách hiệu quả nhất để mã hóa Ranh giới? Có lẽ đúng không? Vì chúng tôi không biết liệu dữ liệu có hoàn toàn ngẫu nhiên hay không, sử dụng chính dữ liệu đó làm mô hình được mã hóa bằng thuật toán KNN có lẽ là cách tốt nhất bạn thường làm. Đúng?
Ngăn xếp hợp pháp

2
@shimao: bạn có muốn đăng bình luận của bạn như một câu trả lời (có lẽ với một chút chi tiết hơn)?
Stephan Kolassa

Tiêu đề không nhiều thông tin về nội dung. Phần lớn người dùng đến trang này để tìm câu trả lời sẽ tìm thấy câu hỏi thực tế được hỏi rất khác so với những gì họ mong đợi. Vui lòng sửa lại.
OrangeSherbet

Câu trả lời:


7

Miễn là tất cả các quan sát là duy nhất, thì hàng xóm gần nhất của K với K được đặt thành 1 và với bất kỳ số liệu khoảng cách hợp lệ tùy ý nào sẽ đưa ra một bộ phân loại phù hợp hoàn hảo với tập huấn luyện (vì hàng xóm gần nhất của mọi điểm trong tập huấn luyện là tầm thường , chinh no). Và nó có lẽ là hiệu quả nhất vì không cần đào tạo gì cả.

Đó có phải là cách hiệu quả nhất để mã hóa Ranh giới? Có lẽ đúng không? Vì chúng tôi không biết liệu dữ liệu có hoàn toàn ngẫu nhiên hay không, sử dụng chính dữ liệu đó làm mô hình được mã hóa bằng thuật toán KNN có lẽ là cách tốt nhất bạn thường làm. Đúng?

Đó là hiệu quả nhất về thời gian, nhưng không nhất thiết là không gian hiệu quả nhất.


Nếu bạn muốn hiệu quả không gian, lưu trữ mã băm. Cũng lưu ý rằng bạn chỉ cần phân tích các thùng N-1.
Vịt Mooing

1
Nếu bạn muốn có được ranh giới, bạn có thể tính toán phần tử Voronoi.
Davidmh

5

Bạn không thể.

Ít nhất là không nói chung, ở mức độ bạn muốn, nếu bạn muốn một sự phù hợp hoàn hảo với dữ liệu tùy ý và chiều tùy ý.

Ví dụ, giả sử chúng ta có n1=0 kích thước dự đoán (nghĩa là không có gì cả) và n2=2 các quan sát được phân loại thành n3=2xô. Hai quan sát được phân loại thành hai nhóm khác nhau , đó là "sô cô la" và "vani".

Vì bạn không có bất kỳ dự đoán nào, bạn sẽ không thể phân loại chúng một cách hoàn hảo, theo giai đoạn.


Nếu bạn có ít nhất một công cụ dự đoán nhận các giá trị khác nhau trên mỗi quan sát , thì bạn thực sự có thể điều chỉnh quá mức một cách tùy tiện, chỉ bằng cách sử dụng các lệnh đa thức cao tùy ý cho một công cụ dự đoán số (nếu công cụ dự đoán được phân loại với các giá trị khác nhau trên mỗi quan sát, bạn không ' t thậm chí cần phải biến đổi). Các công cụ hoặc mô hình là khá nhiều thứ cấp. Vâng, thật dễ dàng để vượt qua.

Đây là một ví dụ. 10 quan sát là hoàn toàn độc lập với dự đoán số duy nhất. Chúng tôi phù hợp với các hồi quy hoặc quyền hạn hậu cần ngày càng phức tạp của người dự đoán và phân loại bằng cách sử dụng ngưỡng 0,5 ( đây không phải là thông lệ tốt ). Các điểm được trang bị chính xác được đánh dấu màu xanh lá cây, các điểm được trang bị không chính xác bằng màu đỏ.

quá mức

Mã R:

nn <- 10
set.seed(2)

predictor <- runif(nn)
outcome <- runif(nn)>0.5

plot(predictor,outcome,pch=19,yaxt="n",ylim=c(-0.1,1.6))
axis(2,c(0,1),c("FALSE","TRUE"))

orders <- c(1,2,3,5,7,9)
xx <- seq(min(predictor),max(predictor),0.01)

par(mfrow=c(3,2))
for ( kk in seq_along(orders) ) {
    plot(predictor,outcome,pch=19,yaxt="n",ylim=c(-0.2,1.2),main=paste("Order:",orders[kk]))
    axis(2,c(0,1),c("FALSE","TRUE"))

    model <- glm(outcome~poly(predictor,orders[kk]),family="binomial")
    fits_obs <- predict(model,type="response")
    fits <- predict(model,newdata=data.frame(predictor=xx),type="response")

    lines(xx,fits)
    correct <- (fits_obs>0.5 & outcome) | ( fits_obs<0.5 & !outcome)
    points(predictor[correct],outcome[correct],cex=1.4,col="green",pch="o")
    points(predictor[!correct],outcome[!correct],cex=1.4,col="red",pch="o")
}
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.