반응형

머신러닝 7

[혼공머신러닝] 6장 k평균 알고리즘 정리

안녕하세요 Dibrary입니다. 이번에는 혼자공부하는 머신러닝의 6장 내용인 'k평균 알고리즘'에 대해 정리해보겠습니다. k평균 알고리즘은 아래와 같이 동작합니다. 무작위로 k개 클러스터의 중심을 정합니다. 각 샘플에서 가장 가까운 클러스터의 중심을 정합니다. 그게 곧 해당 클러스터의 샘플이 됩니다. 클러스터에 속함 샘플의 평균값으로 클러스터의 중심을 변경합니다. 클러스터 중심에 변화가 없을 때 까지 2번으로 돌아가서 반복합니다. 즉, 한 마디로 '인접 요소를 가장 잘 대변하는 점 하나를 찍고, 그게 맞으면 평균점이 되는데, 그게 아니라면 평균점이 될 때까지 이걸 반복한다' 는 것이죠. 파이썬은 굉장히 편리하다고 느끼는 게, 이 k평균 군집 역시 파이썬 sklearn 모듈을 사용해서 할 수 있습니다. 먼..

[혼공머신러닝] 5장 트리 알고리즘 정리

안녕하세요 Dibrary입니다. 이번에는 트리 알고리즘을 정리해보겠습니다. 먼저 트리라는 자료구조는 하나의 루트로부터 시작해서 계속 가지를 쳐 나가는 것입니다. 이렇게 말이죠. 다만 2개씩만 하는 경우에 한해서 이진트리라고 특별히 이름 짓습니다. (이는 데이터를 빠르게 찾는데 굉장히 유용하기 때문에 알고리즘에서 주로 사용됩니다.) 이 트리형태로 해답을 찾아 나가는데, 각 트리의 노드가 해답을 찾아나가는 '질문'으로 된 것이 결정트리 입니다. 이런 것이죠. 질문이 꼭 하나로만 구성될 필요도 없습니다. 파이썬은 sklearn 모듈을 사용해서 결정트리를 사용할 수 있습니다. 먼저 임의의 데이터를 가져와보겠습니다. 이 데이터 중에 class를 target으로 잡고, 나머지 3가지 항목을 해당 target을 구하..

[혼공머신러닝] 4장 로지스틱회귀 정리

안녕하세요 Dibrary입니다. 이번에는 혼자 공부하는 머신러닝의 4장, 로지스틱 회귀에 대해 정리해보겠습니다. 로지스틱 회귀는 '회귀'라는 단어가 들어가긴 하지만 분류 모델입니다. 학습하는 선형 방정식이 회귀처럼 생겼을 뿐이죠. 이 분류가 될 확률을 구한다고 할 때, 확률은 0~1 사이의 값이죠. (1은 100%를 의미.) 근데, 확률이 0인 경우는 잘 안나와야겠죠? 확률이 높을 수록 분류가 잘 될 것이구요. 그러한 특성을 가진 그래프를 '시그모이드 함수'라고 합니다. 그려보면 위와 같습니다. 잘 안보이신다구요? grid를 추가해 보겠습니다. x축의 0값을 기준으로 왼쪽으로 가면 0으로 수렴하고, 오른쪽으로 갈 수록 1에 수렴합니다. 임의 데이터를 가지고 로지스틱 회귀를 해 보겠습니다. 이렇게 입력하면..

[혼공머신러닝] 3장(최근접 이웃회귀, 선형회귀) 정리

안녕하세요 Dibrary입니다. 이번에는 혼자공부하는 머신러닝 책의 3 챕터, '회귀'에 대해 정리해보겠습니다. 회귀는 간단하게 클래스 중 하나로 분류하는 것이 아니라, 임의 숫자를 예측하는 것입니다. 두 변수 사이의 상관관계를 분석하는 방법이 회귀입니다. 1. k-최근접 이웃 회귀 예측하려는 샘플에 가까운 샘플 k개를 선택하는데, 샘플의 타겟은 '수치값'입니다. 간단히 예를 들자면, 이 수치값의 평균을 구하고 이를 예측 값으로 사용하는 것이 일종의 회귀 방법입니다. 2. 선형회귀 샘플 데이터들의 특성을 가장 잘 나타내는 직선을 구하고, 해당 선을 기준으로 예측값을 구하는 방법입니다. 과대적합 = 모델이 훈련에 너무 익숙해져 있는 상황입니다. 따라서, 실제 데이터가 주어지더라도 훈련과 다르면 틀리다고 판..

[혼공머신러닝] 1장, 2장 정리

안녕하세요 Dibrary입니다. 이번에는 '혼자 공부하는 머신러닝+딥러닝' 책을 공부하면서 간단히 내용을 정리해보겠습니다. 혼공학습단에 선정되기도 했고, 어차피 머신러닝, 딥러닝에 대해 간략한 개괄정도밖에 몰랐어서 이참에 좀 제대로 정리해두고자 합니다. 머신러닝 = 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야 딥러닝 = 머신러닝 알고리즘 중 인공신경망을 기반으로 한 방법들을 지칭 이 책은 구글의 Colab에서 실행해보는 것으로 구성되어 있습니다. 제가 띄운 화면인데, 정말 심플하죠? Jupyter를 띄운것이랑 거의 차이가 없습니다. 단지, 몇 가지 설정을 통해 GPU나 TPU 등을 써볼 수 있다는 장점이 있습니다. 간단하게, 데이터가 눈에 띄게 2가지로 분류된 것을 볼 수 있습니다. 즉,..

파이썬을 사용한 KNN(최근접 이웃) 구현해보기

안녕하세요 Dibrary입니다. 이번에는 KNN을 구현 해 보겠습니다. KNN은 약자이고 K-Nearest Neighbors 즉, 'K개의 근접 이웃'을 의미합니다. 모르는 대상이 있을 때, 그것의 근접에 있는 이웃을 통해 그것이 '어떤' 이웃과 비슷하다~ 는 판정을 컴퓨터가 하는 셈이죠. 저는 Jupyter를 켜고 하겠습니다. 우선 mglearn을 다운로드 하셔야 합니다. pip install mglearn을 하시면 자동으로 됩니다. 이 코드를 입력해서 본 결과는 mglearn에 make_forge라는 데이터의 시각화 입니다. 데이터는 discrete_scatter에 들어가서 표현이 된 것이고, X라는 데이터가 2개의 값을 가지고 있으므로, X[:,0] X[:,1] 로 나타냈고, y가 색상이 다른 특성..

[머신러닝] 붓꽃 데이터로 품종 분류해보기

안녕하세요 Dibrary입니다. 많이들 아시다시피 python은 데이터분석 및 머신러닝, 신경망 등에 많이 활용되는 언어입니다. 단순히 기능 구현만 하던 저도 조금이라도 알아는 둬야겠다 싶어서 파이썬으로 머신러닝을 해보는 코드를 기록해보고자 합니다. 먼저, 사용할 모듈은 sklearn 및 scipy입니다. 저는 Jupyter를 사용하겠습니다. 터미널을 열어서 pip install sklearn scpiy 를 먼저 입력해주시고 이하 코드를 따라해 보시면 됩니다. sklearn 모듈 안에 테스트로 붓꽃 데이터가 들어 있습니다. load_iris로 데이터를 가져오고, target_names를 넣어 보면 3개의 값이 나옵니다. 여기서 말하는 3개의 값은 해당 데이터를 뽑아낸 대상입니다. 즉, 우리는 데이터를 통..

반응형