ADP 33회 실기 문제#
33회 시험에서는 전처리가 복잡했던 것이 특징, 동형모의고사이며 실제 시험 문제와는 다릅니다.
별도 풀이는 없습니다.
저작자료 공유 문의 datamanim@gmail.com
기계학습 (60점)#
데이터 설명#
데이터 출처 : https://archive.ics.uci.edu/ml/datasets/HCV+data 후처리
데이터 링크 : ./data/p1.csv
데이터 설명 : 혈액수치 데이터, 간염 정도에 따른
Category (종속변수)
0: 정상
1,2,3 (간염 정도, 심각성 : 3>2>1, 3은 간경화)
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/Datamanim/datarepo/refs/heads/master/adp/33/data/p1.csv")
df.head()
Category | Age | Sex | ALB | ALP | ALT | AST | BIL | CHE | CHOL | CREA | GGT | PROT | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0=B | 32 | m | 38.5 | 52.5 | 7.7 | 22.1 | 7.5 | 6.93 | 3.23 | 106.0 | 12.1 | 69.0 |
1 | 0=B | 32 | m | 38.5 | 70.3 | 18.0 | 24.7 | 3.9 | 11.17 | 4.80 | 74.0 | 15.6 | 76.5 |
2 | 0=B | 32 | m | 46.9 | 74.7 | 36.2 | 52.6 | 6.1 | 8.84 | 5.20 | 86.0 | 33.2 | 79.3 |
3 | 0=B | 32 | m | 43.2 | 52.0 | 30.6 | 22.6 | 18.9 | 7.33 | 4.74 | 80.0 | 33.8 | 75.7 |
4 | 0=B | 32 | m | 39.2 | 74.1 | 32.6 | 24.8 | 9.6 | 9.15 | 4.32 | 76.0 | 29.9 | 68.7 |
1-1 결측치 처리 방안 2개 제시하고, 처리 전후 비교 및 더 나은 방안 선택하여 전처리 완료#
1-2 이상치를 확인하고 처리 여부 판단 후 작업#
1-3 위 두 작업 적용 후 EDA 진행) 및 종속변수를 기준으로 각 독립변수의 차이가 있는지 확인하라 (시각화포함)#
1-4 주어진 데이터로부터 주성분분석을 수행해 새로운 설명변수를 도출할 수 있는지를 검토 ∙ 판단한 뒤, 그 결과를 제시하시오#
2-1 데이터 불균형이 왜 문제인지 설명하고 불균형 해결방법에 대해 두가지를 설명하라#
2-2 불균형 데이터 분류모델에 적합한 평가지표 3개 제시하고 그 이유 설명하라#
2-3 종속 변수를 정상(Category 0)과 비정상(Category 1,2,3)로 변경한 후 위의 2가지 불균형 처리 방법을 사용하고, 3가지 평가지표로 결과를 각각 평가하라.#
(학습 규칙)
종속 변수를 이진화 후 불균형 처리 방법 진행
전처리 후 데이터 행의 index number를 초기화 하라(0부터 시작)
index number 값이 5로 나눈 나머지가 0이라면 test, 그 외의 경우 train set으로 하여 진행
3가지 분류 모델을 사용하라
3-1 1에서 전처리 완료한 데이터를 바탕으로 종속변수에서 0을 제외한 1,2,3의 데이터만 필터하여 분류모델 학습 및 평가를 진행하라.#
(학습 규칙)
전처리 후 데이터 행의 index number를 초기화 하라(0부터 시작)
index number 값이 5로 나눈 나머지가 0이라면 test, 그 외의 경우 train set으로 하여 진행
3개의 분류 모델을 사용하라
3-2 학습한 모델 결과와 평가지표를 바탕으로 간염여부에 영향을 미치는 요소들에 대해 논의하라#
데이터 설명#
데이터 출처 : https://www.data.go.kr/data/15048032/fileData.do / 후처리, 통계청 날씨정보
데이터 링크 : url = https://raw.githubusercontent.com/Datamanim/datarepo/refs/heads/master/adp/33/data
url/p2_sb_2021.csv
url/p2_sb_2022.csv
url/p2_sb_2023.csv
url/p2_w_2021.csv
url/p2_w_2022.csv
url/p2_w_2023.csv
데이터 설명 :
21년~23년의 J시의 2개 지하철호선 지하철의 시간대별 승하차 인원 정보 데이터 (p2_sb_년도.csv)
X5~ X22 : 5시부터 22시 승차 또는 하차 인원, (X5 : 05시의 계절 날짜와 대응)
역번호 : 각 정류장의 고유 번호
승하차구분 : 승차 또는 하차
21년~23년의 J시의 특정지역구의 시간대별 게절성 정보 데이터 (p2_w_년도.csv)
시간별 J시의 날씨정보
p = pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/refs/heads/master/adp/33/data/p2_sb_2021.csv')
weather = pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/refs/heads/master/adp/33/data/p2_w_2021.csv')
display(p.head())
display(weather.head())
날짜 | 호선 | 역번호 | 승하차구분 | X5 | X6 | X7 | X8 | X9 | X10 | ... | X13 | X14 | X15 | X16 | X17 | X18 | X19 | X20 | X21 | X22 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2021-01-01 | A | 201 | 승차 | 22.0 | 25 | 61 | 64 | 58 | 53 | ... | 109 | 149 | 196 | 168 | 178 | 177 | 117 | 138 | 90 | 58 |
1 | 2021-01-01 | A | 201 | 하차 | 12.0 | 49 | 87 | 142 | 101 | 110 | ... | 105 | 125 | 114 | 86 | 119 | 63 | 26 | 25 | 62 | 18 |
2 | 2021-01-01 | A | 202 | 승차 | 43.0 | 53 | 70 | 119 | 94 | 103 | ... | 331 | 323 | 437 | 447 | 881 | 531 | 335 | 441 | 403 | 137 |
3 | 2021-01-01 | A | 202 | 하차 | 21.0 | 154 | 238 | 727 | 425 | 356 | ... | 330 | 342 | 321 | 333 | 331 | 163 | 119 | 110 | 137 | 47 |
4 | 2021-01-01 | A | 203 | 승차 | 21.0 | 27 | 48 | 81 | 62 | 60 | ... | 156 | 197 | 197 | 203 | 213 | 190 | 145 | 208 | 135 | 76 |
5 rows × 22 columns
일시 | 기온 | 강수량 | 풍속 | 습도 | 증기압 | 현지기압 | 전운량 | 중하층운량 | 지면온도 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 2021-01-01 00:00 | -8.3 | NaN | 1.8 | 66 | 2.2 | 1016.4 | 0.0 | 0 | -6.8 |
1 | 2021-01-01 01:00 | -8.7 | NaN | 2.4 | 68 | 2.2 | 1016.4 | 0.0 | 0 | -6.9 |
2 | 2021-01-01 02:00 | -9.1 | NaN | 1.6 | 69 | 2.1 | 1016.2 | 0.0 | 0 | -7.1 |
3 | 2021-01-01 03:00 | -9.3 | NaN | 1.1 | 70 | 2.1 | 1016.8 | 0.0 | 0 | -7.3 |
4 | 2021-01-01 04:00 | -9.3 | NaN | 0.3 | 71 | 2.2 | 1016.2 | 0.0 | 0 | -7.5 |
4-1 아래 조건들을 참고하여 전처리를 시행하고 훈련데이터에 대한 기초통계량을 구하시오#
승하차 데이터에서 X5~X22 모든컬럼이 0의 값을 가지는 경우 해당 날짜,호선,역번호 승하차 행은 제외한다.
승하차 데이터를 날짜,호선,역번호,시간대별(05~22시) 승객수의 총합을 구하여라(승차 + 하차), 결측치는 0명으로 간주한다. 컬럼명은 users로 변경한다.
날짜 데이터의 강수 데이터는 결측치를 0, 그 외 컬럼의 결측치는 직전값으로 대치한다.
날짜데이터와 일자,시간별 승하차인원 데이터를 동일날짜,시간에 대해 합친다.
일자정보를 바탕으로 주말 여부를 나타내는 weekday컬럼을 추가한다. (주말=1,평일=0)
21년,22년 데이터는 훈련데이터, 23년 데이터는 테스트 데이터로 사용한다.
4-2 전체 년도 데이터에 대해 users와 날씨 정보에 대해 상관관계를 분석하고 주말여부에 따른 users 변수의 차이가 존재하는지 통계적으로 확인하라.#
4-3 users를 예측하는 2가지 회귀모델을 학습하고 모델에 대해 평가하라 (선형회귀 모델은 1개 필수 포함)#
통계 (40점)#
데이터 설명#
데이터 출처 : 자체 제작
데이터 링크 : ./data/s1.csv
데이터 설명 : A,B 두 공장의 특정 일자의 수율(%)데이터. 단, 불량률은 (100 - 수율)로 정의한다.
df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/refs/heads/master/adp/33/data/s1.csv')
df.head()
year | month | day | A | B | |
---|---|---|---|---|---|
0 | 2023 | Sep | 7 | 56.9 | 42.3 |
1 | 2023 | Feb | 20 | 100.0 | 89.0 |
2 | 2023 | Jun | 15 | 19.3 | 59.0 |
3 | 2023 | Apr | 11 | 98.0 | 84.8 |
4 | 2023 | Jul | 8 | 89.5 | 63.8 |
5-1 공장별 결측치, 기초통계량 등을 확인하라#
5-2 A,B 공장의 불량률 차이가 존재하는지 확인하려 한다. 귀무,대립 가설을 설정하고 설명하라#
5-3 A,B의 차이가 있는지 통계검정 하고 설명하라#
데이터 설명#
데이터 출처 : https://www.data.go.kr/data/15123586/fileData.do 후처리
데이터 링크 : ./data/s2.csv
데이터 설명 : 일자별 지하철 노션별 지연 데이터
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/refs/heads/master/adp/33/data/s2.csv')
df.head()
지연ID | 지연일자 | 노선 | 최대지연시간 | |
---|---|---|---|---|
0 | ID_0 | 2023-09-01 | 1호선 | 15분 |
1 | ID_1 | 2023-09-01 | 1호선 | 15분 |
2 | ID_2 | 2023-09-01 | 4호선 | 10분 |
3 | ID_3 | 2023-09-01 | 4호선 | 10분 |
4 | ID_4 | 2023-09-04 | 4호선 | 10분 |
6-1 노선에 상관없이 일별 최대 지연시간이 5~15분으로 발생하는 경우는 하나의 사건으로 보자. 해당 사건이 일자별 발생하는 빈도가 푸아송분포를 따르는지 확인하는 방법 2가지를 기술하고 결과를 보여라#
6-2 10분이하, 10분초과 -20분 이하, 20분초과 3가지로 지연시간을 지연정도로 분류하라. 호선별 지연정도를 교차표로 구하여라#
6-3 지하철 호선별로 지연정도가 차이가 있는지 확인하려한다. 귀무가설과 대립가설을 설정한 후 통계 검정을 실시하라#
데이터 설명#
데이터 출처 : 자체제작
데이터 링크 : ./data/s3.csv
데이터 설명 : 시계열 정보를 가지는 250행의 데이터
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/refs/heads/master/adp/33/data/s3.csv')
df.head()
0.4967141530112327 | |
---|---|
0 | 0.308778 |
1 | 0.692133 |
2 | 2.070861 |
3 | 1.326845 |
4 | 0.077552 |