2012-08-27 30 views
5

Tôi đang tối ưu hóa một số mô hình khác nhau, một trong số đó là radialSVM sử dụng gói caret. Tôi đang tạo một lưới điều chỉnh để chuẩn bị chu kỳ thông qua một vòng lặp để tìm các thông số tốt nhất để sử dụng cho mô hình.Trình tự các mức tăng khác nhau với R?

Một điều rất hữu ích là một số loại trình tự tăng khác nhau. Ví dụ, tôi muốn bắt đầu với các giá trị tham số nhỏ tăng lên trong các bước nhỏ. Lớn hơn tôi đi, các bước lớn hơn tôi có thể thực hiện. Tôi đã thấy rằng các thông số nhỏ làm thay đổi mô hình khá một chút, vì vậy tôi muốn khám phá chúng một cách cẩn thận hơn.

Thật tuyệt vời khi có trình tự tăng thêm một số nhân của bước hiện tại, giả sử x <- x+5*x. Điều này có thể xảy ra với một thứ gì đó đã tồn tại, (như sử dụng sáng tạo seq()) hay tôi cần sử dụng vòng lặp?

Trả lời

5

Làm thế nào về một cái gì đó như thế này:

0.0001 * 6^(0:10) 
# [1] 0.0001 0.0006 0.0036 0.0216 0.1296 0.7776 4.6656 
# [8] 27.9936 167.9616 1007.7696 6046.6176 
+0

tao nhã và đơn giản -- cảm ơn! – Hendy

2

Bạn có thể sử dụng phân phối mũ:

qexp((1:100)/100) 

> qexp((1:100)/100) 
    [1] 0.01005034 0.02020271 0.03045921 0.04082199 0.05129329 0.06187540 0.07257069 0.08338161 
    [9] 0.09431068 0.10536052 0.11653382 0.12783337 0.13926207 0.15082289 0.16251893 0.17435339 

Điều chỉnh nó để có sự khác biệt có thể đáp ứng nhu cầu của bạn:

diff(20* qexp((1:100)/100)) 
[1] 0.2030474 0.2051300 0.2072557 0.2094260 0.2116422 0.2139058 0.2162183 0.2185814 
[9] 0.2209967 0.2234660 0.2259911 0.2285739 0.2312164 0.2339208 0.2366892 0.2395238 
Các vấn đề liên quan