Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 상관관계
- Intersect
- max
- 회귀분석 알고리즘
- 그래프시각화
- sqld
- 그래프 생성 문법
- 여러 데이터 검색
- Dense_Rank
- 불순도제거
- count
- 순위출력
- %in%
- 단순회귀 분석
- 막대그래프
- sql
- 팀스파르타
- 회귀분석
- Sum
- 데이터분석가
- 빅데이터분석
- 총과 카드만들기
- difftime
- 히스토그램 그리기
- merge
- if문 작성법
- 빅데이터
- 데이터분석
- loop 문
- 정보획득량
Archives
- Today
- Total
ch0nny_log
[빅데이터분석] R _ 62. 훈련과 테스트를 분리한 다중 회귀 모델 본문
※ 다중회귀 분석결과 해석을 하기 앞서서 확인해야 될 사항!
1. 변수들 끼리의 상관관계 분석
2. 다중 공선성 문제가 있는지 모델 생성후에 확인
3. 종속 변수에 미치는 독립변수들의 영향력만 확인하고 싶다면 표준화나 정규화를 수행
※ 다중회귀 모델의 성능을 높이는 방법!
1. 좋은 파생변수를 생성
2. 이상치를 제거하거나 다른 값으로 치환
3. 결측치를 제거 하거나 다른 값으로 치환
+ 빅분기 실기 시험은 제한된 시간안에 문제를 풀면되어서 위의 작업을 하는 문제들이 출제되지는 않고 성능이 좋은 모델인지 아닌지를 테스트하는 시험입니다.
1유형: 데이터 전처리
2유형: 모델 생성
3유형: 가설 검정
케글에 도전하거나 공모전에 도전하거나 빅분기 시험이면 훈련과 테스트를 분리해서 회귀 모델을 생성해야합니다.
실습. 훈련과 테스트를 분리해서 다중회귀 모델 만들기
#1. 데이터를 불러옵니다. ins <-read.csv('c:\\data\\insurance.csv',header = T) ins #2. 데이터를 살펴봅니다. colSums(is.na(ins)) #3. 훈련과 테스트를 분리합니다. set.seed(123) library(caret) k <- createDataPartition( ins$expenses, p=0.9, list=FALSE) train_data <- ins[ k , ] test_data <- ins[ -k , ] nrow(train_data) #1206 nrow(test_data) #132 #4. 다중회귀 모델을 생성합니다. model <- lm(expenses ~ . , data=train_data) summary(model) #5. 모델의 성능을 확인합니다. result <- predict( model, newdata=test_data) cor( result, test_data$expenses) #6. 모델의 성능을 높입니다.(파생변수 생성) ins$bmi30 <- ifelse( ins$bmi >= 30, 1, 0 ) train_data <- ins[ k , ] test_data <- ins[ -k , ] nrow(train_data) #1206 nrow(test_data) # 132 #7. 다중회귀 모델을 재생성합니다. model2 <- lm(expenses ~ . , data=train_data) summary(model2) #8. 모델의 성능을 재확인합니다. result2 <- predict( model2, newdata=test_data) cor( result2, test_data$expenses) #9. 비만이면서 흡연도 하는 파생변수 추가 생성 model3<- lm(expenses~.+bmi30*smoker,data=train_data) summary(model3) #10. 모델의 성능을 확인합니다. result3 <- predict( model3, newdata=test_data) cor( result3, test_data$expenses)
- 결정계수: 0.7585 <-- 훈련데이터에 대한 설명력
- 상관계수: 0.85 <- 테스트에 대한 시험 점수
예를들어) 수업 태도가 좋은건 결정계수가 높은 것/ 시험결과가 좋은건 상관계수가 높은 것
결졍계수가 0.75-> 0.86 으로 증가함.
상관 계수도 0.85 -> 0.91 으로 증가함.
※ (외워가야하는 빅분기 시험용 코드) 랜덤 포레스트로 위의 모델을 변경하시오
#1. 패키지를 설치합니다. install.packages('randomForest') #2. 모델을 생성합니다. library(randomForest) set.seed(123) r_model <-randomForest(expenses~.+bmi30*smoker, data= train_data) print(r_model) #3. 모델을 평가합니다. result4 <- predict( r_model, newdata=test_data) cor(result4,test_data$expenses)
'빅데이터 분석(with 아이티윌) > R' 카테고리의 다른 글
[빅데이터분석] R _ 64. 로지스틱 회귀분석 (0) | 2024.07.22 |
---|---|
[빅데이터분석] R _ 63. 회귀트리와 모델트리 (0) | 2024.07.18 |
[빅데이터분석] R _ 61. 다중 공선성 (0) | 2024.07.18 |
[빅데이터분석] R _ 60. 다중회귀 (0) | 2024.07.18 |
[빅데이터분석] R _ 59. 상관관계 (0) | 2024.07.16 |