Download presentation
Presentation is loading. Please wait.
1
기계학습과 R 실습
2
Intro 기계학습과 R의 연관성 신경망 모형의 구조
3
R의 기본적 특징들
4
객체(object) R의 기본적 특징들 R에서 객체(object)의 형태
name <- object(x) #특정 객체(object)를 name에 할당한다. 예시) a <- 3 #(상수) x <- c(3.5,6,8.3) #(벡터) m <- mean(x) #(함수) 현재 작업공간에서의 객체 나열 objects() 함수 사용 <- , = , <<- : 사용가능 == : 동등(equal)연산자
5
객체(object) R의 기본적 특징들 R에서 객체(object)명명을 위한 규칙
① 객체의 명에 영문자, 숫자, “.”, “_” 를 사용할 수 있다. ② 단 영문자는 대문자와 소문자를 구별한다. ③ “_” 와 숫자는 객체 이름 제일 앞에 사용할 수 없다. 예시) stat.m<-c(1:10) STAT.M<-c(1:5) 1stat<-c(1:10) _stat<-c(1:10)
6
벡터(Vector) R의 기본적 특징들 벡터란? (물리학)크기와 방향을 갖고 있는 양
(선형대수학) 크기가 𝑛×1(열벡터)과 1×𝑛(행벡터)인 행렬 R에서 벡터의 종류 숫자형벡터 : 숫자를 나열한 것, 숫자가 벡터의 구성요소 문자형벡터 : 문자가 벡터의 구성요소 ※주의점 ※ 벡터의 모든 구성 요소는 반드시 같은 유형이어야 한다.
7
숫자형 벡터(Vector) R의 기본적 특징들 R에서 숫자형 벡터 생성하기 c() 함수 사용 예시)
x<-c(1,1,1,2,2,2,3,3,3) x number1to50<-c(1:50) new<-c(number1to50,51:60) new
8
숫자형 벡터(vector) R의 기본적 특징들 간단한 패턴이 있는 벡터(1/2) seq() , rep() , : 함수 사용
일반적인 배열 생성시 사용 seq(from=1, to=1, by=((to-from)/(length.out-1)), ⋯) 예시) seq(from=1,to=50,by=5) seq(1,50,5)
9
숫자형 벡터(vector) R의 기본적 특징들 간단한 패턴이 있는 벡터(2/2) seq() , rep() , : 함수 사용
x안에 있는 값을 반복할 때 사용 rep(x, times) 예시) rep(3, 20) rep(c(1:4),3) rep(c(1,8),c(2,5))
10
숫자형 벡터(Vector) R의 기본적 특징들 벡터의 구성 요소 부분 선택하기 대괄호, [] 사용 예시) new[22]
new[c(50:60)] new[c(1,15,60)] new[-22] new[-c(50:60)]
11
벡터(vector)의 특수한 값들 R의 기본적 특징들 R에서의 특수한 값들 예시) unique <- NULL
unique[seq(1,20,2)] <- seq(1,20,2); unique 특수한 값 설명 NULL NULL 객체, 미정(undefined)의 값을 표현하는 경우 NA 결측치(Not Available), 값이 없는 경우 NaN 수학적으로 정의가 불가능한 수(Not a Number) Inf 양의 무한대(Infinity number) -Inf 음의 무한대
12
벡터(vector)의 특수한 값들 R의 기본적 특징들 R에서의 특수한 값들 예시) x <- c(0,7,8) x/x 1/x
설명 NULL NULL 객체, 미정(undefined)의 값을 표현하는 경우 NA 결측치(Not Available), 값이 없는 경우 NaN 수학적으로 정의가 불가능한 수(Not a Number) Inf 양의 무한대(Infinity number) -Inf 음의 무한대
13
행렬(matrix) R의 기본적 특징들 행렬이란? 벡터들의 결합이며 수나 식을 직사각형으로 배열한 것이다.
가로줄은 행(row), 세로줄은 열(columns)이라 한다. R에서 행렬생성하기 matrix() 함수 사용 rbind() 함수 사용 cbind() 함수 사용 array() 함수 사용 ※주의점 ※ 행렬의 모든 구성 요소도 반드시 같은 유형이어야 한다.
14
행렬(matrix) R의 기본적 특징들 R에서 행렬생성하기(1/2)
matrix(data, nrow, ncol, byrow=F) 함수 사용 cbind() 함수 사용 예시) m<-matrix(c(2,1,1,-5,-3,0,1,1,-1), nrow=3, ncol=3, byrow=T) v1<-c(2,-5,1) v2<-c(1,-3,1) v3<-c(1,0,-1) v_matrix<-cbind(v1,v2,v3); v_matrix 𝑚= −5 − −1
15
행렬(matrix) R의 기본적 특징들 R에서 행렬생성하기(2/2) rbind() 함수 사용
array(data, dim) 함수 사용 예시) r1<-c(1:3) r2<-c(4:6) r3<-c(7:9) a<-rbind(r1,r2,r3); a dat<-c(1,4,3,8,2,6,7,8,3,4,9,6,7,8,1) array(dat, c(3,5))
16
행렬(matrix) R의 기본적 특징들 R에서 구성요소 선택하기 대괄호 [ , ] 사용 예시) m[2,2] m[4,1]
𝑚= −5 − −1
17
행렬(matrix) R의 기본적 특징들 R에서 행렬 기본연산 계산 명령어 더하기 + 빼기 - 곱하기 * 나누기 / n제곱 ^
나머지 %% 행렬 곱 %*% 예시) x <- matrix(1:9, nrow=3, byrow=F) y<-matrix(1:9, nrow=3, byrow=T) x+y x-y x/y x%%y x^y x%*%y 연산을 원하는 행렬의 크기가 같아야 함 (원소의 연산) 𝑋 𝑛×𝑚 × 𝑌 𝑚×𝑛 곱하고자 하는 X행렬의 열과 Y행렬의 행이 같아야 함
18
행렬(matrix) R의 기본적 특징들 R에서 행렬 연산 전치행렬 t() 함수 사용 역행렬 solve() 함수 사용 행렬식
det() 함수 사용
19
행렬(matrix) 𝐴= 2 7 6 9 5 4 6 2 1 R의 기본적 특징들 전치행렬 t() 함수 사용 역행렬
solve() 함수 사용 행렬식 det() 함수 사용 예시) a<-matrix(c(2,9,6,7,5,2,6,4,1),nrow=3); a t(a) det(a) solve(a) 𝐴=
20
R의 기본적 특징들 R의 데이터 구조
21
데이터 형태의 변환 R의 기본적 특징들 데이터 형태 명령어 변환 규칙 숫자형(numeric) as.numeric
“1”, “2” → 1, 2 “A” → NA FALSE → 0 / TRUE → 1 논리형(logical) as.logical 0 → FALSE 그 외 다른 수 → TRUE “FALSE”, “F” → FALSE “TRUE”, “T” → TRUE 그 외 다른 문자 → NA 문자형(character) as.character 1, 2 → “1”, “2” FALSE → “FALSE” TRUE → “TRUE” 요인(factor) as.factor 벡터(vector) as.vector 행렬(matrix) as.matrix 데이터프레임(dataframe) as.data.frame
22
데이터 셋 저장하기 데이터 셋 불러오기 데이터의 입력과 출력 R에서 데이터 셋 불러오기
txt파일형식 : read.table(file, header=F, sep=“”, ⋯) csv파일형식 : read.csv(file, header=F, sep=“,”, ⋯) * sep= “” / “,” / “;” / “\t” 데이터 셋 불러오기 R에서 데이터 셋 저장하기 write.table(x, file=“”, sep=“”, ⋯)
23
사용자함수(function) 기본 문법 사용자함수(function)란?
입력을 받아 계산(e.g. 결과의 출력, 그래프생성 등)을 수행하기 위해 정의된 프로그 램 코드의 집합체로서 R 객체의 한 종류 함수명 <- function(인수 또는 입력값) { <계산 처리 1> <계산 처리 2> · · · return(계산 결과 반환) } 입력 x 함수 f( ) f(x)의 결과를 출력
24
사용자함수(function) 기본 문법 활성함수(activation function)란?
입력신호의 총합을 출력신호로 변환하는 함수로 대개 비선형함수를 사용함
25
사용자함수(function) 기본 문법 활성함수(activation function)란?
입력신호의 총합을 출력신호로 변환하는 함수로 대개 비선형함수를 사용함 예시) Sigmoid 함수를 sig라는 객체명으로 정의하라. sig<-function(x){ 1/(1+exp(-x))} sig(a) OR install.packages(‘sigmoid’) library(sigmoid) sigmoid(x)
26
사용자함수(function) 기본 문법 활성함수(activation function)란?
입력신호의 총합을 출력신호로 변환하는 함수로 대개 비선형함수를 사용함 예시) Hyperbolic Tangent 함수 사용하라. tanh() 함수 사용 tanh(a)
27
조건문(if-else) 기본 문법 조건문(if-else)이란? 조건에 따라 다른 처리를 하고자 할 때 사용함 if(조건식) {
<조건식이 TRUE일 때 실행되는 식> } else { <조건식이 FALSE일 때 실행되는 식>
28
조건문(if-else) 기본 문법 조건문(if-else)이란? 조건에 따라 다른 처리를 하고자 할 때 사용함
예시) 입력 x가 음수면 양수로, 음수가 아니면 그대로 출력하는 함수 myabs를 정의 하라. myabs<-function(x){ if(x<0){ return(-x)} else{ return(x)} } myabs(-10) myabs(108) x가 음수(x<0) 출력: -x 입력 x 함수 f( ) 출력: x x가 양수(x>=0)
29
반복문(for, while) 기본 문법 반복문(for, while)이란? 어떤 처리를 반복해서 실행하고 싶을 때 사용함
for(루프변수 in 리스트) { <…반복할 식…> } 반복문 – while문 while(조건) { <…반복할 식…> }
30
반복문(for, while) 기본 문법 반복문(for, while)이란? 어떤 처리를 반복해서 실행하고 싶을 때 사용함
for문 예시) 1부터 10까지 차례대로 더한 값이 저장된 객체 ‘sum’을 생성하라. sum<-1 for (i in 2:10){ sum[i]<-sum[i-1]+i} sum while문 예시) 1,⋯,n을 더했을 때 100이 넘으며 100과 가장 가까운 수가 되는 n을 구 하라. n<-0; total<-0 while(total<=100){ n<-n+1 total<-total+n } n; total
31
감사합니다
Similar presentations