By default the glmnet() function performs ridge regression for an auto dịch - By default the glmnet() function performs ridge regression for an auto Việt làm thế nào để nói

By default the glmnet() function pe

By default the glmnet() function performs ridge regression for an automatically
selected range of λ values. However, here we have chosen to implement
the function over a grid of values ranging from λ = 1010 to λ = 10−2, essentially
covering the full range of scenarios from the null model containing
only the intercept, to the least squares fit. As we will see, we can also compute
model fits for a particular value of λ that is not one of the original
grid values. Note that by default, the glmnet() function standardizes the
variables so that they are on the same scale. To turn off this default setting,
use the argument standardize=FALSE.
Associated with each value of λ is a vector of ridge regression coefficients,
stored in a matrix that can be accessed by coef(). In this case, it is a 20×100
252 6. Linear Model Selection and Regularization
matrix, with 20 rows (one for each predictor, plus an intercept) and 100
columns (one for each value of λ).
> dim(coef(ridge.mod))
[1] 20 100
We expect the coefficient estimates to be much smaller, in terms of 2 norm,
when a large value of λ is used, as compared to when a small value of λ is
used. These are the coefficients when λ = 11,498, along with their 2 norm:
> ridge.mod$lambda [50]
[1] 11498
> coef(ridge.mod)[ ,50]
(Intercept ) AtBat Hits HmRun Runs
407.356 0.037 0.138 0.525 0.231
RBI Walks Years CAtBat CHits
0.240 0.290 1.108 0.003 0.012
CHmRun CRuns CRBI CWalks LeagueN
0.088 0.023 0.024 0.025 0.085
DivisionW PutOuts Assists Errors NewLeagueN
-6.215 0.016 0.003 -0.021 0.301
> sqrt(sum(coef(ridge.mod)[-1,50]^2) )
[1] 6.36
In contrast, here are the coefficients when λ = 705, along with their 2
norm. Note the much larger 2 norm of the coefficients associated with this
smaller value of λ.
> ridge.mod$lambda [60]
[1] 705
> coef(ridge.mod)[ ,60]
(Intercept ) AtBat Hits HmRun Runs
54.325 0.112 0.656 1.180 0.938
RBI Walks Years CAtBat CHits
0.847 1.320 2.596 0.011 0.047
CHmRun CRuns CRBI CWalks LeagueN
0.338 0.094 0.098 0.072 13.684
DivisionW PutOuts Assists Errors NewLeagueN
-54.659 0.119 0.016 -0.704 8.612
> sqrt(sum(coef(ridge.mod)[-1,60]^2) )
[1] 57.1
We can use the predict() function for a number of purposes. For instance,
we can obtain the ridge regression coefficients for a new value of λ, say 50:
> predict (ridge.mod ,s=50,type=" coefficients") [1:20,]
(Intercept ) AtBat Hits HmRun Runs
48.766 -0.358 1.969 -1.278 1.146
RBI Walks Years CAtBat CHits
0.804 2.716 -6.218 0.005 0.106
CHmRun CRuns CRBI CWalks LeagueN
0.624 0.221 0.219 -0.150 45.926
DivisionW PutOuts Assists Errors NewLeagueN
-118.201 0.250 0.122 -3.279 -9.497
6.6 Lab 2: Ridge Regression and the Lasso 253
We now split the samples into a training set and a test set in order
to estimate the test error of ridge regression and the lasso. There are two
common ways to randomly split a data set. The first is to produce a random
vector of TRUE, FALSE elements and select the observations corresponding to
TRUE for the training data. The second is to randomly choose a subset of
numbers between 1 and n; these can then be used as the indices for the
training observations. The two approaches work equally well. We used the
former method in Section 6.5.3. Here we demonstrate the latter approach.
We first set a random seed so that the results obtained will be reproducible.
> set.seed(1)
> train=sample (1: nrow(x), nrow(x)/2)
> test=(-train)
> y.test=y[test]
Next we fit a ridge regression model on the training set, and evaluate
its MSE on the test set, using λ = 4. Note the use of the predict()
function again. This time we get predictions for a test set, by replacing
type="coefficients" with the newx argument.
> ridge.mod=glmnet(x[train ,],y[ train],alpha=0, lambda =grid ,
thresh =1e-12)
> ridge.pred=predict (ridge.mod ,s=4, newx=x[test ,])
> mean((ridge.pred -y.test)^2)
[1] 101037
The test MSE is 101037. Note that if we had instead simply fit a model
with just an intercept, we would have predicted each test observation using
the mean of the training observations. In that case, we could compute the
test set MSE like this:
> mean((mean(y[train])-y.test)^2)
[1] 193253
We could also get the same result by fitting a ridge regression model with
a very large value of λ. Note that 1e10 means 1010.
> ridge.pred=predict (ridge.mod ,s=1e10 ,newx=x[test ,])
> mean((ridge.pred -y.test)^2)
[1] 193253
So fitting a ridge regression model with λ = 4 leads to a much lower test
MSE than fitting a model with just an intercept. We now check whether
there is any benefit to performing ridge regression with λ = 4 instead of
just performing least squares regression. Recall that least squares is simply
ridge regression with λ = 0.5
5In order for glmnet() to yield the exact least squares coefficients when λ = 0,
we use the argument exact=T when calling the predict() function. Otherwise, the
predict() function will interpolate over the grid of λ val
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Theo mặc định các chức năng glmnet() thực hiện hồi qui ridge cho một tự độngphạm vi lựa chọn giá trị λ. Tuy nhiên, ở đây chúng tôi đã chọn để thực hiệnCác chức năng trên một mạng lưới các giá trị khác nhau, từ λ = 1010 đến λ = 10−2, về cơ bảnbao gồm đầy đủ các kịch bản từ các mô hình không chứachỉ việc đánh chặn, để các tối thiểu phù hợp. Như chúng ta sẽ thấy, chúng tôi cũng có thể tính toánMô hình phù hợp cho một giá trị cụ thể của λ đó không phải là một trong những bản gốcgiá trị mạng lưới. Lưu ý rằng theo mặc định, các chức năng glmnet() standardizes cácbiến vì vậy mà họ đang ở trên quy mô tương tự. Để tắt các cài đặt mặc định này,sử dụng các đối số chuẩn hóa = FALSE.Liên kết với mỗi giá trị của λ là một vectơ hệ số hồi qui ridge,lưu trữ trong một ma trận mà có thể được truy cập bởi coef(). Trong trường hợp này, nó là 20 × 100252 6. Lựa chọn mô hình tuyến tính và Regularizationma trận, với 20 hàng (một cho mỗi yếu tố dự báo, cộng với một chặn) và 100cột (một cho mỗi giá trị của λ).> dim(coef(ridge.mod))20 100 [1]Chúng tôi hy vọng các hệ số ước tính là nhỏ hơn nhiều, về chỉ tiêu 2,Khi một giá trị lớn của λ được sử dụng, so với khi một giá trị nhỏ của λ làđược sử dụng. Đây là các hệ số khi λ = 11,498, cùng với tiêu chuẩn 2:> ridge.mod$lambda [50][1] 11498> coef(ridge.mod) [, 50](Đánh chặn) AtBat lượt truy cập HmRun chạy407.356 0.037 0.138 0.525 0.231RBI đi năm CAtBat CHits0.240 0.290 1.108 0.003 0.012CHmRun CRuns CRBI CWalks LeagueN0.088 0.023 0.024 0.025 0.085DivisionW PutOuts hỗ trợ lỗi NewLeagueN-6.215 0.016 0.003-0.021 0.301> sqrt(sum(coef(ridge.mod)[-1,50]^2))[1] 6.36Ngược lại, đây là các hệ số khi λ = 705, cùng với 2 của họtiêu chuẩn. Lưu ý 2 chuẩn lớn hơn nhiều của hệ liên kết với điều nàynhỏ hơn giá trị của λ.> ridge.mod$lambda [60][1] 705> coef(ridge.mod) [, 60](Đánh chặn) AtBat lượt truy cập HmRun chạy54.325 0.112 0.656 1.180 0.938RBI đi năm CAtBat CHits0.847 1.320 2.596 0.011 0,047CHmRun CRuns CRBI CWalks LeagueN0.338 0.094 0.098 0.072 13.684DivisionW PutOuts hỗ trợ lỗi NewLeagueN-54.659 0.119-0.704 0,016 8.612> sqrt(sum(coef(ridge.mod)[-1,60]^2))[1] 57.1Chúng tôi có thể sử dụng chức năng predict() cho một số mục đích. Ví dụ,chúng tôi có thể lấy các sườn núi hệ số hồi qui cho một giá trị mới của λ, nói 50:> dự đoán (ridge.mod, s = 50, type = "hệ") [1:20,](Đánh chặn) AtBat lượt truy cập HmRun chạy48.766-0.358 1.969-1.278 1.146RBI đi năm CAtBat CHits0.804 2.716-6.218 0.005 0.106CHmRun CRuns CRBI CWalks LeagueN0.624 0.221 0.219-0.150 45.926DivisionW PutOuts hỗ trợ lỗi NewLeagueN-118.201 0,250 0.122-3.279-9.4976.6 phòng thí nghiệm 2: Hồi qui Ridge và Lasso 253Chúng tôi bây giờ chia các mẫu bộ đào tạo và thử nghiệm một thiết lập theo thứ tựđể ước tính lỗi kiểm tra hồi qui ridge và lasso trong. Đó là haicách phổ biến ngẫu nhiên phân chia một tập hợp dữ liệu. Đầu tiên là để sản xuất một ngẫu nhiênvector trong sự thật, sai các yếu tố và chọn các quan sát tương ứngThật sự cho các dữ liệu đào tạo. Thứ hai là chọn ngẫu nhiên một tập hợp con củaCác con số từ 1 đến n; những sau đó có thể được sử dụng như là chỉ số cho cácquan sát đào tạo. Hai phương pháp làm việc tốt như nhau. Chúng tôi sử dụng cácphương pháp cũ trong phần 6.5.3. Ở đây, chúng tôi chứng minh phương pháp sau này.Chúng tôi lần đầu tiên đặt một hạt giống ngẫu nhiên để kết quả thu được sẽ có thể sanh sản nhiều.> set.seed(1)> Đào tạo = mẫu (1: nrow(x), nrow(x)/2)> test=(-train)> y.test=y[test]Tiếp theo chúng tôi phù hợp với một mô hình hồi qui ridge bộ đào tạo và đánh giáMSE của nó trên các thiết lập thử nghiệm, bằng cách sử dụng λ = 4. Lưu ý sử dụng predict()chức năng một lần nữa. Thời gian này chúng tôi nhận được dự báo cho một bài kiểm tra đặt, bằng cách thay thếtype = "hệ" với đối số newx.> ridge.mod=glmnet (x [train,], y [train], alpha = 0, lambda = lưới điện,thresh = 1e-12)> ridge.pred=predict (ridge.mod, s = 4, newx = x [thử nghiệm])> có nghĩa là ((ridge.pred-y.test)^2)[1] 101037Các thử nghiệm MSE là 101037. Lưu ý rằng nếu chúng tôi đã thay vào đó chỉ đơn giản là phù hợp với một mô hìnhvới chỉ một đánh chặn, chúng tôi đã có dự đoán mỗi bài kiểm tra quan sát bằng cách sử dụngcó nghĩa là quan sát đào tạo. Trong trường hợp đó, chúng tôi có thể tính toán cáckiểm tra cài MSE như thế này:> mean((mean(y[train])-y.test)^2)[1] 193253Chúng tôi cũng có thể nhận được kết quả tương tự bằng cách lắp một mô hình hồi qui ridge vớimột giá trị rất lớn của λ. lưu ý rằng 1e10 có nghĩa là 1010.> ridge.pred=predict (ridge.mod, s = 1e10, newx = x [thử nghiệm])> có nghĩa là ((ridge.pred-y.test)^2)[1] 193253Vì vậy việc trang bị một mô hình hồi qui ridge với λ = 4 dẫn đến một thử nghiệm thấp hơn nhiềuMSE hơn lắp một mô hình với chỉ một đánh chặn. Chúng tôi bây giờ kiểm tra cho dùcó bất kỳ lợi ích để thực hiện hồi qui ridge với λ = 4 thay vìchỉ cần thực hiện tối thiểu hồi quy. Nhớ lại tối thiểu là chỉ đơn giảnRidge hồi quy với λ = 0,55 in để glmnet() để mang lại ít nhất là chính xác hình vuông hệ số khi λ = 0,chúng tôi sử dụng các đối số chính xác = T khi gọi các predict() chức năng. Nếu không, cácPredict() chức năng sẽ suy qua lưới λ val
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Theo mặc định, glmnet () chức năng thực hiện hồi quy sườn núi cho một tự động
phạm vi lựa chọn các giá trị λ. Tuy nhiên, ở đây chúng tôi đã lựa chọn để thực hiện
các chức năng trên một mạng lưới các giá trị khác nhau, từ λ = 1010 để bước sóng = 10-2, về cơ bản
bao gồm đầy đủ các kịch bản từ mô hình rỗng chứa
chỉ đánh chặn, với phương tối thiểu phù hợp. Như chúng ta sẽ thấy, chúng ta cũng có thể tính toán
mô hình phù hợp cho một giá trị cụ thể của λ đó không phải là một trong những nguyên
giá trị lưới. Lưu ý rằng theo mặc định, các glmnet () chức năng chuẩn hóa các
biến để họ có trên quy mô tương tự. Để tắt thiết lập mặc định,
sử dụng các Chuẩn hóa tranh luận = FALSE.
Liên kết với mỗi giá trị của λ là một vector của các hệ số hồi quy sườn núi,
được lưu trữ trong một ma trận có thể được truy cập bởi coef (). Trong trường hợp này, nó là 20 × 100
252 6. Linear Model Selection và Hợp thức
ma trận, với 20 hàng (một cho mỗi yếu tố dự báo, cộng với một đánh chặn) và 100
cột (một cho mỗi giá trị của λ).
> Dim (coef ( ridge.mod))
[1] 20 100
Chúng tôi hy vọng các tính toán hệ số nhỏ hơn nhiều, về mặt? 2 mức,
khi một giá trị lớn của λ được sử dụng, so với khi một giá trị nhỏ của λ được
sử dụng. Đây là các hệ số khi λ = 11.498, cùng với họ 2 mức:?
> Ridge.mod $ lambda [50]
[1] 11.498
> coef (ridge.mod) [50]
(Intercept) AtBat Hits HmRun Chạy
407,356 0,037 0,138 0,525 0,231
RBI Walks năm CAtBat CHITS
0,240 0,290 1,108 0,003 0,012
CHmRun CRuns CRBI CWalks LeagueN
0,088 0,023 0,024 0,025 0,085
DivisionW PutOuts Giúp lỗi NewLeagueN
-6,215 0,016 0,003 -0,021 0,301
> sqrt (sum (coef (ridge.mod) [- 1,50 ] ^ 2))
[1] 6.36
Ngược lại, ở đây là các hệ số khi λ = 705, cùng với họ? 2
mức. Lưu ý các tiêu chuẩn của các hệ số liên quan với điều này lớn hơn nhiều? 2
giá trị nhỏ hơn λ.
> Ridge.mod $ lambda [60]
[1] 705
> coef (ridge.mod) [60]
(Intercept) AtBat Hits HmRun Chạy
54,325 0,112 0,656 1,180 0,938
RBI Walks năm CAtBat CHITS
0,847 1,320 2,596 0,011 0,047
CHmRun CRuns CRBI CWalks LeagueN
0,338 0,094 0,098 0,072 13,684
DivisionW PutOuts Giúp lỗi NewLeagueN
-54,659 0,119 0,016 -0,704 8,612
> sqrt (sum (coef (ridge.mod) [- 1 , 60] ^ 2))
[1] 57.1
Chúng tôi có thể sử dụng các dự đoán () chức năng cho một số mục đích. Ví dụ,
chúng ta có thể có được các hệ số hồi quy sườn núi cho một giá trị mới của λ, nói 50:
> dự đoán (ridge.mod, s = 50, type = "hệ số") [1:20,]
(Intercept) AtBat Hits HmRun Chạy
48,766 -0,358 1,969 -1,278 1,146
RBI Walks năm CAtBat CHITS
0,804 2,716 -6,218 0,005 0,106
CHmRun CRuns CRBI CWalks LeagueN
0,624 0,221 0,219 -0,150 45,926
DivisionW PutOuts Giúp lỗi NewLeagueN
-118,201 0,250 0,122 -3,279 -9,497
6.6 Lab 2: Ridge Regression và Lasso 253
Bây giờ chúng ta chia mẫu thành một tập huấn luyện và thử nghiệm thiết lập nhằm
ước lượng kiểm tra lỗi của hồi quy sườn núi và Lasso. Có hai
cách phổ biến để chia ngẫu nhiên một tập dữ liệu. Đầu tiên là để tạo ra một cách ngẫu nhiên
vector của TRUE, FALSE yếu tố và chọn các quan sát tương ứng với
TRUE cho dữ liệu huấn luyện. Thứ hai là để chọn ngẫu nhiên một tập hợp con của
các số từ 1 đến n; này sau đó có thể được sử dụng như các chỉ số cho các
quan sát đào tạo. Hai phương pháp làm việc tốt như nhau. Chúng tôi sử dụng các
phương pháp cũ trong Mục 6.5.3. . Ở đây chúng tôi chứng minh sự tiếp cận thứ hai
đầu tiên Chúng tôi đặt một hạt giống ngẫu nhiên, do đó kết quả thu được sẽ được tái sản xuất.
> Set.seed (1)
> = tàu mẫu (1: nrow (x), nrow (x) / 2)
> test = (- đào tạo)
> y.test = y [thử nghiệm]
Tiếp theo chúng ta phù hợp với một mô hình hồi quy vân trên tập huấn luyện và đánh giá
MSE của nó trên các thiết lập kiểm tra, sử dụng λ = 4. Lưu ý việc sử dụng các dự đoán ()
chức năng một lần nữa . Lần này chúng ta có được những dự đoán cho một bộ kiểm tra, bằng cách thay thế
type = "hệ số" với các đối số newx.
> Ridge.mod = glmnet (x [tàu,], y [tàu], alpha = 0, lambda = lưới,
đập lúa = 1e-12)
> ridge.pred = dự đoán (ridge.mod, s = 4, newx = x [kiểm tra,])
> bình ((ridge.pred -y.test) ^ 2)
[1] 101.037
Các MSE thử nghiệm là 101037. Lưu ý rằng nếu chúng ta thay vì chỉ đơn giản là phù hợp với một mô hình
chỉ với một đánh chặn, chúng ta có thể dự đoán mỗi quan sát thử nghiệm sử dụng
trung bình của các quan sát đào tạo. Trong trường hợp đó, chúng ta có thể tính được
kiểm tra thiết MSE như thế này:
> bình ((trung bình (y [tàu]) - y.test) ^ 2)
[1] 193.253
Chúng tôi cũng có thể nhận được cùng một kết quả bằng cách lắp một mô hình hồi quy sườn núi với
một giá trị rất lớn của λ. Lưu ý rằng 1e10 nghĩa 1010.
> ridge.pred = dự đoán (ridge.mod, s = 1e10, newx = x [kiểm tra,])
> bình ((ridge.pred -y.test) ^ 2)
[1] 193.253
Vì vậy phù hợp một mô hình hồi quy sườn núi với λ = 4 dẫn đến một bài kiểm tra thấp hơn nhiều
MSE hơn lắp một mô hình chỉ với một đánh chặn. Bây giờ chúng ta kiểm tra xem
có bất kỳ lợi ích để thực hiện hồi quy sườn núi với λ = 4 thay vì
chỉ thực hiện hình vuông hồi quy nhất. Nhớ lại rằng phương nhỏ nhất chỉ đơn giản là
hồi quy sườn núi với λ = 0,5
5in Để glmnet () để mang lại hình vuông hệ số nhất chính xác khi λ = 0,
chúng tôi sử dụng các lập luận chính xác = T khi gọi các dự đoán () chức năng. Nếu không, các
dự đoán () chức năng sẽ suy qua lưới của λ val
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: