[혼자 공부하는 머신러닝+딥러닝] 🎊혼공학습단 완주 회고록🎊
·
ML & DL/머신러닝 기초
본 포스팅은 2023 혼공학습단 수료 인증을 위해 작성한 글입니다.(23.01.02. ~ 23.02.17.) 혼공학습단 수료드디어 혼공학습단의 6주차 미션이 모두 끝났습니다!!! 언제 오려나 하고 시작했는데 정말 말도 안 되게 금방 와버리네요... 여러모로 정신없는 1월이었는데 그래도 어찌저찌 다 해냈습니다!다시 책 목차를 펴고 돌아보니 한편으론 뿌듯하면서도, 한편으론 여전히 배움의 깊이가 부족하단 생각에 자세를 고쳐 앉게 되네요..ㅎㅎ 박해선 저자님께서 강의 중에 종종 말씀해주셨듯이 이 책은 정말 입문 수준이고, 더 다양한 라이브러리들과 그 기반 원리를 배우려면 중급자 이상의 다른 교재를 더 공부해야 할 것 같습니다. (그리고 사실 완주라고 했지만 여전히 8,9 챕터는 하지도 않았으니..^^)공부 방법..
[혼자 공부하는 머신러닝+딥러닝] 7-3. 신경망 모델 훈련
·
ML & DL/머신러닝 기초
Intro.지금까지 인공신경망+심층신경망을 배우고, 이를 케라스 API로 직접 만들어봤다.이번 시간엔 이렇게 모델을 훈련하면서 필요한 추가 도구들을 배워보자!1. 신경망 모델 돌아보기모델 만드는 함수 제작신경망 모델 만드는 과정을 함수로 만들어서 편하게 사용하려고 함.이제는 `model_fn()` 함수에다가 쌓고 싶은 층만 전달해주면 알아서 신경망 모델 만들어 줌!훈련(fit) 결과값 시각화저번 시간에 심층신경망 훈련했던 코드를 다시 보면, 아래와 같은 메시지가 있음사실 keras의 `.fit()` 메소드는 History 객체를 반환함.➔ 그 안에는 훈련 측정값이 담긴 `history` 딕셔너리가 들어있음! ('accuracy'는 우리가 따로 metrics 넣어줬기 때문에 있는 거임 ㅇㅇ)이 측정값(결과..
[혼자 공부하는 머신러닝+딥러닝] 7-2. 심층 신경망
·
ML & DL/머신러닝 기초
Intro.지난 시간에는 인공신경망으로 럭키백의 성능을 높여봤음! But, 층이 하나뿐이었음.홍 선배🗣️ "딥"러닝인 만큼, 층을 더 추가해서 성능을 더 높여보자 ~!1. 데이터 준비저번이랑 똑같이 `.load_data()` 함수로 데이터 준비함.똑같이 전처리 해주고, 검증세트 덜어냄.2. 심층 신경망은닉층 (Hidden layer)은닉층 : 입력층과 출력층 사이에 있는 모든 층 (몇 개든 상관 없음!)ex) 이번에는 저번 시간보다 밀집층(=은닉층)을 하나 더 추가해봄. 모델의 구조는 대략...출력층과 마찬가지로 활성화함수(🔴)가 적용됨. (⭐이유는 밑에서!)출력층보다는 쓸 수 있는 함수가 비교적 자유로움! ex) 시그모이드 함수, 렐루 함수 등심층신경망 만들기 (1)저번처럼 밀집층 객체(`Dense..
[혼자 공부하는 머신러닝+딥러닝] 6-3. 주성분 분석
·
ML & DL/머신러닝 기초
Intro.비상비상🚨고객들이 보낸 과일 사진이 너무 많아지면서, 저장공간이 부족해졌다...업로드된 사진의 용량을 좀 압축시킬 수는 없을까?1. 차원 축소'차원'이라는 용어지금까지 우리는 데이터가 가진 속성을 '특성'이라고 불렀음. (ex. 과일 사진의 각 샘플은 10,000개의 특성으로 이루어짐)머신러닝에선 이 '특성'을 '차원'이라고도 부름.⭐다차원 배열과 1차원 배열에서 용어가 다르게 쓰임.다차원 배열에서의 '차원' = 축의 개수 🆚 1차원 배열(벡터)에서의 '차원' = 원소의 개수지금 '차원 축소'에서 축소한다는 차원은 후자 = 벡터로서의 차원❗ 차원 축소비지도학습의 한 종류로, 데이터를 가장 잘 나타내는 일부 특성을 선택하여, 데이터 크기를 줄이고 다른 알고리즘의 성능을 향상시킬 수 있는 방법..
[혼자 공부하는 머신러닝+딥러닝] 6-2. k-평균 군집화
·
ML & DL/머신러닝 기초
Intro.이전 시간에 고객이 보낸 과일 사진을 구별하는 '군집' 작업을 했었다. '샘플 평균값'을 활용해 대표 이미지(ex. `apple_mean`)를 얻은 뒤, 그것과 개별 사진들의 차이를 바탕으로 과일을 구분할 수 있었다! 하지만, 타깃을 알고 있었으니 사실상 '비지도 학습'이 아니었다...➡️ 전달받은 이미지 300개가 사과 몇 개 파인애플 몇 개 바나나 몇 개인지 아무것도 모르는 상태에서, 위와 같은 대표 이미지(=평균값)을 구할 수 있을까?1. k-평균 알고리즘아무것도 모르는 사진 300장을 받았을 때, 위에서 말한 '평균값'을 자동으로 찾아주는 알고리즘이 있다?!?k-평균 알고리즘의 작동 방식무작위로 k개의 '클러스터 중심'을 정한다.이때, '클러스터 중심'이란 296p의 `apple_mea..
[혼자 공부하는 머신러닝+딥러닝] 6-1. 군집 알고리즘
·
ML & DL/머신러닝 기초
Intro.농산물 시장까지 진출한 한빛마켓!고객이 필요한 과일 사진을 보내면, 그게 어떤 과일인지 구별하는 모델이 필요해졌다.그런데, 손님들이 어떤 과일 사진을 보낼지 알 수 없으니 사진에 대한 정답(타깃)이 없는 거나 마찬가지인데...이런 경우엔 모델을 어떻게 학습해야할까?'타깃이 없다 (=입력 데이터만 있다)' ⇒ 비지도 학습! (플러스알파 참조) 1. 사진 데이터 다루기데이터 가져오기넘파이 배열로 저장되어있는 파일을 다운로드`!` : 파이썬 코드가 아니라 리눅스 Shell 명령으로 이해하도록 바꿔주는 문자.`wget` : 웹에서 파일을 다운로드하여 저장하는 명령어 (`-O` 뒤에는 파일 이름)다운받은 npy 파일을 `np.load()`로 불러오고, `.shape`로 배열의 크기를 확인 → 3차원 데..
[혼자 공부하는 머신러닝+딥러닝] 5-3. 트리의 앙상블
·
ML & DL/머신러닝 기초
Intro.이사님🗣️ "가장 성능이 좋은 머신러닝 알고리즘을 찾아보게나!"0. 앙상블 학습정형 데이터를 다루는 데 가장 뛰어난 성과를 내는 알고리즘으로, 여러 개의 모델을 합쳐서 더 좋은 결과를 도출함.주로 결정 트리를 기반으로 만들어져 있음.1. 랜덤 포레스트앙상블 학습의 대표주자로, 랜덤한 결정트리의 '숲'이라고 보면 됨.랜덤포레스트의 기본 원리Ⓐ & Ⓑ로 개별 트리에 무작위성을 부여해서 트리의 성능이 너무 강력해지는 것을 막음 (=과대적합 방지)물론 개별트리의 성능은 떨어짐 but 그걸 여러 개 묶어서 일반화하면 높은 성능이 나오게 됨!⭐Ⓐ 훈련세트에 무작위성 주입랜덤포레스트 속의 각 트리는 우리가 입력한 훈련데이터를 그대로 학습하지 않고, 훈련세트와 같은 크기의 부트스트랩 샘플(=중복을 허용한 ..
[혼자 공부하는 머신러닝+딥러닝] 5-2. 교차 검증과 그리드 서치
·
ML & DL/머신러닝 기초
Intro.결정트리 모델로 와인 구분하는 모델 완성! 이제 `max_depth` 바꿔가면서 성능 테스트하고 최적의 모델을 찾아야지 ㅎㅎ이사님🗣️ "최적의 모델을 찾는 건 좋은데, 그 과정에서 자꾸 테스트 세트로 평가를 하면 테스트 세트에만 잘 맞는 모델이 되어버리는 거 아닌가요?" 1. 검증세트와 교차검증해결책은 생각보다 간단했다. 테스트세트 말고, 따로 검증용 세트를 또 준비하면 된다!검증세트원래는 훈련/테스트만 나눴지만, 이젠 훈련/검증/테스트 3개로 나눔. (보통 20%)☝🏻일반적인 활용 과정1) 모델을 훈련세트로 훈련(fit)하고, 검증세트로 평가(score)한다2) 매개변수 바꿔가며 score 점수 가장 좋은 모델을 고른다3) 최적의 매개변수로, 훈련세트+검증세트 합친 걸 다시 훈련(fit)..
[혼자 공부하는 머신러닝+딥러닝] 5-1. 결정 트리
·
ML & DL/머신러닝 기초
Intro.신상품으로 캔 와인을 출시하려는 한빛 마켓! 야심차게 와인을 제작했는데 문제가 발생했다...김 팀장🗣️"아이고... 레드와인인지 화이트와인인지 표시가 누락됐네.. 캔에 인쇄된 알코올 도수, 당도, pH 값으로 와인 종류를 구별할 수 있겠어?"1. 로지스틱 회귀 모델의 단점'그냥 레드/화이트 이진분류니까, 전에 배운 로지스틱 회귀모델로 분류하면 되겠군!'데이터 준비이번에도 pandas로 데이터 불러오고, 몇 가지 살펴보기`.info()` : 데이터 타입, 누락 여부, 메모리 크기 등의 기본 정보를 보여주는 메소드`.describe()` : 각 열마다 기본적인 통계량들을 출력해주는 메소드기본적인 설정 및 전처리`test_size` : 떼어내는 테스트 세트의 비율 설정`StandardScaler`..