안녕하세요 늑대양입니다 :)
오늘은 [AI 데이터 사이언티스트 취업 완성 과정]의 4일차 일과를 정리하여 안내해드리도록 하겠습니다.
Day 4. 온라인 학습 범위:
- 28강
- 예상 학습 시간: 3:45:06
대주제(Part) | 중주제(Chapter) | 소주제(Clip |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.01 기초 통계량 (1) 대푯값 | CH01_01. 평균의 종류 산술평균, 기하평균, 조화 평균 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.01 기초 통계량 (1) 대푯값 | CH01_02. 평균의 함정 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.01 기초 통계량 (1) 대푯값 | CH01_03. 중앙에 위치하는 값 '중앙값' |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.01 기초 통계량 (1) 대푯값 | CH01_04. 가장 많은 데이터 ‘최빈값’ |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.01 기초 통계량 (1) 대푯값 | CH01_05. Project _ 파이썬으로 구해보는 기초 통계량 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.02 기초 통계량 (2) 분산도 | CH02_01. 분산, 표준편차 자료의 밀집과 퍼짐 정도 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.02 기초 통계량 (2) 분산도 | CH02_02. 사분위 범위(IQR)과 이상치의 탐지 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.02 기초 통계량 (2) 분산도 | CH02_03. 변동계수 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.02 기초 통계량 (2) 분산도 | CH02_04. 왜도와 첨도 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.02 기초 통계량 (2) 분산도 | CH02_05. Project 상자수염그림 파이썬으로 그려보는 분산도 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.03 기술통계 | CH03_01_모집단과 표본, 샘플링 방법 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.03 기술통계 | CH03_02. 정규분포와 중심극한정리 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.03 기술통계 | CH03_03. 카이제곱분포 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.03 기술통계 | CH03_04. 스튜던트 t분포 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.03 기술통계 | CH03_05. F분포 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.04 통계 실험과 유의성검정 | CH04_01. 가설검정(1) - 가설검정이란 P값이란 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.04 통계 실험과 유의성검정 | CH04_02. 가설검정(2) - 단측검정 양측검정 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.04 통계 실험과 유의성검정 | CH04_03. 가설검정(3) - 검정에서 조심해야 할 두 가지 실수 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.04 통계 실험과 유의성검정 | CH04_04. t 검정 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.04 통계 실험과 유의성검정 | CH04_05. Project1 - 실제 데이터로 가설 설정, 검정 수행, 결과 해석하기 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.04 통계 실험과 유의성검정 | CH04_06.분산분석 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.04 통계 실험과 유의성검정 | CH04_07.실제 데이터로 가설 설정, 검정 수행, 결과 해석하기 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.04 통계 실험과 유의성검정 | CH04_08. 카이제곱검정 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.04 통계 실험과 유의성검정 | CH04_09.실제 데이터로 가설 설정, 검정 수행, 결과 해석하기 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.05 선형회귀분석 | CH05_01. 단순 선형회귀분석 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.05 선형회귀분석 | CH05_02. 다중 선형회귀분석 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.05 선형회귀분석 | CH05_03. 선형회귀의 기본적인 가정 5가지 |
Part.3 통계로 데이터 분석 능숙해지기 | Chapter.05 선형회귀분석 | CH05_04. 다중 선형회귀분석 미니 프로젝트 |
Part. 3 통계로 데이터 분석 능숙해지기:
Chapter.01 기초 통계량 (1) 대푯값:
1. 평균의 종류 산술평균, 기하평균, 조화 평균:
산술평균: 우리가 알고 있는 일반적인 평균
기하평균: 증가율 관련 숫자를 구할 때 사용, 기본을 1로 봤을 때, 얼마나 상승/감소 했는지를 계산 (연 평균 매출 증가율 계산 문제)
조화 평균: 많이 쓰지는 않으며, 속력 관련 문제 해결에 사용
2. 평균(mean)의 함정:
평균 값으로 인해, 개별 데이터에 대한 특징이 줄어들 수 있음
극단적인 데이터로 인해, 평균이 오염될 수 있음
3. 중앙에 위치하는 값 '중앙값'(median):
중앙값(Median): 데이터를 크기 순으로 정렬했을 때, 가운데에 있는 데이터
중앙값 계산 시, 대상 데이터가 두 개일 경우(전체 데이터 개수가 짝수), 두 중앙 값의 평균으로 계산
4. 가장 많은 데이터 '최빈값'(mode):
최빈값: 가장 많이 등장하는 값
5. 파이썬으로 구해보는 기초 통계량:
기초 통계: df.describe()
산술평균:
df.mean()
df.groupby('ym').사고건수.mean()
중앙값: df.median()
최빈값: df.mode()
기하평균: df.head()
rate 가 + 인 경우, 1에서 더하기!
rate 가 - 인 경우, 1에서 빼기!
Chapter.02 기초 통계량 (2) 분산도:
1. 분산, 표준편차 자료의 밀집과 퍼짐 정도:
편차 = 데이터 - 평균값
분산 = 편차제곱의 평균
표준편차 = 분산의 제곱근 (표준편차 값이 작으면 작을수록, 평균에 모여있음)
2. 사분위 범위(IQR)와 이상치의 탐지:
사분위수(Quartile): 같을 같은 개수로 4개로 나눈 각각의 값
Maximum = Q3 + 1.5 * IQR
Minimum = Q1 - 1.5* IQR
Outliers: Minimum 보다 작거나, Maximum 보다 큰 값
IQR(Interquartile Range, 사분위간 범위) = Q3 - Q1
1사분위수(Q1): 25th percentile
2사분위수(Q2): Median, 50th percentile
3사분위수(Q3): 75th percentile
4사분위수(Q4)
3. 변동계수:
- 상대적으로 얼마나 변동이 많은지를 보기 위한 지표
- 단위가 다르거나, 표준편차가 비슷한 그룹끼리 비교하고 싶을 때 일정한 기준에 따른 비교가 가능하다!
- 변동계수(CV) = 표준편차 / 평균
- 변동계수 값이 클수록 데이터 변동치가 큼
4. 왜도와 첨도:
왜도 (Skewness):
- 분포의 비대칭도를 나타내는 통계량
- 비대칭이 커질수록 왜도의 절대값은 증가
- 일반적으로 왜도가 -1 ~ +1 범위는 치우침이 없는 데이터라고 한다.
첨도 (Kutosis):
- 꼬리 부분의 길이와 중앙 부분의 뾰족함으로 데이터의 분포를 알 수 있음
- Mesokurtic: 정규 분포 모양
- Leptokurtic: 중앙 부분이 Mesokurtic보다 높고 뾰족하기 때문에 이상치(outlier)가 많을 수 있음
- Platykurtic: Leptokurtic과 반대, 이상치가 없으며 데이터 재확인 필요
5. Project 상자수염 그림 파이썬으로 그려보는 분산도:
Chapter.03 기술통계:
1. 모집단과 표본, 샘플링 방법:
모집단(Population):
- 통계를 통해 알고 싶어하는 모든 집단
- 모수(parameter): 모집단의 특성(모평균, 모분산, 모표준편차 등)
- 전체 데이터로 이해
표본(Sample):
- 모집단의 분포, 특성을 알기 위해 모집단에서 추출된 일부 집단
- 통계량(statistic): 표본의 특성(표본평균, 표본분산, 표본표준편차 등)
- 계산을 위해 모집단에서 뽑은 데이터로 이해
추출(Sampling):
- 모집단에서 표본을 추출하는 방법
추론(Inference):
- 표본 통계량으로 모집단의 특성을 추론
확률 표본 추출:
- 단순 샘플링(Simple Random Sampling): 단순 랜덤으로 샘플을 추출
- 층화 샘플링(Stratified Sampling): 모집단을 몇 개의 그룹으로 나누어 각 그룹에서 랜덤으로 n개씩 추출
- 계통 샘플링(Systematic Sampling): 모딥단 데이터에 1~n개의 번호를 임의로 매긴 다음 일정 간격마다 데이터 추출
- 군집 샘플링(Cluster Sampling): Cluster로 모집단 데이터로 분할하고, 군집 중 하나 or 여러개의 군집을 선정, 선정된 군집의 전체 데이터 사용
2. 정규분포와 중심극한 정리:
정규 분포는 연속 확률 분포 중에서 가장 많이 사용
정규 분포는 평균과 표준편차에 의해 결정된다.
평균에 대해서 좌우 대칭, 평균에서 최대값, 종 모양
자연 현상이나 사회 여러 현상들이 정규 분포를 따른다.
중심극한정리:
- 표본의 크기가 커질수록 표본 평균의 분포는 모집단의 분포 모양과는 관계없이 정규분포에 가까워진다.
- 표본 평균의 평균은 모집단의 모평균과 같고, 표본 평균의 표준 편차는 모집단의 모 표준 편차를 표본 크기의 제곱근으로 나눈 것과 같다.
3. 카이제곱분포:
카이제곱분포(chi-squared distribution, x2 분포)
- 검정 통계량이 카이제곱 분포를 따르는 통계 검정에 사용
- 분산의 특징을 확률 분포로 만든 것 (마이너스 값이 없다)
- 분포는 자유도에 의해 정의
- 모분산을 구하는 것
- 카이제곱 분포의 자유도가 높을수록 정규 분포에 근접
- y-skewed(y축에 편향된) 분포
- 제곱된 값의 분산을 다루기 때문에, - 값은 존재하지 않고 + 값만 존재
4. 스튜던트 t 분포:
- 맥주회사인 기네스에 근무하던 Gosset이 개발 (Gosset의 닉네임이 t)
- 모분산이 알려져 있지 않고 소규모 표본인 경우에 쓸 수 있는 새로운 분포
- 정규 분포와 생김새가 비슷하지만, 꼬리 부분이 더 두껍고 길다
- 표본의 크기가 30 이하인 경우 t 분포 사용
- 모분산을 모를 때, 모평균을 구하는 것
- t 분포는 표본평균, 두 표본평균 사이의 차이, 회귀 파라미터 등의 분포를 위한 기준으로 사용
5. F분포:
- 스튜던트 t 분포는 집단 3개 이상은 검정이 불가능 > f 분포로 검정
- 카이제곱분포처럼 분산을 다루지만 집단간의 분산을 다룬다.
- 분산분석에 주로 사용
- F = 집단 간 분산 / 집단 내 분산
Chapter.04 통계 실험과 유의성 검정:
1. 가설설정(1) - 가설 검정이란 P값이란:
검정(Test):
- 내가 세운 가설이 통계적으로 유의미한지 살펴보는 것
- "30대의 구매력이 높다" 같은 주장을 검정할 수 있도록 만드려면 '30대는 월 평균 1000만원 이상 구미한다" 라던지, "30대의 구매력은 20대보다 높다" 같은 가설을 세워야 한다. (구체적인 가설 설정 필요!)
- 검정 순서:
- 귀무가설과 대립가설을 설정한다.
- p-value를 구한다.
- p-value를 기준으로 가설의 채택/기각 여부를 결정한다.
귀무가설 (Null hypothesis: H0):
- 검정 대상이 되는 가설
- 관습적이고 보수적인 가설
- 표본을 보고 "이러한 것이다."라고 세운 가설
- 연구자가 주장하고 싶은 대립가설과 반대되는 진술
- 귀무가설은 기각(Reject)이 목표
대립가설 (Alternative hypthesis: H1):
- 귀무가설에 대립되는 가설
- 지금까지 알려지지 않은 새로운 주장
- 연구자가 원하는 주장 혹은 가설
- 대립가설은 채택(Accept)이 목표
p-value:
- Observed data point 이후는 관측이 어려운 데이터
- 귀무가설과 대립가설에 대한 판단 기준
- 보통 0.05 (혹은 0.1) 으로 설정
2. 가설설정(2) - 단축 검정 양측검정:
가설을 세울 때,
단측 검정(one-tailed test):
- 한 방향성으로 가능성이 크다고 생각될 때
- 업계에서는 단측 검정을 많이 사용
양측 검정(two-tailed test):
- 방향성은 모르겠지만 차이가 있다고 생각 될 때
3. 가설설정(3) - 검정에서 조심해야 할 두 가지 실수:
도메인 종류에 따라, 오류 종류에 의한 위험도가 달라질 수 있음
제 1종 오류:
- "귀무가설"이 옳은데도 불구하고 이를 기각
- 우연에 의한 효과를 실제 효과라고 잘못 결론 내리는 것
- 설레발
제 2종 오류:
- "귀무가설"이 옳지 않은데도 이를 채택
- 실제 효과를 우연에 의한 효과라고 잘못 결론 내리는 것
- 믿는 도끼에 발등 찍힌 격
4. t 검정:
t 검정 (t test):
- 모집단의 분산이나 표준편차를 알지 못할 때, 모집단을 대표하는 표본으로부터 추정된 분산이나 표준편차를 가지고 검정하는 방법
- "두 모집단의 평균 간의 차이는 없다"라는 귀무가설과 "두 모집단의 평균 간에 차이가 있다"라는 대립가설 중에 하나를 선택할 수 있도록 하는 통계적 검정 방법
t 값 (t-value):
- t 검정에 이용되는 검정통계량
- 두 집단의 차이의 평균(X)을 표준오차(SE)로 나눈 값
- [표준오차]와 [표본평균사이의 차이]의 비율을 의미
기각역 (Critical Region):
- 귀무가설이 기각되기 위한 검정통계량(t 값)이 위치하는 범위
- 면적=α (유의수준)과 자유도 (n-1)에 의해 결정
- 단측검정의 경우, 기각역이 한쪽에 존재
- 양측검정의 경우, 기각역이 양쪽에 존재
5. Projcet1 - 실제 데이터로 가설 설정, 검정 수행, 결과 해석하기:
6. 분산분석(ANOVA, Analysis of variance):
분산 분석 (Anova):
- 3개 이상의 다수 집단을 비교할 때 사용하는 검정 방법
- F분포 사용
- F = 집단 간 분산 / 집단 내 분산
등분산성 가정:
- 집단 내 분산이 서로 비슷한가?
- 비슷해야 비교 가능!
검정 순서: (One-way / two-way 방식 존재)
Omnibus F 검정:
- one 방식
- F 값이 큰가?
- 차이가 있는가?
post hoc 검정:
- 사후분석
- 구체적으로 얼마나 차이가 나는가?
7. 실제 데이터로 가설 설정, 검정 수행, 결과 해석하기:
8. 카이제곱검정
- 카이제곱 통계량은 데이터 분포와 가정된 분포 사이의 차이를 나타내는 측정값
- 카이제곱 검정통계량이 카이제곱분포를 따른다면 카이제곱분포를 사용해서 검정 수행
- 카이제곱분포에서 일어나기 불가능한 일이면 귀무가설 기각, 대립가설 채택
독립성 검정: 두 변수는 서로 연관성이 있는가?
적합성 검정: 실제 표본이 내가 가정한 분포와 같은가?
동일성 검정: 두 집단의 분포가 같은가?
카이제곱검정 순서:
- 기대값을 구한다
- 카이제곱을 구한다: (관측값 - 기대값)을 제곱하여 기대값으로 나눈다
- 2번을 합하여 전체의 카이제곱값을 구한다.
- 카이제곱의 자유도를 구한다.
9. 실제 데이터로 가설 설정, 검정 수행, 결과 해석하기
Chapter.05 선형회귀분석:
1. 단순 선형회귀분석:
회귀(Regression):
- 독립변수 (x) 로 종속변수 (y) 를 예측하는 것
독립변수(Independent variable):
- 영향을 미칠 것으로 생각되는 변수
종속변수(Dependent variable):
- 영향을 받을 것으로 생각되는 변수
회귀계수(Coefficient):
- 기울기와 절편
2. 다중 선형회귀분석:
- 여러 원인이 존재하는 경우에 대해 여러 독립변수를 준비하고 종속변수 y를 설명하는 회귀 방정식을 만들어야 한다
- 다중 회귀분석은 하나의 결과를 여러 원인으로 설명하기 위한 분석 방법이다
- Feature (ex. 배달거리, 음식의 무게, 공휴일 유무, 날씨, 시간대 등등) 설정
- 각 계수를 결정해야 한다
- training data(x, y), test data(x, y)
- training을 통해, 계수를 뽑아낸다!
- training에서 계수를 채운 후, test 값을 넣어서 평가
- test 값과 실제 관측 결과값을 비교
결정계수(R-Squared):
- R^2 = 1 - SSE/SST
- 독립변수가 종속변수를 얼마만큼 설명해주는지 가리키는 지표
- 0.5라고 하면 독립변수가 종속변수의 50% 정도를 설명한다고 함
- 몇 퍼센트 이상이 실질적으로 유용하다고 말하기는 어렵고 어떤 분야냐에 따라 다름 (다만 일반적으로 20% 이상)
- SSE(Explained Sum of Squares): 추정값에서 관측값의 평균을 빼고 총 합
- SSR(Residual Sum of Squares): 관측값에서 추정값을 뺀, 잔차의 총 합
- SST(Total Sum of Squares): 관측값에서 관측값의 평균을 뺀 결과의 총 합
- Adjusted R^2 = 1 - SSE/(n-p) / SST/(n-1)
3. 선형회귀의 기본적인 가정 5가지
오차(Error): 모집단에서 회귀식을 얻어서 회귀식을 통해 얻은 예측값과 관측값의 차이
잔차(Residual): 표본집단에서 회귀식을 얻어서 회귀식을 통해 얻은 예측값과 관측값의 차이
선형성(Linearity): 종속변수 y 와 독립변수 x 간 선형적이어야 한다
잔차 정규성(Normality): 잔차는 정규분포를 이루어야 한다.
독립성(Independence):
- 다중 선형회귀에만 해당하는 가정
- 독립변수는 x는 서로 독립적이어야 한다
- 다중 공선성과 밀접하게 연관되어 있다
다중 공선성(Multicollinearity): 다중 회귀분석을 수행할 경우, 독립변수 간에 강한 상관관계가 없어야한다.
등분산성(Homoskedasticity): 분산이 특정 패턴이 없이 일정해야 한다.
4. 다중 선형회귀분석 미니 프로젝트:
Day 4. 프로그래밍 기초 : Python
딕셔너리 학습 후, 연습 문제로 테스트 진행
4. 사전(Dictionary):
컨셉이 굉장히 많이 사용됨
기본 셋팅: 특정 키 값을 갖고 밸류를 찾을 수 있다 (리스트는 인덱스 사용)
인덱스도 순서가 의미가 있지만 딕셔너리의 키는 순서의 의미도 줄 수 있을 뿐만 아니라 의미있는 값을 통해 데이터 접근 가능 > 키의 장점
전통적으로 Hash Table이라고 표현 (딕셔너리 = 해쉬 테이블)
중괄호 사용, 콜론으로 키-벨류 세트 표시, 쉼표로 구분 (집합과 명확한 구분 가능)
# 딕셔너리 예제
# 위에 나온 테이블 예시를 사전으로 만들어봅니다.
D = {"John" : 0011, "Maria" : 1234}
Input In [3]
D = {"John" : 0011, "Maria" : 1234}
^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
# 숫자 사용 시, 맨 앞에 의미없는 0이 있을 경우 (ex. 0001) 에러 발생 >> 이럴 때는 문자열로 변환
# 사전 D에 key가 'a'이고 value가 3인 원소를 추가하자.
D['a'] = 3
D
>{'John': '0011', 'Maria': 1234, 'a': 3}
# key값이 이미 존재하는 경우에는 key값을 통한 indexing이 되며, key값이 존재하지 않을 때는 assignment를 사용하여 원소를 추가한다.
D["a"]
> 3
# 무엇이 문제일까? # 키의 특수성 > 키는 고유해야함 (나중에 입력된 값이 먼저 입력된 값을 덮어씀)
# 사전을 만들 때, key는 절대 중복이 있으면 안된다
# 사전에 key가 될 수 있는 data type은 immutable이어야 한다. (네 가지! >> int, float, str, tuple)
# Python 3.7 이후 버전 부터는 딕셔너리에 들어간 순서데로 출력해줌 (OrderedDict)
D2 = {'a' : 1 , 'a' : 2, 'b': 3}
D2
>{'a': 2, 'b': 3}
사전 관련 함수:
keys():
# keys() 예제
D = {'name': 'kim', 'phone': '01012345679', 'birth': '1234'}
D.keys()
>dict_keys(['name', 'phone', 'birth']) # 리스트가 아닌 것만 기억하자
values():
# values() 예제
D.values()
>dict_values(['kim', '01012345679', '1234'])
items():
사전의 모든 key, value 쌍 보기 items()
# items() 예제
D.items()
>dict_items([('name', 'kim'), ('phone', '01012345679'), ('birth', '1234')])
get():
# get() 예제
# D['name']과 같다.
D.get('name')
>'kim'
# D.get('name')
D.get('yes', 0) # 디폴트 벨류 생성 가능
>0
Sequence에 해당 데이터가 존재하는지 확인하기: in operator
string, list, tuple, set, dictionary에 다 적용 가능
# in operator 예제
D
>{'name': 'kim', 'phone': '01012345679', 'birth': '1234'}
"phone" in D
>True
"major" in D # 키 값에 없어서 False
>False
"1234" in D.values()
>True
# 리스트, 튜플, 집합에서도 테스트
L = [1, 2, 3, 4]
t = (5, 6, 7, 8)
s = ('a', 2, 3.14)
st = "Hello"
# 연산기호의 순서
# 화나는 케이스
# 무조건 괄호로 명시해주는게 좋음!!
((1 in L) and (6 in t) or ('b' in s)) and ('s' in st)
>False
Programming Practice01(Data Type):
# 2번
# 숫자 하나를 입력받는다. (단, 입력하는 숫자는 무조건 두 자리 이상의 자연수)
# 입력 받은 숫자의 십의 자리 숫자를 출력한다.
number = 12312312321312313123
number % 100 // 10
# 3번
# 머신러닝에서는 모델이 학습을 하게 되면, 학습에 주어진 인자들을 가지고 어떤 결과가 나왔는지 출력을 하게 됩니다.
# 주어진 인자를 해당 하는 자리에 위치하는 출력문을 작성해보세요. (각 용어의 의미는 현재 중요하지 않습니다.)
# 다음은 출력문의 예시입니다.
# "ResNet44 모델로 10 epoch를 돌려 학습시킨 결과는 학습 정확도 : 0.85, 검증 정확도 : 0.83, 테스트 정확도 : 0.76으로 나왔습니다"
# "U-Net 모델로 10000 epoch를 돌려 학습시킨 결과는 학습 정확도 0.87, 검증 정확도 : 0.5, 테스트 정확도 : 0.43으로 나왔습니다."
# 다음 주어진 변수를 활용하여 문제3의 코드를 작성하세요.
epoch = 10
train_accuracy = 0.85; val_accuracy = 0.83; test_accuracy = 0.76
model_name = "ResNet44"
# 가능하면 배웠던 3가지 케이스를 모두 사용해보세요;.
# case1 %
print("%s 모델로 %d epoch를 돌려 학습시킨 결과는 학습 정확도 : %.2f, 검증 정확도 : %.2f, 테스트 정확도 : %.2f으로 나왔습니다" % (model_name, epoch, train_accuracy, val_accuracy, test_accuracy))
# case2
print("{} 모델로 {} epoch를 돌려 학습시킨 결과는 학습 정확도 : {}, 검증 정확도 : {}, 테스트 정확도 : {}으로 나왔습니다".format(model_name, epoch, train_accuracy, val_accuracy, test_accuracy))
# case3
print(f"{model_name} 모델로 {epoch} epoch를 돌려 학습시킨 결과는 학습 정확도 : {train_accuracy}, 검증 정확도 : {val_accuracy}, 테스트 정확도 : {test_accuracy}으로 나왔습니다")
>
ResNet44 모델로 10 epoch를 돌려 학습시킨 결과는 학습 정확도 : 0.85, 검증 정확도 : 0.83, 테스트 정확도 : 0.76으로 나왔습니다
ResNet44 모델로 10 epoch를 돌려 학습시킨 결과는 학습 정확도 : 0.85, 검증 정확도 : 0.83, 테스트 정확도 : 0.76으로 나왔습니다
ResNet44 모델로 10 epoch를 돌려 학습시킨 결과는 학습 정확도 : 0.85, 검증 정확도 : 0.83, 테스트 정확도 : 0.76으로 나왔습니다
# 4번
# 주민등록번호 가리기
# 주민등록번호가 하나 주어집니다.
# 요즘은 보안이 생명입니다. 뒤에 6자리를 *로 만들어서 소중한 정보를 지키세요!
# 문제4의 코드를 작성하세요. 밑의 4가지중 아무거나 사용하시면 됩니다.
oldman_id = "911210-1234567"
oldwoman_id = "900101-2111111"
youngman_id = "200112-3111111"
youngwoman_id = "200112-4123987"
>
oldman_id[0:8] + '******'
oldman_id[:-6] + '*' * 6
# 11번
# 도서 관리하기
# 도서관에서 도서 관련 정보를 프로그램에 저장하려고 합니다.
# 도서와 관련된 정보는 "책 제목 / 도서번호 / 도서분류" 가 있습니다.
# 현재 도서는 총 5권이 있습니다. 5권에 해당하는 도서 정보는 다음과 같습니다. (실제 존재하는 도서가 아닌 예제를 위한 가상의 도서입니다)
# "기초 파이썬 프로그래밍 | 0011 |프로그래밍/IT"
# "한 번에 배우는 데이터 분석 | 1234 |프로그래밍/IT"
# "40세에 돌아본 인생 | 3014 | 인문교양"
# "집밥 101 | 9744 | 요리"
# "300일로 끝내는 나홀로 세계여행 | 8861 | 여행"
# 11-1. 리스트로 관리하기
# 도서이름들을 관리하는 name_list
# 도서번호들을 관리하는 number_list
# 도서분류들은 관리하는 category_list
# 11-2. 사전으로 관리하기
# 0, 1, 2, 3, 4를 key로 하고 value는 각 도서정보(사전)인 사전을 만든다.
# 각 도서정보는 "name", "number", "category"를 key로 하고 value는 각 도서의 해당하는 정보를 적는다.
# 11-1에 대한 코드를 작성하세요.
name_list = ["기초 파이썬 프로그래밍", "한 번에 배우는 데이터 분석", "40세에 돌아본 인생", "집밥 101", "300일로 끝내는 나홀로 세계여행"]
number_list = ["0011", "1234", "3014", "9744", "8861"]
category_list = ["프로그래밍/IT", "프로그래밍/IT", "인문교양", "요리", "여행"]
# 11-2에 대한 코드를 작성하세요.
book_dict = {
'0' : {"name" : "기초 파이썬 프로그래밍",
"number" : '0011',
"category" : "프로그래밍/IT"},
'1' : {"name" : "한 번에 배우는 데이터 분석",
"number" : "1234",
"category" : "프로그래밍/IT"},
'2' : {"name" : "기초 파이썬 프로그래밍",
"number" : "3014",
"category" : "인문교양"},
'3' : {"name" : "40세에 돌아본 인생",
"number" : "9744",
"category" : "요리"},
'4' : {"name" : "300일로 끝내는 나홀로 세계여행",
"number" : "8861",
"category" : "여행"}
}
# (OPTIONAL) Q. 만약에 도서번호가 1234인 도서를 찾으려면 어떻게 해야할지, 11-1과 11-2의 자료구조를 기준으로 코드를 작성해보세요.
# (OPTIONAL) Q. 만약에 도서분류가 프로그래밍/IT인 도서를 찾으려면 어떻게 해야할지, 11-1과 11-2의 자료구조를 기준으로 코드를 작성해보세요.
######
pip install pandas
import pandas as pd
pd.DataFrame({"name":name_list, "number":number_list, "category":category_list})
파이썬 학습 방안:
거꾸로 공부를 했으면 좋겠다 > 알아서 해야하는 걸 알자!
'풀고자하는 문제를 어떻게 하면 알 수 있을까?' 에서 시작함 > 문제(Exercise)를 풀어보자!
문제를 풀어보면 개념을 다른 방식으로(효율적으로) 접근 가능
저걸 풀기 위해서 이걸 이렇게 배우는구나
문제를 먼저 보면 메타인지가 잡힘 > 그 다음 공부를 하면 > 부족한 부분을 채우기위해 공부함
과제:
- 변수와 자료형: 4문제
- 문자열 1편: 4문제
- 슬랙 DM으로 완료 이미지 두장 보내기!
- 익숙하면 문자열 2편, 3편까지 풀기
긴 글 읽어주셔서 감사합니다 :)
'AI > [부트캠프] 데이터 사이언티스트 과정' 카테고리의 다른 글
[Megabyte School : AI 데이터 사이언티스트 취업 완성 과정] Day 6. (0) | 2022.08.29 |
---|---|
[Megabyte School : AI 데이터 사이언티스트 취업 완성 과정] Day 5. (0) | 2022.08.26 |
[Megabyte School : AI 데이터 사이언티스트 취업 완성 과정] Day 3. (0) | 2022.08.24 |
[Megabyte School : AI 데이터 사이언티스트 취업 완성 과정] Day 2. (0) | 2022.08.23 |
[Megabyte School : AI 데이터 사이언티스트 취업 완성 과정] Day 1. (0) | 2022.08.22 |