본문 바로가기

ML36

inplace=True Pandas dataframe에서 inplace 인자가 있다. 보통 default값으로 False가 들어있고 생략되어 있는 경우가 많다. 이런 경우 새로운 df 변수에다가 이 수정된 df을 넣어줘야지 수정된 df의 정보를 쓸 수가 있다. 하지만 굳이 이렇게 새로운 변수말고 기존 변수에다가 수정된 변수를 쓰는 방법이 없을까? 경우는 두가지가 있다. 1. origin_df=origin_df.drop('컬럼명', axis=1) #axis=1은 열을 뜻함. 2. origin_df.drop('컬럼명', axis=1,inplace=True) 첫번쨰는 기냥 새로운 변수대신 원래 변수를 넣어준것. 두번쨰는 inplace 인자를 True로 바꿔주는 방법이다. 이러면 기존 df에 수정된 것이 다시 적용된 것을 볼 수 있다. 2021. 9. 29.
의사결정나무 (의사결정나무 복습) 의사결정나무란 의사결정 규칙들이 트리 구조로 도식화된 것이다. 일종의 스무고개라고도 할 수 있다. 의사결정나무는 두가지 데이터 유형으로 나뉘는데, 범주형의 데이터인 경우 분류나무(Classification Tree), 연속형 데이터인 경우 회귀나무(Regressiong Tree)로 나뉜다. 보통 범주형 데이터의 경우에 의사결정나무를 사용한다. 회귀모델의 경우 정확도가 낮기 떄문이다. 구성요소 뿌리노드 - 최초로 시작되는 노드(전체 데이터가 포함되어 있다) 부모노드 - 자식노드의 상위 노드 자식노드 - 부모노드에서 분류된 노드 중간노드 - 부모, 자식노드가 있는 노드 최종노드 - 자식 노드가 없는 노드 가지 - 뿌리노드로부터 끝노드까지 연결된 노드들 깊이 - 중간노드들의 수 모형 구축.. 2021. 9. 28.
당뇨병성 망막병 검출(Diabetic Retinopathy Detection) 1.전이학습(transfer learning)을 이용한 안저영상 기반 classification 안저영상 데이터셋을 다운로드하는 사이트: https://www.kaggle.com/c/diabetic-retinopathy-detection 데이터셋의 크기가 82GB이라서 매우 큼. 학습할 때는 데이터셋의 일부만 사용하면 됨. 전이학습을 이용하여 데이터셋의 일부만 사용하더라도 성능이 나올 수 있도록 이런 과제를 부여받았다. 먼저 데이터셋을 다운받을려고 하니깐 82GB다. 내 노트북엔 30GB의 여유밖에 없었고, colab도 들어갈 수가 없으니 다른 어찌할까 하다가 어떤 분의 코드를 보고 이미 재업로드된 7GB의 영상 데이터셋이 있는 것을 확인했다. 또한 이 분의 코드를 공부한다는 관점으로 하나씩 실행해보았다.. 2021. 8. 11.
kaggle에서 colab으로 데이터 가져오기 1. 캐글 계정에서 api token을 다운받는다. - 나의 계정 -> account -> 밑으로 내리다 보면 create New API Token 클릭 2. colab으로 가서 코드를 복사한다. !pip install kaggle from google.colab import files files.upload() 3. choose files에 들어가서 아까 받았던 kaggle.json을 업로드 4. 파일이 업로드 되었는지 확인 ls -1ha kaggle.json 5. 파일을 옮겨준다는데,,.. 아직은 잘 모르겠다;; !mkdir -p ~/.kaggle !cp kaggle.json ~/.kaggle/ # Permission Warning 이 일어나지 않도록 !chmod 600 ~/.kaggle/kaggle.. 2021. 8. 11.
확률분포(Probability Disstributions)- 이산확률분표(이항분포만) * 이 공부노트는 프로그래머스 인공지능 데브코스 강창성 교수님의 강의를 바탕으로 제작되었습니다. 확률이론은 ML을 이해하기 위해 필수. 자세하게 이해할수록 여러가지 알고리즘에 대해 접근하기 쉬워진다. 결합확률분포를 완벽하게 풀 수 있다면 모든 문제를 풀 수 있다고 하십니다.(갈길이 멀다.) 오늘은 이산확률분포에 대해 알아보도록 한다. 밀도추정(Ensity Estimation) N개의 데이터 $\mathbf{x}_1,\ldots\mathbf{x}_N$ 주어졌을 때 분포함수 $p(\mathbf{x})$를 찾는 것이다. $p(\mathbf{x})$를 파라미터화된 분포로 가정하고, 회귀에선 $p(t|\mathbf{x})$, 분류에선 $p(\mathcal{C}|\mathbf{x})$로 추정한다. 그 다음 분포의 .. 2021. 6. 7.
ML 기초 실습 과제 (Data : Predicting Food Delivery Time) * 이 공부노트는 프로그래머스 인공지능 데브코스 주차 과제를 바탕으로 제작되었습니다. 음식배달 서비스를 위한 예측 모델을 만들기. 즉 음식 배달에 걸리는 시간을 예측하는 모델을 만드는 것이다. kaggle의 Predicting Food Delivery Time 데이터셋 안에 있고, 실제로 이걸 우리가 직접 만들어보았다.(물론 따라하면서....) 여기서 예측된 배달시간이 실제 배달시간보다 더 걸리는 경우 리스크는 두배가 됨을 가정으로 한다. ( 예로 카카오 택시 앱을 보면 도착까지 드는 예상 금액이 실제 금액보다 높은 경우가 있는데, 이와 같은 원리로 적용된다고 보면 된다. 예상금액보다 더 들면 솔직히 기분 나쁘니깐 - 기술적인 요인 말고 인적인 요인이 첨가된 것일 뿐) 우선 데이터를 보면 Restaura.. 2021. 6. 6.
선형대수(Linear algebra)-행렬, 행렬의 곱, 성질(2) * 이 공부노트는 프로그래머스 인공지능 데브코스 강창성 교수님의 강의를 바탕으로 제작되었습니다. * 이번엔 진짜 이해하기 힘들 것을 알아가면서 정리해보자(지친다ㅜㅜ). 치역(Range), 영공간(Nullspace) 벡터의 집합($\{x_1,x_2,\ldots,x_n\}$)에 대한 생성(span) $$\mathrm{span}(\{x_1,x_2,\ldots,x_n\}) = \left\{ v : v = \sum_{i=1}^n\alpha_i x_i, \alpha_i \in \mathbb{R} \right\}$$ 행렬의 치역 (range) 행렬 $A\in \mathbb{R}^{m\times n}$의 치역 $\mathcal{R}(A)$는 A의 모든 열들에 대한 생성(span)이다. $$\mathcal{R}(A) =.. 2021. 6. 3.
선형대수(Linear algebra)-행렬, 행렬의 곱, 성질(1) * 이 공부노트는 프로그래머스 인공지능 데브코스 강창성 교수님의 강의를 바탕으로 제작되었습니다. 이제 배울 Deep learning을 이해할려면 반드시 선형대수, 행렬미분, 확률의 탄탄한 기초가 필요하다 하셨다. Transformer의 attention matrix : $$\mathrm{Att}_{\leftrightarrow}(Q, K, V) = D^{-1}AV, ~A = \exp(QK^T/\sqrt{d}), ~D = \mathrm{diag}(A1_L)$$(뭔소리야) 처럼 핵심 아이디어가 행렬에 관한 식으로 표현되는 경우가 많다. 그래서 선형대수와 행렬미분의 기초를 배운다음 PCA를 유도해보고자 한다. 기본 표기법(Basic Notation) $A\in \mathbb{R}^{m\times n}$ mxn의.. 2021. 6. 3.
확률과 통계 - 베이즈 정리 베이즈 정리. 빅데이터 분석 기사 필기를 공부하면서 한번쯤은 들어본 내용이다. 그런데 이게 ML에서 중요하다고 하니 다시 공부해서 기록해본다... 우선, 빈도주의 vs 베이지안 주의 빈도주의는 과거의 기록을 바탕으로 증거를 내밀고, 베이지안 주의는 이 주장에 대한 신뢰?도가 몇인지를 표시한다. 즉 과거의 내가 동전을 100번 던졌는데, 50%가 앞면이 나왔어. - 빈도주의 동전의 앞면이 나올거야! 란 주장의 신뢰도는 50%야! - 베이지안 주의 쉽지 않다... 여튼 불확실성을 정량적으로 표현이 가능하다? 라고 생각한다. P(A|B) : 사후확률 (posterior) P(B|A) : 우도or 가능도 (Likelihood) P(A) : 사전확률 (prior) 용어는 이렇게 된다... 나중에 ML에서 우도는 .. 2021. 6. 2.