2회 기출문제를 R 을 활용하여 연습해 본 결과물이다.
문제를 복원하는 것은 문제가 될 수도 있으니 필답형은 개념만 공유하고, 작업형은 실습한 코드를 공유 한다.
(정답이 아닐 수도 있지만, 어느 정도 부분점수는 당연히 기대할 수 있을 것이다)
(1) 필답형
이상치 / 평균대치법 / 초매개변수 / 비지도학습 / 과대적합 / 후진 소거법 / 부스팅
GBM(Gradient Boost Machine) / 노드 계산(가중치, bias 포함) / ROC 곡선
(2) 작업형
1. BostonHousing 데이터 세트에서 crim 항목의 상위에서 10번째 값으로 상위 10개의 값을 변환하고, age 80 이상인 값에 대해서 crim 평균을 구하시오.
# BostonHousing 데이터 불러오기
> library(mlbench)
> data("BostonHousing")
> ds <- BostonHousing
# 데이터셋 확인
> str(ds)
'data.frame': 506 obs. of 14 variables:
$ crim : num 0.00632 0.02731 0.02729 0.03237 0.06905 ...
$ zn : num 18 0 0 0 0 0 12.5 12.5 12.5 12.5 ...
$ indus : num 2.31 7.07 7.07 2.18 2.18 2.18 7.87 7.87 7.87 7.87 ...
$ chas : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
$ nox : num 0.538 0.469 0.469 0.458 0.458 0.458 0.524 0.524 0.524 0.524 ...
$ rm : num 6.58 6.42 7.18 7 7.15 ...
$ age : num 65.2 78.9 61.1 45.8 54.2 58.7 66.6 96.1 100 85.9 ...
$ dis : num 4.09 4.97 4.97 6.06 6.06 ...
$ rad : num 1 2 2 3 3 3 5 5 5 5 ...
$ tax : num 296 242 242 222 222 222 311 311 311 311 ...
$ ptratio: num 15.3 17.8 17.8 18.7 18.7 18.7 15.2 15.2 15.2 15.2 ...
$ b : num 397 397 393 395 397 ...
$ lstat : num 4.98 9.14 4.03 2.94 5.33 ...
$ medv : num 24 21.6 34.7 33.4 36.2 28.7 22.9 27.1 16.5 18.9 ...
> summary(ds)
crim zn indus chas nox rm age
Min. : 0.00632 Min. : 0.00 Min. : 0.46 0:471 Min. :0.3850 Min. :3.561 Min. : 2.90
1st Qu.: 0.08205 1st Qu.: 0.00 1st Qu.: 5.19 1: 35 1st Qu.:0.4490 1st Qu.:5.886 1st Qu.: 45.02
Median : 0.25651 Median : 0.00 Median : 9.69 Median :0.5380 Median :6.208 Median : 77.50
Mean : 3.61352 Mean : 11.36 Mean :11.14 Mean :0.5547 Mean :6.285 Mean : 68.57
3rd Qu.: 3.67708 3rd Qu.: 12.50 3rd Qu.:18.10 3rd Qu.:0.6240 3rd Qu.:6.623 3rd Qu.: 94.08
Max. :88.97620 Max. :100.00 Max. :27.74 Max. :0.8710 Max. :8.780 Max. :100.00
dis rad tax ptratio b lstat medv
Min. : 1.130 Min. : 1.000 Min. :187.0 Min. :12.60 Min. : 0.32 Min. : 1.73 Min. : 5.00
1st Qu.: 2.100 1st Qu.: 4.000 1st Qu.:279.0 1st Qu.:17.40 1st Qu.:375.38 1st Qu.: 6.95 1st Qu.:17.02
Median : 3.207 Median : 5.000 Median :330.0 Median :19.05 Median :391.44 Median :11.36 Median :21.20
Mean : 3.795 Mean : 9.549 Mean :408.2 Mean :18.46 Mean :356.67 Mean :12.65 Mean :22.53
3rd Qu.: 5.188 3rd Qu.:24.000 3rd Qu.:666.0 3rd Qu.:20.20 3rd Qu.:396.23 3rd Qu.:16.95 3rd Qu.:25.00
Max. :12.127 Max. :24.000 Max. :711.0 Max. :22.00 Max. :396.90 Max. :37.97 Max. :50.00
> head(ds)
crim zn indus chas nox rm age dis rad tax ptratio b lstat medv
1 0.00632 18 2.31 0 0.538 6.575 65.2 4.0900 1 296 15.3 396.90 4.98 24.0
2 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 396.90 9.14 21.6
3 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 392.83 4.03 34.7
4 0.03237 0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.7 394.63 2.94 33.4
5 0.06905 0 2.18 0 0.458 7.147 54.2 6.0622 3 222 18.7 396.90 5.33 36.2
6 0.02985 0 2.18 0 0.458 6.430 58.7 6.0622 3 222 18.7 394.12 5.21 28.7
> library(dplyr)
다음의 패키지를 부착합니다: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
# crim 항목 내림차순으로 정렬
# arrange 는 행 전체가, sort 함수는 행 전체가 아닌 그 열만 정렬된다.
# 이 문제는 sort 나 arrange 다 가능하지만, 범용적으로는 arrange 가 주로 사용되므로 arrange 사용함.
> ds2 <- ds %>% arrange(desc(ds$crim))
> top10 <- ds2$crim[10]
> top10
[1] 25.9406
# crim 10번째 항목보다 큰 값들을 다 10번째 값으로 변환
> ds3 <- ds2
> ds3$crim <- ifelse(ds3$crim > top10, top10, ds3$crim)
# age 80 이상으로 필터.
# 이 데이터는 결측치 없어서 na.rm 사용할 필요가 없지만 연습으로 넣어봄.
> ds4<- ds3 %>% filter(ds3$age >=80, na.rm = TRUE)
#평균값 확인 후 변수 만들어서 출력
> mean(ds4$crim)
[1] 5.759387
> result <- mean(ds4$crim)
> print(result)
[1] 5.759387
'자기계발 > 자격증' 카테고리의 다른 글
[빅데이터 분석기사] 2회 기출문제 연습(R 코드) - 3/3 (0) | 2022.06.16 |
---|---|
[빅데이터 분석기사] 2회 기출문제 연습(R 코드) - 2/3 (0) | 2022.06.15 |
[빅데이터 분석기사] 실기 작업형 1 R 코드 - TEST체험하기 (dataq 예시문제) (0) | 2022.06.14 |
[빅데이터 분석기사] 필기 합격 후기, 공부 방법, 합격 TIP (0) | 2022.06.12 |
빅데이터분석기사 - 자격증 소개, 응시 자격, 시험 일정, 응시료 (0) | 2022.03.09 |
댓글