Data Mining 1 regularized model을 이용한 이미지 분류 1 Introduction 이미지 데이터는 매트릭스 형태이다. 이미지 분류를 하기 위해서 이미지 형식을 매트릭스 에서 벡터로 변환하는 작업이 필요하다. 그러면 하나의 이미지는 p차원인 벡터형

Similar documents
exp

10김묘선

Documents Taxonomy - LASSO regression을 중심으로

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

<32332D322D303120B9E6BFB5BCAE20C0CCB5BFC1D6312D32302E687770>

공공기관임금프리미엄추계 연구책임자정진호 ( 한국노동연구원선임연구위원 ) 연구원오호영 ( 한국직업능력개발원연구위원 ) 연구보조원강승복 ( 한국노동연구원책임연구원 ) 이연구는국회예산정책처의정책연구용역사업으로 수행된것으로서, 본연구에서제시된의견이나대안등은

<C0E5B7C1BBF328BEEEB8B0C0CCB5E9C0C729202D20C3D6C1BE2E687770>

조사연구 권 호 연구논문 한국노동패널조사자료의분석을위한패널가중치산출및사용방안사례연구 A Case Study on Construction and Use of Longitudinal Weights for Korea Labor Income Panel Survey 2)3) a

시작하기 시작할 준비가 되었으면 다음 설명에 따라 설문조사를 실시한다. 1단계: 허락받기 클럽을 떠나는 회원에게 에 응해 줄 것인지 물어본다. 이 설문 조사는 클럽의 문제점을 보완해 향후 같은 이유로 이탈하는 회원들이 없도록 하기 위한 것이며, 응답 내용은 대외비로 처


슬라이드 1

<31372DB9DABAB4C8A32E687770>


DocsPin_Korean.pages

statistics

1

슬라이드 1

(001~006)개념RPM3-2(부속)

사회통계포럼

MATLAB for C/C++ Programmers

텀블러514


비선형으로의 확장

DBPIA-NURIMEDIA

untitled

i


저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

서론 1.1 연구배경및목적 Table 1. Cancer mortality Stomach cancer no. of deaths 11,701 11,190 10,935 10,716 10,563 10,312 m

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx


Tree 기반의 방법

15인플레이션01-목차1~9

에너지경제연구 Korean Energy Economic Review Volume 9, Number 2, September 2010 : pp. 19~41 석유제품브랜드의자산가치측정 : 휘발유를 중심으로 19

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

歯4차학술대회원고(장지연).PDF

생존분석의 추정과 비교 : 보충자료 이용희 December 12, 2018 Contents 1 생존함수와 위험함수 생존함수와 위험함수 예제: 지수분포

ISO17025.PDF

에너지경제연구 Korean Energy Economic Review Volume 17, Number 2, September 2018 : pp. 1~29 정책 용도별특성을고려한도시가스수요함수의 추정 :, ARDL,,, C4, Q4-1 -

확률과통계6

2156년올림픽 100미터육상경기에서여성의우승기록이남성의기록보다빠른첫해로남을수있음 2156년올림픽에서 100m 우승기록은남성의경우 8.098초, 여성은 8.079초로예측 통계적오차 ( 예측구간 ) 를고려하면빠르면 2064년, 늦어도 2788년에는그렇게될것이라고주장 유사

ETL_project_best_practice1.ppt

Microsoft PowerPoint - ICCAD_Analog_lec01.ppt [호환 모드]

<4D F736F F D20BDC3B0E8BFADBAD0BCAE20C1A B0AD5FBCF6C1A45FB0E8B7AEB0E6C1A6C7D E646F63>

<313920C0CCB1E2BFF82E687770>

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오.

Microsoft PowerPoint Relations.pptx

공학박사학위 논문 운영 중 터널확대 굴착시 지반거동 특성분석 및 프로텍터 설계 Ground Behavior Analysis and Protector Design during the Enlargement of a Tunnel in Operation 2011년 2월 인하대

G Power

???? 1

100, Jan. 21, 호, Jan. 21, , Jan. 21, 2005

유해중금속안정동위원소의 분석정밀 / 정확도향상연구 (I) 환경기반연구부환경측정분석센터,,,,,,,, 2012

Artificial Intelligence: Assignment 3 Seung-Hoon Na November 30, Sarsa와 Q-learning Windy Gridworld Windy gridworld는 (Sutton 교재 연습문제 6.5) 다음

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

Microsoft PowerPoint - chap04-연산자.pptx

제 4 장회귀분석

Orcad Capture 9.x

Microsoft PowerPoint - 26.pptx

PowerPoint 프레젠테이션

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

김경재 안현철 지능정보연구제 17 권제 4 호 2011 년 12 월

<352EC7E3C5C2BFB55FB1B3C5EBB5A5C0CCC5CD5FC0DABFACB0FAC7D0B4EBC7D02E687770>

14.531~539(08-037).fm


High Resolution Disparity Map Generation Using TOF Depth Camera In this paper, we propose a high-resolution disparity map generation method using a lo



OR MS와 응용-03장

Ⅰ. Introduction 우리들을 둘러싸고 잇는 생활 환경속에는 무수히 많은 색들이 있습니다. 색은 구매의욕이나 기호, 식욕 등의 감각을 좌우하는 것은 물론 나뭇잎의 변색에서 초목의 건강상태를 알며 물질의 판단에 이르기까지 광범위하고도 큰 역할을 하고 있습니다. 하

MATLAB for C/C++ Programmers

1 수사 경과 수사 착수 배경 신용카드 및 현금영수증 결제승인 대행 서비스업체인 밴사와 대형 가맹점 간의 리베이트 수사 과정에서,밴 수수료로 창출되는 막대한 이익을 둘러싸고 밴 업계의 경쟁이 과열되고 있다는 점에 착안 관련 비리를 집중 내사한 결과,밴 사업자 선정을 위

MATLAB and Numerical Analysis

PowerPoint 프레젠테이션

슬라이드 1

제 1 절 two way ANOVA 제1절 1 two way ANOVA 두 요인(factor)의 각 요인의 평균비교와 교호작용(interaction)을 검정하는 것을 이 원배치 분산분석(two way ANalysis Of VAriance; two way ANOVA)이라

FreeBSD Handbook

(, sta*s*cal disclosure control) - (Risk) and (U*lity) (Synthe*c Data) 4. 5.

untitled

강의10

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

제 출 문 환경부장관 귀하 본 보고서를 폐기물관리 규제개선 방안연구 에 관한 최종보고서로 제출합니다 연구기관 한국산업폐기물처리공제조합 연구책임자 연 구 원 연구보조원 이 남 웅 황 연 석 은 정 환 백 인 근 성 낙 근 오 형 조 부이사장 상근이사 기술팀장 법률팀장 기

소성해석

슬라이드 1

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

PowerPoint Presentation

Microsoft PowerPoint - MDA 2008Fall Ch2 Matrix.pptx

Microsoft Word - LectureNote.doc

슬라이드 1

Manufacturing6

Hands of compassion - Red Cross for our neighbors

Hands of compassion - Red Cross for our neighbors

???? 1


2002년 2학기 자료구조

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt


MAX+plus II Getting Started - 무작정따라하기

Transcription:

1 regularized model을 이용한 이미지 분류 1 Introduction 이미지 데이터는 매트릭스 형태이다. 이미지 분류를 하기 위해서 이미지 형식을 매트릭스 에서 벡터로 변환하는 작업이 필요하다. 그러면 하나의 이미지는 p차원인 벡터형식이다. 만약 n개의 이미지 데이터가 있다면 행은 n개이고 열은 p차원인 매트릭스 형식이 필요 하다. 여기서 사용할 데이터는 흑백 이미지로 이루어진 png 형식이다. 데이터의 출처는 Cambridge U niversity Computer Laboratory이고 1992년 4월부터 1994년 4월 사이에 랩 실에서 사람들의 얼굴을 촬영한 것이다. 40명의 사람들이 10개의 다른 표정을 짓고있다. 예를들어 눈을 감았거나 뜬 얼굴, 웃고 있거나 웃지 않는 얼굴, 안경을 썼거나 쓰지 않는 얼굴 이미지들이 있다. 본 연구의 목적은 안경을 쓴 사람과 쓰지 않은 사람을 분류하는 것 이다. 다음은 여기서 사용할 데이터의 일부분이다. Figure 1: The Database of Faces 각 이미지들의 매트릭스 구조가 같다(112 92). 이제 이 이미지를 벡터로 변환하는 작업을 실시하면 차원은 112 92 = 1030이다. 총 이미지의 개수 즉 관측값은 400개이므로 행: 400, 열: 10304인 매트릭스가 생성된다. 이미지 분류에는 여러가지 기법이 있는데 logistic regression model을 사용할 경우 현재

2 데이터의 차원(10304)이 관측값(400)보다 훨씬 크기 때문에(p >> n) overfitting 문제가 발생한다. 그러므로 logistic regression의 loss function에 penalty term을 주는 방식인 regularized regression model을 사용하면 p>>n인 경우에 overfitting 문제를 해결할 수 있다. regularized regression model은 ridge regression, lasso regression 그리고 elastic net regression model을 사용할 것이다. 2 2.1 Method Ridge regression Ridge regression이란 RSS를 최소화 하면서 회귀계수 β에 L2 norm을 제한하는 기법이다. 모수 추정식은 다음과 같다. R T β = argmin{(y Xβ) (y Xβ) + λkβk2 } wherekβk2 = β p X βj2 j=1 1 T T = (X X + λi) X y, λ 0, where I is the p p identity matrix p X T argmin{(y Xβ) (y Xβ)}, s.t βj2 t β j=1 ridge의 경우 penalty term이 L2 norm 즉, 제곱꼴로 되어있다. 제약식을 보면 β의 제 곱합이 t보다 작으므로 그래프로 그려보면 Figure1 같은 원의 형태로 나타난다. 그래프를 보면 제약식이 동그라미 모양으로 표현되므로 등고선(MSE의 그래프)과 정확하게 한 점에 서 만나지 않는 것을 알 수 있다. 다시 말하면 회귀계수β = 0이 될 수 없으므로 변수 선택이 불가능하다. 또한 t가 커지면 제약식인 동그라미 모양이 커져서 β (OLS에서 모수 추정값) 에 가까와지면서 OLS(Ordinary Least Square)꼴과 비슷해진다. 반대로 t가 작아지면 제약 식인 동그라미 모양이 작아져서 β에 가중치가 커져서 β값들이 0에 가까와진다.

3 Figure 2: Contours of the error and contraint functions for the ridge regression. 2.2 Lasso regression Lasso regression이란 RSS를 최소화하면서 회귀계수 β에 L1 norm을 제한하는 기법이다. 모수 추정식은 다음과 같다. L β = argmin{(y Xβ)T (y Xβ) + λkβk1 } β T argmin{(y Xβ) (y Xβ)} s.t β where kβk1 = p X βj t j=1 p X βj j=1 lasso의 경우 penalty term이 L1 norm 즉, 절댓값 꼴로 되어있다. 제약식을 보면 β의 절 댓값합이 t보다 작으므로 그래프로 그려보면 Figure2와 같은 다이아몬드 형태로 나타난다. 그래프를 보면 제약식이 다이아모드 모양으로 표현되므로 등고선과 정확하게 한 점에서 만나는 것을 알 수 있다. 다시 말하면 회귀계수 β = 0이 될 수 있으므로 변수 선택이 가 능하다. 또한 t가 커지면 제약식인 다이아몬드 모양이 커져서 β (OLS에서 모수 추정값)에 가까와지면서 OLS꼴과 비슷해진다. 반대로 t가 작아지면서 제약식인 다이아몬드 모양이 작아져서 β추정값들이 0에 가까와진다. 즉 변수 선택이 되는 것이다.

4 Figure 3: Contours of the error and contraint functions for the ridge regression. ridge regression과 lasso regression의 차이점 두 제약식의 그래프를 살펴보면 ridge regression은 β 추정값이 0이 될 수 없어서 변수선택이 불가능하고 lasso regression은 β 추정값이 0이 될 수 있으므로 변수선택이 가능하다. 둘 다 차원(p)이 관측수(n)모두 큰 경우에 오버피팅 문제를 피하기 위해서 사용하기 적합하 다. 다음과 같은 예시가 있다. 10,000개의 변수를 가지고 있는 큰 데이터 셋이 있다. 그리고 이 변수들 중에는 서로 correlate되어있는 변수들이 존재한다. 이런 경우 ridge와 lasso 중 어떤 예측 모형을 사용해야 하는가? 1. ridge regression 적용할 경우 모든 변수를 가지고 오면서 계수값을 줄일 것이다. 하 지만 문제는 변수가 10,000개 그대로 유지하므로 모델이 굉장히 복잡하다. 이는 모델 성능 저하에 영향을 미칠 수 있다. 2. lasso regression 적용할 경우 lasso에서의 가장 큰 문제는 변수들끼리 correlate하면 lasso는 단 한 개의 변수만 채택하고 다른 변수들의 계수는 0으로 바꿀 것이다. 이는 정보가 손실되므로 정확성이 떨어질 수 있다. 이런 문제를 해결하는 방법은 다른 regularized regression model인 Elastic net regression

5 을 사용하는 것이다. 2.3 Elastic net regression Elastic net regression이란 RSS를 최소화하면서 회귀계수 β에 L1 norm과 L2 norm 두 개를 제한하는 기법이다. 모수 추정식은 다음과 같다. β enet = argmin{(y Xβ)T (y Xβ) + λ1 kβk1 + λ2 kβk2 } β argmin{(y Xβ)T (y Xβ)} s.t (1 α)kβk1 + αkβk2 t for some t β (1 α)kβk1 + αkβk2 를 elastic net penalty라고 부르고 ridge penalty와 lasso penalty를 결 합한 형태이다. α = 1이면 elastic net은 simple ridge regression이 되고, α = 0이면 elastic net은 simple lasso regression이 된다. 다시 말하면 elastic penalty는 변수의 축소와 선택을 모두 할 수 있고, 최적의 α를 찾아 elastic net의 β를 추정할 수 있다. 이제 실제 데이터를 사 용하여 α값을 바꿔가며 최적의 α값을 찾고 ridge regression, lasso regression 그리고 elastic net regression의 성능 비교를 실시하도록 하겠다.

3 6 Results and Conclustion 본 연구에서는 R 프로그램을 사용하여 분석을 실시했다. 앞서 언급했듯이 본 연구의 목적은 사람들의 얼굴 데이터를 사용하여 안경을 쓴 사람과 쓰지 않은 사람을 분류하는 것이다. 여 기서 반응변수는 y (0, 1) 로 이루어져 있으므로 logistic regression을 이용하여 회귀계수를 추정할 수 있다. 하지만 설명변수의 수가 10304개로 매우 많으므로 설명변수들 사이의 강한 상관관계로 인한 다중공선성이 존재할 수 있기 때문에 회귀계수 추정량의 분산이 커져서 추정회귀식의 예측정확도가 떨어지는 문제점이 발생할 수 있다. 또한 설명변수의 개수가 증가하면 변수에 대한 해석력이 떨어진다. 다시 말하면 많은 설명변수 중 어떤 변수가 중 요한 역할을 하는지에 대한 판단이 어려워진다. 그러므로 차원 축소를 통해 예측 정확도 (prediction accuaracy)를 높여주는 regularized regression model을 사용할 것이다. 데이터 불러오는 작업 pgm형식의 이미지 파일을 불러오는 함수인 pixmap패키지의 read.pnm를 사용하여 불러 온다. 그러면 각 이미지 파일은 (112 92)의 매트릭스 형식으로 저장이 된다. 이제 각 이 미지를 매트릭스에서 벡터로 바꾸는 작업을 실시하고 400개의 벡터를 매트릭스 형식(400 10305)으로 생성한다. 안경 쓴 사람들은 y = 1, 쓰지 않은 사람들은 y = 0으로 지정한다. 이제 이 y값을 원래 이미지 데이터로 만든 매트릭스와 결합한다. 이렇게 생성된 매트릭스에 glmnet패키지를 이용하여 ridge, lasso 그리고 elastic net regression을 적용하도록 하겠다. 데이터 나누는 작업 400개의 관측값을 200개의 train data와 200개의 test data로 나눈다. Ridge regression 적용 glmnet패키지의 glmnet함수는 elastic net의 α를 조절하면 ridge와 lasso regression을 적용 할 수 있다. 여기서는 α = 1로 설정하여 elastic net이 ridge regression이 되도록하여 분석 한다. 최적의 tuning parameter(λ)를 선택하는 방법은 cross-validation을 적용하여 crossvalidation error가 가장 작은 λ를 선택하는 것이다. 그래프로 그려보면 Figure4과 같고, 그렇게 선택한 결과 λ = 1.892이다. 이 λ를 ridge regression에 적용하여 분석한 뒤 test data를 예측한 결과 confusion matrix는 다음과 같고 예측 정확도를 계산해 보면 85%이다. 0 1 0 134 28 1 2 36

7 Figure 4: Plot of selecting lambda which is ridge penalty using cross-validation Lasso regression 적용 이제 α = 1로 설정하여 elastic net이 lasso regression이 되도록하여 분석한다. 최적의 tuning parameter(λ)를 선택하는 방법은 ridge와 마찬가지로 cross-validation을 적용하여 crossvalidation error가 가장 작은 λ를 선택하는 것이다. 그래프로 그려보면 Figure5와 같고, 그렇게 선택한 결과 λ = 0.0127이다. 이 λ를 lasso regression에 적용하여 분석한 뒤 test data를 예측한 결과 confusion matrix는 다음과 같고 예측 정확도를 계산해 보면 78%이다. 0 1 0 129 37 1 7 27

8 Figure 5: Plot of selecting lambda which is lasso penalty using cross-validation Elastic net regression 적용 이제 α = 0.5로 적당한 값을 주어 ridge와 lasso의 중간이 되도록하여 분석한다. 최적의 tuning parameter(λ)를 선택하는 방법은 ridge, lasso와 마찬가지로 cross-validation을 적용 하여 cross-validation error가 가장 작은 λ를 선택하는 것이다. 그래프로 그려보면 Figure6 와 같고, 그렇게 선택한 결과 λ = 0.004이다. 이 λ를 lasso regression에 적용하여 분석한 뒤 test data를 예측한 결과 confusion matrix는 다음과 같고 예측 정확도를 계산해 보면 81% 이다. 0 1 0 127 29 1 9 35

9 Figure 6: Plot of selecting lambda which is elastic penalty using cross-validation ridge vs lasso vs elastic net Ridge Lasso Elastic net 85% 78% 81% 위의 표는 세 개의 regularized regression model의 예측 정확도를 비교한 것이다. 표에 의하면 Ridge regression이 85%로 제일 높고, 두 번째로는 Elastic net regression이 81%로 높고 마지막은 Lasso regression이 78%로 제일 낮다. ROC curve로 비교한 결과는 Figure7 과 같다. ROC curve를 봐도 Ridge regression model이 데이터에 가장 적합한 것 같다.

10 Figure 7: Plot of ROC curve of ridge, lasso and elastic net regression 4 Appendix rm( list = ls ()) gc( reset = T) set. seed (2017) ## load library library ( pixmap ) library ( glmnet ) library ( ROCR ) ## data load pic = list () k=1 for (j in 1:40){ setwd ( paste 0("C :\\ Users \\ uos \\ Google drive \\ datamining _ project \\ att _ faces \\","s",j)) for (i in 1:10){

11 } } pic [[k]]= read. pnm ( file = dir ()[ i]) @grey k=k+1 ## data set pic. mat = matrix ( unlist ( lapply (pic,as. vector )), nrow = length ( pic ), byrow = T) pic. mat.y=c(0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0,0,0, 1,1,1,0,0,0,0,1,1,0, 0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1, 0,0,0,1,1,0,0,0,0,1, 0,0,0,0,0,0,0,0,0,0, 1,1,0,0,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 1,1,1,0,1,0,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,1,1, 1,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0) ## data split idx = sample ( nrow ( pic. mat ), nrow ( pic. mat )/2) face.tr=as. matrix ( pic. mat [idx,-1]) face.tr.y= pic. mat [idx,1] face.te=as. matrix ( pic. mat [-idx,-1]) face.te.y= pic. mat [-idx,]1

12 ## ridge regression ri.fit = glmnet (x = face.tr,y = as. factor ( face.tr.y), family = " binomial ", alpha = 0) ri. pred = predict (ri.fit, newx = face.te) ri.cv=cv. glmnet (x = face.tr,y = face.tr.y, alpha =0) bestlam =ri.cv$ lambda. min ri.fit 1= glmnet (x = face.tr,y = as. factor ( face.tr.y), family = " binomial ", alpha = 0, lambda = bestlam ) ri. pred 1 = predict (ri.fit 1, newx = face.te) ri. probs = exp (ri. pred 1 )/( 1+ exp (ri. pred 1)) ri. prob = ifelse (ri. probs > 0.5,1,0) ri.ta= table (ri.prob, face.te.y) (ri.ta[1,1]+ ri.ta[2,2 ])/ sum (ri.ta) ## lasso resgression la.fit = glmnet (x = face.tr,y = as. factor ( face.tr.y), family = " binomial ", alpha = 1) la. pred = predict (la.fit, newx = face.te) la.cv=cv. glmnet (x = face.tr,y = face.tr.y, alpha =1) bestlam =la.cv$ lambda. min la.fit 1= glmnet (x = face.tr,y = as. factor ( face.tr.y), family = " binomial ", alpha = 1, lambda = bestlam ) length (la.fit 1$ beta [,1][ la.fit 1$ beta [,1]!= 0]) ## 10304 -> 75 subset selection la. pred 1 = predict (la.fit 1, newx = face.te) la. probs = exp (la. pred 1 )/( 1+ exp (la. pred 1)) # prob la. prob = ifelse (la. probs > 0.5,1,0) la.ta= table (la.prob, face.te.y) # confusion matrix (la.ta[1,1]+ la.ta[2,2 ])/ sum (la.ta) # accuracy ## elastic net regression

13 el.fit = glmnet (x = face.tr,y = as. factor ( face.tr.y), family = " binomial ",alpha = 0.5) el. pred = predict (el.fit, newx = face.te) el.cv=cv. glmnet (x = face.tr,y = face.tr.y, alpha =0.5) bestlam =el.cv$ lambda. min el.fit 1= glmnet (x = face.tr,y = as. factor ( face.tr.y),family = " binomial ",alpha = 0.5,lambda = bestlam ) el. pred 1 = predict (el.fit 1, newx = face.te) el. probs = exp (el. pred 1 )/( 1+ exp (el. pred 1)) el. prob = ifelse (el. probs > 0.5,1,0) el.ta= table (el.prob, face.te.y) (el.ta[1,1]+ el.ta[2,2 ])/ sum (el.ta) ## cv error plot plot (la.cv) plot (ri.cv) plot (el.cv) # ROC curve roc.la= performance ( prediction (la.probs, face.te.y)," tpr "," fpr ") roc.ri= performance ( prediction (ri.probs, face.te.y)," tpr "," fpr ") roc.el= performance ( prediction (el.probs, face.te.y)," tpr "," fpr ") plot ( roc.la, main =" ROC curve ",lwd =2) ri.x= unlist ( attr ( roc.ri,"x. values " )); ri.y= unlist ( attr ( roc.ri,"y. values ")) el.x= unlist ( attr ( roc.el,"x. values " )); el.y= unlist ( attr ( roc.el,"y. values ")) lines (ri.x,ri.y,col =" red ",lwd =2) lines (el.x,el.y,col =" blue ",lwd =2) legend (x = 0.75,y = 0.25,legend = c(" ridge "," elastic net "," lasso "), col = c(" red "," blue "," black "), lwd = 2)