인사말
안녕하세요~!
오늘부터 팀이 바뀌어서 5조에서 10조로 가게 되었어요!
새로운 분들과 대화를 나누고, 팀 노션도 같이 짜고
공부 내용도 새롭게 하나 더 추가 되었어요!
새로운 규칙들과 새로운분들과 함께 하니 낯설지만
환경을 주기적으로 바꿔주는 것도 좋은 거 같아요!
잘해봅시당! >_<
오늘의 일정 | |
오전 | 11:00 ~ 17:00 -> 머신러닝 강의 2개 듣기 |
오후 | 17:00 ~ 18:00 과제1 해설 Zoom 수업 듣기 |
저녁 | 19 : 30 ~ 21 : 30 캐글 설치 및 설정하기 |
요약
- 머신러닝이란?
- 전통적 프로그래밍 vs 머신러닝
- 머신러닝 구성 요소들(데이터셋, feature, 레이블, 훈련, 테스트)
- 머신러닝의 학습
- 학습 과정
- 학습 방법
- 과적합이란?
- 과적합 방지
- 머신러닝 실습
오전 ~ 오후( 11 : 00 ~ 17 : 00)
Zoom 수업이 있기 전까진 새로 받은 머신러닝에 대해 공부하려 합니다!
아직 SQL, 파이썬, 파이썬 라이브러리에 대해 제대로 습득을 하지 못 했는데
또 새로운 걸 머리에 집어 넣으려 하니까
스트레스가 폭발을 하려 하네요 🤯
음,, 어떻게 해야 할까요 🤔
뭐 어쩌겠어요 일단 해야죠
안 하면 안 할수록 미룬 일만 많아지니까,,
할 일을 미룬다는 게 더 싫어요 저는,,
1. 머신러닝이란?
- 개념
- 컴퓨터가 명시적으로 프로그래밍 되지 않아도 데이터를 통해 학습하고, 예측할 수 있도록 하는 기능
- 대량의 데이터를 알고리즘에 입력하여 학습과정을 통해 모델을 생성하고 예측을 수행함
1.1 전통 프로그래밍 vs 머신러닝
전통적인 프로그래밍 | 머신러닝 |
규칙과 논리를 프로그래머가 직접 정의 | 데이터를 이용해 패턴과 규칙을 스스로 학습 |
명시적 명령과 조건문을 통해 문제 해결 | 예측 모델을 통해 새로운 데이터에 대한 결과 도출 |
프로그램이 아닌 모델이 중심 |
1.2 머신러닝의 구성 요소
- 데이터셋
- 개념 : 모델을 학습시키기 위한 데이터 모음
- 구성
- 입력 데이터 : 모델이 학습할 수 있느 정보
- 출력 데이터 : 모델이 예측해야 하는 목표값
- 특징(Feature)
- 개념 : 데이터셋에서 모델이 학습할 수 있는 개별 속성
- 예시 : 주택가격 예측할 시, 주택의 크기, 위치 , 방의 개수 등이 feature에 해당됨.
- 레이블(Label) = 정답
- 개념 : 예측하고자 하는 목표 변수
- 특징
- 지도학습 모델에서는 레이블이 있는 데이터셋을 이용하여 모델을 학습시킴
- 어떤 주제냐에 따라 레이블(정답)이 달라짐
- 모델
- 개념
- 데이터의 특징으로부터 레이블(정답)을 예측할 수 있는 지식을 학습할 수 있는 프로그램/함수
- 특징
- 입력 데이터와 출력 데이터 간의 관계를 학습하여 새로운 데이터에 대한 예측 수행
- 개념
- 학습
- 개념
- 모델이 데이터를 통해서 패턴을 인식하고 이를 기반으로 예측을 수행할 수 있도록 함수 내의 가중치를 조정하는 과정
- test : 학습이 끝난 후 새로운 data, 실제 data로 모델의 성능을 검사함
- 개념
1.3 머신러닝의 학습
<학습 과정>
- 데이터 수집 : 모델을 학습시키기 위한 필요 데이터 수집 단계
- 예) 과일 가게에 가서 과일 사진 찍어오기
- 데이터 전처리 : 결측값 처리, 이상치 제거, 정규화 등등의 작업 단계
- 예) 사과랑 오렌지만 비교할 건데, 바나나 사진이 있는 경우 이를 삭제
- Feature 선택 : 중요 feature을 선택하고 불필요한 피쳐를 제거하여 학습 효율을 높이는 단계
- 예) 과일 모양, 가격, 무게, 구매한 갯수 중 불필요한 "구매한 갯수"는 제거
- 모델 선택 : 문제에 적합한 머신러닝 알고리즘을 선택
- 예) 사과와 오렌지의 비교에 가장 적절한 머신러닝(모델)을 선출
- 모델 훈련 : 트레이닝 데이터셋을 사용하여 모델을 학습시킴
- 예) 사과는 빨간색이야, 오렌지는 주황색이야 / 사과가 오렌지보다 크기가 더 작아
- 모델 평가 : 테스트 데이터셋을 사용하여 모델 성능을 평가
- 예) 사과와 오렌지를 한 공간에 잔뜩 놓고 비교하는지 확인하기
- 모델 배포 : 학습된 모델을 실제 환경에 배포하여 예측 수행
<학습 방법>
- 지도학습(Supervised Learning)
- 개념 : 레이블(정답)이 있는 데이터셋을 이용하여 모델을 학습시키는 방법
- 회귀(Regression) : 연속적인 값을 예측하는 문제
- 예) 주택 가격 예측, 주식 가격 예측
- 분류(Classification) : 이산적인 값을 예측하는 문제
- 예) 이메일 스팸 필터링, 이미지 분류
- 회귀(Regression) : 연속적인 값을 예측하는 문제
- 개념 : 레이블(정답)이 있는 데이터셋을 이용하여 모델을 학습시키는 방법
- 비지도 학습(Unsupervised Learning)
- 개념 : 레이블(정답)이 없는 데이터셋을 이용하여 모델을 학습시키는 방법
- 군집화(Clustering) : 데이터를 유사한 그룹으로 묶는 문제
- 예) 고객 세분화, 이미지 세그멘테이션
- 차원 축소(Dimensionaliy Reduction) : 고차원 데이터를 저차원으로 변환
- 예) PCA, t-SNE
- 군집화(Clustering) : 데이터를 유사한 그룹으로 묶는 문제
- 개념 : 레이블(정답)이 없는 데이터셋을 이용하여 모델을 학습시키는 방법
- 앙상블 학습(Ensemble Learning)
- 개념 : 여러 개의 머신러닝 모델을 결합하여 더 나은 성능을 얻는 방법
- 배깅(Bagging) : 여러 모델을 독립적으로 학습시키고, 예측을 평균내거나 다수결 투표로 최종 예측
- 예) 랜덤 포레스트
- 부스팅(Boosting) : 여러 모델을 순차적으로 학습시키고, 이전 모델의 오차를 보완하여 최종 예측을 수행
- 예) 그래디언트 부스팅, XGboost
- 스태킹(Stacking)
- 개념 : 여러 모델을 학습시키고 예측 결과를 새로운 데이터로 사용하여 메타 모델을 학습
- 배깅(Bagging) : 여러 모델을 독립적으로 학습시키고, 예측을 평균내거나 다수결 투표로 최종 예측
- 개념 : 여러 개의 머신러닝 모델을 결합하여 더 나은 성능을 얻는 방법
2. 과적합이란?
과적합(Overfitting)
- 개념
- 모델이 훈련 데이터에 지나치게 적응하여 새로운 데이터에 대한 일반화 기능이 떨어지는 현상
- 모델이 너무 복잡하여 훈련 데이터의 노이즈까지 학습해버리는 경우에 발생함
2.1 과적합 방지
- 더 많은 데이터를 수집
- 교차 검증(Cross-validation) 사용
- 정규화(Regularization) 기법 적용
- 간단한 모델 사용
🔥머신러닝에서는 "절대로 좋다"라는 개념은 없음! 상황에 따라, 주제에 따라, 성능에 따라 다 다름🔥
저녁 ( 20 : 00 ~ 21 : 00)
19시 30분부터 20시까지 팀별 회의를 마치고 실습을 진행해보았습니다
1주차 강의를 2번 돌려봤더니 생각보다 시간이 많이 걸리네요 😭
처음 접하는 개념이라서 한 바퀴는 그냥 들어보고
두 바퀴로는 강의 자료랑 함께 보고
세 바퀴로는 공책에 적어가며 했더니 시간이 생각보다 오래 걸려요
주말에도 공부 해야겠어요,,
파이썬 라이브러리도 제대로 이해 못 했거든요,,
3. 머신러닝 실습
2주차 강의에서는 데이터셋을 다운받는 내용이 나왔어요
그 중에서 kaggle을 다운받는 절차를 따라 해봅시당
공식 홈페이지에 들어가셔서
회원가입부터 해주세요,,
그래야 프로필이 쓰고 settings에 들어갈 수 있더라구요
프로필 눌러주시면
Settings가 있습니다
스크롤하셔서 내려주시면
API가 있어요
거기에서 Create New Token을 눌러주시면
파일이 하나 다운로드 되실 겁니다
이걸 또 눌러주시면
이렇게 key를 받으실 거예요! 파일 저장해주세요!
~/.kaggle/kaggle.json
이렇게 되면 명령어를 통해서 다운로드 받을 수 있게 된대요!
kaggle datasets download -d <dataset-identifier>
음,, 저는 프로그래머가 아니기 때문에
그냥 공식 홈페이지에서 다운받았습니다.
https://www.kaggle.com/c/titanic/data
이제서야 진행할 수 있겠네요!
휴우 😤
마무리
오늘은 뭔가 한 게 없는 날인 거 같아요
근데 벌써 내일이 금요일이래요! 🫠
내일 다시 머신러닝 2주차부터 해서 실습 하려구요,,
ㅠㅠ
화이팅입니다 ㅠㅠ
감사합니다!
'내일배움캠프 TIL' 카테고리의 다른 글
내일배움캠프 본캠프 11일차_코드카타 2문제,통계학, 머신러닝 (10) | 2024.12.09 |
---|---|
내일배움캠프 본캠프 10일차_머신러닝 전처리 및 백준 3문제,git (0) | 2024.12.06 |
내일배움캠프 본캠프 8일차_파이썬 라이브러리 공부 (1) | 2024.12.04 |
내일배움캠프 본캠프 7일차_피벗 테이블, .drop, 컬럼추가, del, f-string, rename, git 폴더 생성 (3) | 2024.12.03 |
내일배움캠프 본캠프 6일차_Python 라이브러리로 데이터 분석하기 (9) | 2024.12.02 |