JHJ
[내일배움캠프 QAQC 부트캠프]머신러닝 기초 다지기(30일차, 260623) 본문
1. 오늘 학습 키워드:
머신러닝
2. 오늘 학습 한 내용을 나만의 언어로 정리하기:
코드카타
알고리즘
| 75 - 최댓값과 최솟값 def solution(s): S = s.split(" ") S_N = [] for i in S: S_N.append(int(i)) return str(min(S_N)) + " " + str(max(S_N)) |
SQL
| 56 - 특정 옵션이 포함된 자동차 리스트 구하기 SELECT * FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%네비게이션%' ORDER BY CAR_ID DESC |
| 57 - 조건에 부합하는 중고거래 상태 조회하기 SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, CASE WHEN`STATUS`='SALE' THEN '판매중' WHEN`STATUS`='RESERVED' THEN '예약중' WHEN`STATUS`='DONE' THEN '거래완료' END AS `STATUS` FROM USED_GOODS_BOARD WHERE CREATED_DATE = '2022-10-05' ORDER BY BOARD_ID DESC |
| 58 - 취소되지 않은 진료 예약 조회하기 SELECT A.APNT_NO, B.PT_NAME, A.PT_NO, A.MCDP_CD, C.DR_NAME, A.APNT_YMD FROM APPOINTMENT AS A INNER JOIN PATIENT AS B ON A.PT_NO = B.PT_NO INNER JOIN DOCTOR AS C ON A.MDDR_ID = C.DR_ID WHERE DATE(A.APNT_YMD) = '2022-04-13' AND A.APNT_CNCL_YN = 'N' ORDER BY A.APNT_YMD ASC |
| 59 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 SELECT CAR_ID, MAX(IF('2022-10-16' BETWEEN START_DATE AND END_DATE, '대여중', '대여 가능')) AS AVAILABILITY FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_ID ORDER BY CAR_ID DESC |
| 60 - 년, 월, 성별 별 상품 구매 회원 수 구하기 SELECT YEAR(B.SALES_DATE) AS YEAR, MONTH(B.SALES_DATE) AS MONTH, A.GENDER, COUNT(DISTINCT A.USER_ID) AS USERS FROM USER_INFO AS A INNER JOIN ONLINE_SALE AS B ON A.USER_ID = B.USER_ID WHERE A.GENDER IS NOT NULL GROUP BY YEAR(B.SALES_DATE), MONTH(B.SALES_DATE), A.GENDER ORDER BY YEAR(B.SALES_DATE), MONTH(B.SALES_DATE), A.GENDER ASC |
머신러닝/라이브러리 기초
| 1-13 로지스틱회귀 타이타닉 데이터셋을 쓸 것임 1-14 로지스틱회귀 이론1 X가 연속형 변수이고, Y가 특정 값(0,1 등의 이진)이 될 확률 -> 선형으로 설명 bad S자 형태의 함수를 적용 오즈비: 도박 개념, 실패확률 대비 성공확률, ex.성공할 확률이 80% 라면, 오즈비는 80%/20% = 4 P가 증가할수록 오즈비가 급격하게 증가 -> 오즈비에 로그를 씌워 이를 완화 : 로짓 logit = log(P/(1-P)) 이를 활용한 것이 로지스틱 회귀 1-15 로지스틱회귀 이론2 혼동 행렬 TP, FP FN, TN 으로 4가지 분류 정밀도: TP/(TP + FP), 모델이 양성 1로 예측한 결과 중 실제 양성의 비율(모델의 관점) 재현율: TP/(TP + FN), 실제 값이 양성인 데이터 중 모델이 양성으로 예측한 비율(데이터의 관점) f1-Score: 정밀도와 재현율의 조화 평균 정확도: (TP +TN) / (TP + FP + FN + TN) 정확도가 제 기능을 못할 때, f1 score을 사용함으로써 이를 보완 1-16 로지스틱회귀 실습 sklearn.linear_model.LogisticRegression : 로지스틱회귀 모델 클래스 sklearn.metrics.accuracy: 정확도 sklearn.metrics.f1_socre: f1_score 코드 import pandas as pd import seaborn as sns import numpy as np from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, f1_score def get_att(x): #x모델을 넣기 print('클래스 종류', x.classes_) print('독립변수 갯수', x.n_features_in_) print('들어간 독립변수(x)의 이름',x.feature_names_in_) print('가중치',x.coef_) print('바이어스', x.intercept_) def get_metrics(true, pred): print('정확도', accuracy_score(true, pred)) print('f1-score', f1_score(true, pred)) model_lor = LogisticRegression() model_lor.fit(X_1, y_true) get_att(model_lor) y_pred_1 = model_lor.predict(X_1) get_metrics(y_true, y_pred_1) 1-17 다중 로지스틱회귀 코드 def get_sex(x): if x == 'female': return 0 else: return 1 titaninc_df['Sex_en'] = titaninc_df['Sex'].apply(get_sex) X_2 = titaninc_df[['Pclass','Sex_en','Fare']] <-- 두개 y_true = titaninc_df[['Survived']] model_lor_2 = LogisticRegression() model_lor_2.fit(X_2,y_true) get_att(model_lor_2) y_pred_2 = model_lor_2.predict(X_2) model_lor_2.predict_proba(X_2) 1-18 정리 사이킷런 홈페이지에서 함수 꼭 보기 https://scikit-learn.org/stable/api/sklearn.linear_model.html 로지스틱 회귀 장점: 직관적, 이해 용이 로지스틱 회귀 단점: 복잡한 비선형 관계 모델링 난해 sklearn.linear_model.LogisticRegresson 모델링 최종 정리 선형회귀(회귀)와 로지스틱회귀(분류) 공통점: 모델 생성 용이, 가중치 기반 해석 쉬움, X변수에 범주형, 수치형 변수 둘 다 사용 가능 차이점: Y(종속변수), 평가척도, sklearn 모델/평가 클래스 모델링은 데이터 사이언스 업무의 아주 일부분, 수집과 전처리에 많은 시간 |
머신러닝/라이브러리 심화
| 1-1 데이터 수집 데이터 프로세스 Data Source: OLTP Database, Enterprise Applications, Third - Party, Web/Log 등 Data Lake: 원시 형태의 다양한 유형의 데이터를 저장 Data Warehous: 구조화된 형태로 정제된 데이터를 저장 Data Marts: 특정 조직의 목적을 위해 가공된 데이터 BI/Analytics: business Intelligence(BI): 의사결정에 사용될 데이터를 수집하고 분석하는 과정 데이터 수집 회사 내 데이터가 존재한다면 SQL 혹은 Python 을 통해 데이터 마트를 생성 회사 내 Data가 없다면 → 데이터 수집 필요(CSV, EXCEL, API, Data Crawling) 1-2 EDA 탐색적 데이터 분석(EDA): 시각화, 기술통계 등의 방법을 통해 데이터 이해 기술통계: .describe() 사용(include='all' 옵션으로 범주형 확인 가능) 시각화: countplot(범주형/빈도), barplot(범주형/평균), boxplot(수치형,범주형/수치형) 등 활용 그외에 histogram(수치형/빈도), scatterplot(수치형/수치형), pairplot(전체 변수에 대한 시각화) 1-3 EDA 실습 sns.barplot에서 기본 y는 sum지만 estimate = 'mean' 로 평균으로 볼 수도 있음 sns.histplot에서 bin 등 옵션 조절 가능 1-4 이상치 이상치: 보통 관측된 데이터 범위에서 많이 벗어난 아주 작은 값 혹은 큰 값 ESD를 이용한 이상치: 데이터가 정규분포를 따른다고 가정할 때, 평균에서 표준편차의 3배 이상 떨어진 값 사용 제한되는 상황: 비대칭 데이터(log변환 필요), 샘플 크기가 작을 떄 mean = np.mean(data) std = np.std(data) upper_limit = mean + 3*std lower_limit = mean - 3*std IQR를 이용한 이상치: Box plot: 사분위 수를 포함한 분포 시각화 사분위 수: 데이터를 순서에 따라 4등분 Q1, Q3, 1.5*IQR(Q3-Q1)로 이상치 처리 ESD와 마찬가지의 제한사항: 비대칭적 데이터, 샘플사이즈가 작은 경우 Q1 = df['column'].quantile(0.25) Q3 = df['column'].qunatile(0.75) IQR = Q3 - Q1 uppper_limit = Q3 + 1.5*IQR lower_limit = Q1 - 1.5*IQR 조건필터링으로 삭제할 수도 있음 df[ df['column'] > limit_value] 이상치는 주관적인 값, 도메인과 비즈니스 맥락에 따라 그 기준이 달라짐 이상 탐지(데이터에서 패턴을 다르게 보이는 것을 찾는 방법)도 있음 ex.사기탐지 이상치가 있다고 행 전체를 날리는 것은 생각해봐야 할 사안. 평균치로 대체하는 방법 등도 있음 1-5 결측치 결측치: 존재하지 않는 데이터 수치형 데이터 평균값 대치: 대표적인 대치법 중앙값 대치: (데이터에 이상치가 많아) 평균값이 대표성이 없다면 중앙값 이용 범주형 데이터: 최빈값 대치 df.notna() 로 비어있지 않은 셀 df.isna() 로 빈 셀 df.dropna() 로 빈셀 날리기, axis = 0(행삭제), 1(열삭제) df.fillna(value) 특정값으로 대치 심플이뮤터를 이용해 대치 가능 from sklearn.impute import SimpleImputer si = SimpleImputer() si.fit(titaninc_df[['Age']]) titaninc_df['Age_si_mean'] = si.transform(titaninc_df[['Age']]) 1-6 인코딩 인코딩: 정보를 정해진 규칙에 따라 변환하는 것 범주형 데이터 전처리에 사용 레이블 인코딩: 문자열 범주형 값을 고유한 숫자로 할당 ex. A -> 0 , B -> 1.... 장점: 모델이 처리하기 쉬운 수치형으로 데이터 변환 단점: (의미없는데) 의미가 부여되어 모델이 잘못 해석 가능 sklearn.preprocessing.LabelEncoder 원-핫 인코딩: 각 범주를 이진 형식으로 변환하는 기법 ex. 빨강-> [1,0,0]..... 장점: 각 범주가 독립적으로 표현되어, 순서가 중요도를 잘못 학습하는 것을 방지, 명목형 데이터에 권장 단점: 범주 개수가 많을 경우 차원이 크게 증가(차원의 저주) , 모델의 복잡도를 증가, 과적합 유발 pd.get_dummies 또는 sklearn.preprocessing.OneHotEncoder 1-7 스케일링 스케일링: 단위 값이 다른 값들을 보정 수치형 데이터 전처리에 사용 표준화: 평균을 빼고 표준편차를 나누어 평균을 0 표준편차를 1로 조정 장점: 이상치가 있거나 분포가 치우쳐져 있을 때 유용 모든 특성의 스케일을 동일하게 맞춤 (많은 알고리즘에서 좋은 성능) 단점: 데이터의 최소-최대 값이 정해지지 않음 sklearn.preprocessing.StandardScaler 정규화: 데이터를 0과 1사이 값으로 조정 장점: 최대-최소 범위가 명확 모든 특성의 스케일을 동일하게 맞춤 단점: 이상치의 영향을 많이 받음 sklearn.preprocessing.MinMaxScaler 로버스트 스케일링: 중앙값과 IQR을 사용하여 스케일링 장점: 이상치의 영향에 덜 민감 단점: 표준화와 정규화에 비해 덜 사용됨 sklearn.preprocessing.RobustScaler |
라이브 세션
| 머신러닝 기초 1회차 머신러닝: 기계가 학습하고 스스로 패턴을 찾아내 적절한 작업을 수행하도록 학습하는 알고리즘 AI: 인간처럼 학습/추론 할 수 있도록 만들어진 프로그램 머신러닝: 데이터를 활용해 학습할 수 있는 알고리즘 딥러닝: 인공 신경망을 이용해 거대 데이터셋 학습 제조업: 품질 자동 분석, 공정 이상 탐지/예측, 결함률 감소/생산성 향상 등 머신러닝 학습의 종류 지도 학습: 회귀/분류, 문제와 정답 알려주고 비지도 학습: 군집/차원 축소,답을 가르쳐주지 않고 강화 학습: 보상을 최대화하는 방향으로 지도 학습: 분류 입력 데이터: 레이블(정답)이 포함된 데이터 필요 츨력 데이터:입력 데이터를 특정 범주를 분류한 결과 알고리즘: 로지스틱 회귀, 의사결정 특징 등 분류의 주요 유형 이진 분류: 데이터를 2개의 카테고리로 분류(ex. 정상/비정상) 다중 분류: 데이터를 3개 이상으로 분류(ex. 성적 등) 대표적 분류 모델 로지스틱 회귀: 이진 분류 의사결정 트리: 특정 기준에 따라 분할하여 트리 구조로 표현 서포트 벡터 머신(경계선): 결정 경계를 찾아 데이터 분류 회귀: 데이터 기반 연속적인 숫자 값 예측 선형회귀: 데이터가 직선 형태 분포라 가정 다중회귀: 데이터를 비선형 모델링할 떄 사용 ex. 곡선 릿지 회귀/라쏘 회귀: 규제(패널티)를 추가해 (가중치 값이 너무 커지지 못하도록 억제한) 선형 회귀, 과적합 현상 방지 릿지(L2)규제: 가중치들을 전반적으로 줄임 라쏘(L1)규제: 덜 중요한 변수의 가중치 = 0 서포트 벡터 회귀: SVM 기반 연속값 예측 결정 트리 회귀/랜덤 포레스트 회귀: 의사결정 트리 기반 데이터를 잔차 제곱의 합이 최소가 되도록 분할, 각 영역의 평균값 예측 딥러닝 기반 회귀: 신경망을 활용하여 복잡한 관계를 학습 비지도학습: 정의: 레이블(답) 없는 데이터 분석 -> 패턴 찾기 목적: 내부의 숨겨진 구조/특징 -> 알지못한 새로운 인사이트 특징: 유사성과 차이점 측정, EDA/전처리 단계에서 활용 종류: 클러스터링(군집 분석): 데이터를 유사한 그룹으로 묶기 K-Means, DBSCAN, 계층적 클러스터링 등의 알고리즘 차원축소: 데이터를 간결화하고 중요한 특징 남기기 PCA , t-SNE, UMAP 등의 알고리즘 연관규칙학습: 데이터 간의 상관관계를 발견하는 작업 강화학습: 보상을 통해 행위 강화를 하는 학습 Scikit-learn(사이킷런) 라이브러리 파이썬을 대표하는 머신러닝 분석 라이브러리 지도 학습, 비지도 학습, 전처리, 모델 평가, 데이터 분할 등이 가능 무겁기에 from ~ import ~ 으로 일부만 호출하는 것을 추천 머신러닝 모델링 문제 정의: 확실한 문제 정의, 가설/모델 설정 데이터 전처리: 데이터 수집, 데이터 클리닝, 피쳐 엔지니어링, 데이터 분할 등 모델링: 모델 선택/생성, 학습, 테스트/예측, 평가 |
| 머신러닝 기초 2회차 <데이터 전처리> 인코딩: 범주형 데이터를 숫자로 변환하는 과정 머신러닝 모델은 숫자만 입력받을 수 있음 OneHotEncoding: 순서 없는 범주에 사용 df_encoded = pd.get_dummies(df, columns=['blood_type']) 예: 혈액형(A, B, O) → A열(1,0,0), B열(0,1,0), O열(0,0,1) LabelEncoding: 순서 있는 범주 또는 One-hot을 쓰기엔 너무 많은 경우에 사용 불량품 양품 ⇒ 불량품 0 양품 1 le = LabelEncoder() 스케일링: (머신러닝 등에서) 수치형 데이터의 단위(스케일)를 맞추는 전처리 과정 머신러닝 모델은 입력 변수들의 크기 차이에 민감 StandardScaler(표준화): 평균 0, 표준편차 1로 변환 → 정규분포에 적합 데이터가 정규분포에 가깝거나 분포 자체를 보존하고 싶을 때 사용 scaler = StandardScaler() MinMaxScaler: 0~1 사이로 변환 → 정규분포 아니어도 사용 가능 값의 범위를 일정한 크기로 맞춰야 할 때나 데이터 분포가 비정규형 일 때 사용 scaler = MinMaxScaler() 다중공선성: 독립 변수들 간에 강한 상관관계가 있는 경우 선형 모델에서는 다중공선성이 있으면 모델이 예측하는데 불안정 비선형 모델 -> 변수 간의 독립성을 가정X, 트리 기반 모델: 다중공선성 있어도 트리가 분할할 변수를 자동 선택 ->상대적 덜 영향을 받음 하지만 비선형 모델에서도 문제될 수는 있음: 과적합, 해석 왜곡, 훈련 효율성 등의 문제 과적합: 학습 데이터에 지나치게 최적화, 새로운 데이터에 대한 예측 성능이 저하 너무 복잡한 모델, 부족한 훈련 데이터, 많은 노이즈 등이 과적합을 발생 복잡도 감소, 정규화, 교차 검증 등으로 과적합 방지 가능 VIF 기반 변수 제거 VIF 값이 높으면 해당 변수는 다른 변수들과 높은 상관관계 10 이상이면 다중공선성이 높다고 판단, 제거 고려 높은 상관관계를 가진 변수 제거 피어슨 상관계수를 계산하여 상관계수 0.9 이상인 변수 쌍 중 하나를 제거 PCA 분석(비지도 학습) 다중공선성이 높은 변수를 직접 제거하지 않고, 새로운 축으로 변환하여 차원을 줄이는 방법 PCA를 사용하여 주요 정보를 유지하면서 변수를 축소 장점: 다중공선성 해결, 변수 학습 효율성 단점: 해석력 감소, 변수 중요도 해석의 어려움 모델링의 목적이 해석이면 다중공선성 해결 필요, 예측이면 굳이. <데이터 분할> 데이터를 훈련 데이터(Train)와 테스트 데이터(Test)로 나눔 -> train : test = 8:2 훈련 데이터: 모델 학습 // 테스트 데이터: 일반화 성능 평가 분할 -> 과적합을 방지 및 일반화 성능 평가 <모델링/훈련/평가> 회귀 회귀분석: 종속변수와 독립변수 간의 관계를 모델링 선형 회귀분석: 1차식 형태 Sklearn 에서 모델 만드는 법 모델 생성, 모델 학습, 예측 값 확인, .예측 성능 확인 최소제곱법: 잔차 제곱의 합이 최소가 되도록 가중치 절대 오차: 실제값과 예측값의 차이를 절대값으로 변환해 평균 오차의 크기를 그대로 반영하여 오차 평균 크기 확인 평균 제곱 오차: 제 값과 예측 값 간의 차이를 제곱하여 계산한 후 평균 0에 가까울수록 모델이 실제 값을 잘 예측 단위가 원래 데이터의 제곱이 되어 해석의 어려움 --> 평균 제곱근 오차: MSE의 제곱근을 취한 값 결정 계수: 모델이 실제 값의 변동성을 얼마나 잘 설명하는지를 나타내는 지표, SSR/SST로 계산 1에 가까울수록 모델 잘 작동한다고 말할 수 있음 다중 선형회귀: 두 개 이상의 독립변수를 사용하여 종속변수를 예측 각 독립변수는 종속변수에 개별적으로 영향 모든 독립변수의 영향을 동시에 고려 분류 모델 분류 모델: 어떤 대상을 정해진 범주에 구분해 넣는 작업 군집 분석과 다르게 분류 분석은 각 범주가 정의되어 있음 로지스틱 회귀 분석: 종속변수가 범주형(0, 1)일 때 사용하는 분석법 선형 회귀로 한다면 '확률은 0과 1 사이 값'을 만족X 시그모이드 함수 사용으로 항상 0~1 사이 값 보장, S자 곡선 형태로 자연스러운 확률 변화 표현 혼동 행렬: 예측 값이 실제 값과 일치하는지 분류하는 분류표 정확도: 전체 데이터 중 올바르게 분류한 비율 정밀도: 예측한 전체 긍정 중 참 긍정의 비율 재현율: 실제 전체 긍정 수에서 참 긍정의 비율 F1 Score: 정밀도와 재현율의 조화 평균 정밀도와 재현율은 Trade-off 관계 ROC 커브와 AUC ROC 커브: 모든 임계값으로 모델의 전반적 분류 능력 평가/시각화 도구 X축: FPR, Y축: TPR 이상적인 ROC : 왼쪽 상단 모서리에 가깝고, 대각선보다 위쪽 임계값(스레스홀드) 독립적, 모델 비교 용이, 비즈니스 의사결정 |
| 머신러닝 기초 3회차 앙상블 모델: 여러 모델의 예측을 결합하여 더 나은 결과를 얻는 방법 장점: 안정적 예측, 과적합 감소, 예측 성능 향상 단점: 시간과 자원, 모델 복잡성, 파라미터 튜닝 필요할 수도 있음 배깅과 부스팅으로 나뉨 배깅: 원래 데이터에서 여러 번 샘플링하여 다양한 데이터셋을 만들고, 각각에 대해 독립적으로 모델을 학습(랜덤 포레스트) 부스팅: 이전 모델이 잘못 예측한 데이터에 더 많은 가중치를 두어 순차적으로 모델을 개선, 높은 예측 성능을 보임(XGBoost) 결정 트리: 의사결정 규칙을 나무 형태로 도표화 일련의 질문을 통해 데이터를 분류하거나 예측하는 모델 불순도(지니 계수, 엔트로피) 크게 감소하는 방향으로 특성, 분할 기준을 선택하면서 성장 until 특정 종료 조건 도달 분류와 회귀 문제 모두에 사용가능, 수치형/범주형 변수 처리 가능 랜덤 포레스트 등의 기본 구성 요소로도 활용됨 장점: 의사결정 과정 시각적 표현(해석 용이) 단점: 쉬운 과적합 -> 해결을 위해 가지치기 기법 적용 랜덤 포레스트: 여러 개의 결정 트리를 생성하고, 이들의 예측을 종합하여 최종 결정을 내리는 앙상블 모델 본 데이터에서 무작위로 추출된 샘플로 학습 및 각 분기점에서도 무작위로 선택된 특성들만 고려 작동 원리: 1. 부트스트랩 샘플링: 원본 데이터에서 복원 추출로 여러 개의 학습 데이터셋을 생성 2. 특성의 무작위 선택: 각 분기점에서 가용한 모든 특성이 아닌 무작위 일부 특성만 고려 3. 개별 트리의 학습: 각 트리는 서로 다른 데이터와 특성으로 학습 4. 앙상블 예측: 분류 문제: 각 트리의 예측을 '투표'로 결정 회귀 문제: 각 트리의 예측 '평균' 사용 장점: 낮은 과적합 위험, 특성 중요도 파악 용이, 이상치에 강건, 대규모 데이터셋에서도 잘 작동 단점: 높은 자원 요구량, 복잡성, 해석의 어려움, 하이퍼파라미터 튜닝의 복잡성 부스팅: 약한 학습기들을 순차적으로 학습시켜 강한 학습기를 만드는 방법 핵심원리: 순차적 학습을 통한 각 모델이 이전 모델의 실수를 보완, 서로 다른 관점에서 문제 해결 다양한 부스팅 모델: AdaBoost, GBM, XG Boost, LGBM 각 모델은 장단점이 있으니 주어진 문제/환경에 적합한 모델 선택 하이퍼 파라미터: 모델의 외적인 요소로 사용자에 의해 결정되는 값 값을 어떻게 설정하느냐에 따라 모델 성능 개선/저하 하이퍼 파라미터 최적화: 모델에 가장 적합한 하이퍼 파라미터를 찾는 것. 교차 검증: 데이터를 훈련 세트와 검증 세트로 나누어 여러 번 테스트 과적합되는 것을 방지, 모델의 성능을 보다 정확하게 추정 K-fold 교차검증: 데이터 세트를 k개의 부분 집합 분리 k-1개의 부분 집합을 합쳐서 모델을 훈련 남은 한 개의 부분 집합을 테스트(검증) 세트로 사용 k번 반복, k번의 테스트 결과를 평균 Grid Search: 간단하고 광범위하게 사용되는 hyper parameter 탐색 알고리즘 해당 범위 및 Step의 모든 경우의 수를 탐색 범위를 넓게 가져갈수록, Step을 작게 설정할 수록 최적해를 찾을 가능성 상승 but 시간이 오래 걸림 넓은 범위와 큰 Step으로 설정한 후, 범위를 좁혀 나가는 방식 Random Search: 정해진 범위 내에서 Random하게 선택 GridSearch보다 더 빠르고 효율적이기 때문에 권장 optimzed solution 임은 보장 못함 모델 저장: pickle 모듈 - 객체의 형태를 그대로 유지하면서 파일에 저장하고 불러올 수 있게 하는 모듈. with open('model.pkl', 'wb') as file: pickle.dump(model, file) |
+ 머신러닝 심화: 내일 정리할 예정
3. 학습하며 겪었던 문제점& 에러 + 회고

3-1 문제점& 에러: X
3-2 회고:
1. 생각보다 강의 내용이 많다. 목요일까지 수강하는 것을 목표로 하겠다.
2. 코드카타에서 알고리즘 부분을 보강할 필요가 있다. 이번주 내로 SQL: LEVEL5(~Q.76)까지 마무리하고 본격적으로 알고리즘 파트에 집중할 예정이다.
4. 내일 학습할 것은 무엇인지(기본적인 AI 진단퀴즈, 코드카타, TIL 제외)
- 수요일(24일): 머신러닝 심화 강의(1,2강) , 라이브세션 재수강 마무리, 아티클스터디 작성, 개인공부

AI 시대를 돌파할 취업 솔루션 | 내일배움캠프
직무별 AI 활용 역량부터 인턴십까지. AI 시대를 돌파할 취업 솔루션, 스파르타클럽 내일배움캠프
nbcamp.spartaclub.kr
'[내일배움캠프 QAQC 부트캠프] > TIL' 카테고리의 다른 글
| [내일배움캠프 QAQC 부트캠프] 머신러닝 심화 마무리(32일차, 260625) (0) | 2026.06.25 |
|---|---|
| [내일배움캠프 QAQC 부트캠프] 머신러닝 심화 2일차(31일차, 260624) (0) | 2026.06.24 |
| [내일배움캠프 QAQC 부트캠프]기초통계 뽀개기(29일차, 260622) (0) | 2026.06.22 |
| [내일배움캠프 QAQC 부트캠프]기초통계&머신러닝(3)(28일차, 260619) (0) | 2026.06.19 |
| [내일배움캠프 QAQC 부트캠프]기초통계&머신러닝(2)(27일차, 260618) (0) | 2026.06.18 |
