안녕하세요.
매일 공부하는 나루입니다. 내일배움카드로 신청한 '데이터분석준전문가 자격증' 교육과정을 수강하고 있습니다. 아직 자격 시험에 신청 안 한 상태에요. 왜냐하면, 생각보다 어렵더라고요. 그래서 오늘은 학원에서 배웠던 머신러닝 공부할 예정입니다. 이제 완강이 얼마 남지 않았으니 7월 말까지 해보고 자격증 시험을 볼지 안 볼지 결정하려고요. 흑흑 태생부터 문과생에게는 이 길이 조금 어렵지만, 포기하지는 않을 것입니다!
아래 내용부터 학원에서 배운 머신러닝(Machine learing)만드는 과정에서 이해가 안 갔던 부분들을 정리하며 복습합니다.
1. Data processing template
(data_preprocessing.R 파일)
* 머신러닝 만들기 전 결측 값을 제거해야 하는데, spply로 하는 방법
- sapply : lapply함수에서 사용자 편의성을 고려한 함수로 sapply( , simplify =F)인 경우 lapply( )와 같은 결과를 출력하고, for문을 대체할 수 있는 가장 편리한 함수임
* 문자를 숫자로 변환할 때 'levels' 과 'factor' 활용
- levels : levels provides access to the levels attribute of a variable. The first form returns the value of the levels of its argument and the second sets the attribute.
* 예측결과로 나올 컬럼의 값은, 0 또는 1로 세팅
* 학습용 데이터와 테스트용 데이터 분리
* Feature Scaling
2. Linear Regression (선형회귀)_예제 1
(linear_reg.R 파일)
- 통계학에서, 선형 회귀는 종속 변수 y와 한 개 이상의 독립변수 x와의 선형 관계를 모델링하는 회귀분석 기법
- 한개의 설명 변수에 기반한 경우에는 단순 선형 회귀, 둘 이상의 설명변수에 기반한 경우 다중선형 회귀라고 함
- 우리는 위의 그림처럼 해당 분포를 만족하는 직선을 찾는 것을 목표로 함
* Dataset 불러오기
* 결측값 처리
* 트레인셋과 테스트셋을 분리
- subset : 설정하는 조건에 맞는 벡터, 매트릭스, 데이터프레임을 반환
* Liner Regression 모델은, Feature Scaling을 자체적으로 수행해서 따로할 필요없어, 모델링 및 학습 바로 진행
* summary 값 해석(이 부분 중요하다고 강조하심)
- y = ax + b
[x : 학습에 사용할 컬럼(YearsExperience, y : 예측값(Salary), a : 기울기, b : y절편)
→ y = 9153.8x + 28108.5 - p-value(pr>|t|) : 0.05보다 작은지 확인 > 0.05보다 작으면 '유의하다'고 함
따라서 연봉 설정에 경력이 중요한지 아닌지를 보여줌 - Signif. codes : ***은 0에 가까워질 수록 관련성이 높음을 보여줌
(예) 6.18e-07(0이 앞에 7개라는 뜻) *** = 0.0000000618 - 따라서 이 결과 값은 유의미한 관계를 가지고 있음을 확인할 수 있음
* 예측하기 → test_set으로 예측해서 성능평가, 왜냐하면 학습을 train_set으로 시켜서 모델을 만들었으니까
* Visualising
install.packages(ggplot2)
library(ggplot2)
ggplot() + geom_point(aes(x = train_set$YearsExperience, y = train_set$Salary), colour = 'red') + geom_line(aes(x = train_set$YearsExperience, y = predict(regressor, newdata = train_set)), colour = 'blue') + ggtitle('Salary vs Experience (Train set)') + xlab('Years of experience') + ylab('Salary'
* test_set 결과보기, Visualising the test set results
3. Linear Regression (선형회귀)_ 예제2. 수익 예측 인공지능 만들기
(linear_reg.R 파일)
* formula로 회귀식 생성시 컬럼 범위 지정 하기
- formula : The genetic function formula and its specific methods provide a way of extracting formulae which have been included in other objects
- summary 결과 관련성 없는 컬럼이나옴, 이럴 때는 정확도를 높이기 위해 'Backward Elimination' 수행
* Backward Elimination
backwardElimination <- function(x, sl) {
numVars = length(x)
for( i in c(1:numVars)){
regressor = lm(formula = Profit ~ ., data = x)
maxVar = max(coef(summary(regressor))[c(2:numVars), "Pr(>|t|)"])
if(maxVar > sl){
j = which(coef(summary(regressor))[c(2:numVars), "Pr(>|t|)"] ==
maxVar)
x = x[ , -j]
}
numVars <- numVars - 1
}
return(summary(regressor))
}
head(dataset)
backwardElimination(training_set, 0.05)
* 예측하기
4. Linear Regression (선형회귀)_ 예제3. 상관관계 분석 적용
(linear_reg2.R 파일)
* 기본 세팅
* 숫자로 되어있는 컬럼만 가져와서 새로운 data frame 만들기
* cor.data 눌러서 상관정도 확인
* 상관관계 확인위해 다이어그램 그리기
- 파란색은 비례, 빨간색은 반비례를 상징하고 색깔은 진할 수록 상관관계가 높음
* G3의 값 분포를 히스토그램으로 확인
* linear reg modeling (선형 회귀 모델링)
-
plot(regessor)을 입력하면, '다음 플랏을 보기 위해서는 <Return>키를 치세요'라고 나옴, <Return>키를 치는 아래와 같은 표가 나옴
- 위의 표에 대한 설명은 10주차에 공부할 예정
* 예측하기
5. Logistic Regression
* 로지스틱 회귀란?
일반적인 회귀분석의 목표와 동일하게 종속변수와 독립변수간의 관계를 구체적인 함수로 나타내어 향후 예측 모델에 사용하는 것이다. 이는 독립 변수의 선형 결합으로 종속 변수를 설명한다는 관점에서 선형 회귀 분석과 유사하다. 하지만 로지스틱스 회귀는 선형 회귀 분석과는 다르게 종속변수가 범주형 데이터 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나뉘기 때문에 일종의 분류 기법으로도 볼 수 있다. 흔히 로지스틱 회귀는 종속변수가 이항형 문제를 지칭할 때 사용된다. 이외에 두 개 이상의 범주를 가지는 문제가 대상인 경우엔 다항 로지스틱 회귀 또는 분화 로지스틱 회귀라고하고 복수의 범주이면서 순서가 존지하면 서수 로지스틱 회귀라고 합다. 로지스틱 회귀분석은 의료, 통신, 데이터 마이닝과 같은 다양한 분야에서 분류 및 예측 위한 모델로서 폭 넓게 사용되고 있다.
지금까지 R을 활용한 linear Regression modeling을 통해 결과값을 해석하고, 상관관계 분석, 로지스틱 회귀식에 대해 공부했습니다.
* 자료출처
- 선형회귀, 로지스틱 회귀
- R의 'Help' page 활용
- NAVER Blog _ 잡동사니탐구 - 참스터디 God Go, m.blog.naver.com/samsjang/220991490995
'문과생 DT 정복기 > DT 공부하기' 카테고리의 다른 글
R활용 머신러닝(Machine Learning)_ 연관규칙 분석, apriori / inspect 함수 (0) | 2020.07.11 |
---|---|
R활용 머신러닝(Machine Learning)_ Decision Tree, K-means, Hierarchical Clustering (HC) (0) | 2020.07.09 |
R활용 머신러닝(Machine learning)- KNN, SVM, Guassian RBF Kernel (0) | 2020.07.07 |
Data Analysis '데이터분석 준전문가' 자격증 소개 (0) | 2020.06.08 |
데이터 분석 준전문가(ADSP)교육 과정 추천 (0) | 2020.06.08 |