머신러닝15 머신러닝의 주요 용어 머신러닝(Machine Learning) 이란? 머신러닝 시스템은 입력된 다양한 정보를 조합하여 새로운 정보를 적절히 예측하는 방법을 학습하는 것을 말합니다. 머신러닝에서의 주요 용어 Labels 라벨(Label)은 예측을 하고자 하는 대상 항목을 의미합니다. (단순 선형 회귀에서 y 변수) 담배의 향후 가격, 사진에 표시되는 사물의 종류 등 무엇이든지 Label이 될 수 있습니다. Features 특징(Feature)은 입력되는 정보를 의미합니다. (단순 선형 회귀에서 x 변수) 과거의 담배 가격, 이메일 안의 텍스트 단어 등 현재 알고 있어 예측에 사용되는 정보는 모두 Feature가 될 수 있습니다. Examples 예(Example)는 입력된 데이터들(x)의 특정 객체입니다. x는 벡터라는 것을 .. 2021. 8. 24. 파라미터(Parameter)와 하이퍼 파라미터(Hyper parameter) 비교 파라미터와 하이퍼 파라미터는 명확히 다른 개념입니다. 하지만 많은 사람들이 두 단어를 혼용해서 쓰고 있습니다. 특히, 하이퍼 파라미터를 파라미터라 칭하는 오류가 많습니다. 파라미터와 하이퍼 파라미터의 차이에 대해 알아보겠습니다. 본 챕터는 Machine Learning Mastery의 What is the Difference Between a Parameter and a Hyperarameter?를 번역 및 요약한 글입니다. 파라미터(Parameter) 아래는 Machine Learning Mastery에서 기술한 파라미터에 대한 정의 및 특성입니다. A model parameter is a configuration variable that is internal to the model and whose .. 2021. 8. 24. Numpy와 Pandas의 차이 머신러닝과 딥러닝을 할때, 구분해서 사용하면 좋음. Numpy (핵심 기능: 다차원(n-차원) 배열인 ndarray 클래스, 배열의 모든 원소는 동일한 데이터 타입이여야 함) 1. 다차원 배열 객체 2. 유니버설 함수 3. 배열을 사용한 데이터 처리 4. 배열의 파일 입력, 출력 5. 선형대수 6. 난수 생성 7. 브로드캐스팅 8. 객체 생성이기 때문에 객체 주소지만 참조함 Pandas 1. 테이블을 수정하고 조작하는 다양한 기능 제공 2. SQL처럼 테이블에 쿼리나 조인을 수행할 수 있음 3. 각 열의 타입이 달라도 됨 4. SQL, 엑셀파일, CSV 파일과 데이터베이스의 데이터를 읽어들임. 정리 Numpy: 같은 데이터타입의 다차원 배열, 난수생성 가능, 연산가능 Pandas: 다른 데이터타입을 담을.. 2021. 8. 9. 정규화(normalization)와 표준화(standardization) 비교 오늘은 꽤 중요한 이야기를 하고자 합니다. 기본적이기 때문에 중요합니다. 이것을 간과하면 성능에 치명적인 영향을 끼치기 때문에 중요합니다. 바로 정규화(normalization)와 표준화(standardization)에 대한 이야기입니다. 정규화와 표준화는 모두 머신러닝 알고리즘을 훈련시키는데 있어서 사용되는 특성(feature)들이 모두 비슷한 영향력을 행사하도록 값을 변환해주는 기술입니다. 이것이 무슨 말인지는 좀 더 읽어보시면 이해가 되실 것입니다. 정규화 또는 표준화는 왜 필요한가? 머신러닝 알고리즘은 기본적으로 데이터를 가지고 무언가를 해내는 친구들입니다. 많은 양의 데이터를 가지고 머신(기계)를 학습시키는 것이 머신러닝, 한국어로는 기계학습이기 때문입니다. 보통 예측하고자 하는 것과 연관이 있.. 2021. 8. 8. 로지스틱회귀(Logistic Regression) 쉽게 이해하기 본 포스팅에서는 머신러닝에서 2진 분류(Binary Classification) 모델로 사용되는 로지스틱 회귀 알고리즘에 대한 개념을 최대한 쉽게 소개한다. (이전에 선형회귀에 대한 개념을 알고 있다면 금방 이해할 수 있는 수준으로 작성했다.) 목차는 아래와 같다. 로지스틱 회귀란 무엇인가 Log-Odds Sigmoid Function Log Loss(로그 손실) Classification Thresholding (임계값) 로지스틱 회귀란 무엇인가 로지스틱 회귀(Logistic Regression)는 회귀를 사용하여 데이터가 어떤 범주에 속할 확률을 0에서 1 사이의 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류해주는 지도 학습 알고리즘이다. 스팸 메일 분류기 같은 예시를 .. 2021. 8. 7. 선형회귀(Linear Regression) 쉽게 이해하기 본 포스팅에서는 머신러닝에서 사용할 선형 회귀 분석에 대한 개념 설명을 누구나 이해할 수 있을 정도의 수준으로 가볍게 소개한다. (머리 나쁜 나도 이해한 수준까지만 설명할 거니까 대부분의 사람들은 다 이해할 수 있을 거다.) 목차는 아래와 같다. 선형 회귀란 무엇인가 선형 회귀에서 발생하는 오차, 손실 (Loss) 손실을 최소화 하기 위한 방법, 경사하강법(Gradient Descent) 수렴 (Convergence) 학습률 (Learning Rate) 선형 회귀란 무엇인가 머신 러닝의 가장 큰 목적은 실제 데이터를 바탕으로 모델을 생성해서 만약 다른 입력 값을 넣었을 때 발생할 아웃풋을 예측하는 데에 있다. 이때 우리가 찾아낼 수 있는 가장 직관적이고 간단한 모델은 선(line)이다. 그래서 데이터를 .. 2021. 8. 6. 정규화(Normalization) 쉽게 이해하기 왜 정규화를 해야 하는가 머신러닝 알고리즘은 데이터가 가진 feature(특성)들을 비교하여 데이터의 패턴을 찾는다. 그런데 여기서 주의해야 할 점이 있다. 데이터가 가진 feature의 스케일이 심하게 차이가 나는 경우 문제가 되기 때문이다. 예를 들어 ‘주택’에 관한 정보가 담긴 데이터를 생각해보자. 그 안에 feature로 방의 개수(개), 얼마나 오래 전에 지어졌는지(년) 같은 것들이 포함될 수 있을 거다. 그리고 여기서 머신러닝 알고리즘을 통해 어느 집이 가장 적합한지 예측을 시도한다고 해보자. 그러면 각 데이터 포인트를 비교할 때 더 큰 스케일을 가진 feature, 즉 얼마나 오래 전에 지어졌는지(년)에 따라 그 데이터가 완전히 좌지우지 되는 꼴이다. 아래 그림을 보면 이해가 쉬울 것 같다... 2021. 8. 6. 머신러닝에서 학습세트, 평가세트를 나누는 이유와 방법 우리는 머신러닝을 통해서 예측이나 분류를 할 수 있다. 그런데 이 예측이나 분류가 얼마나 정확한지 자문하는 것이 중요하다. 분류 모델을 만들어놨는데, 그 예측이 얼마나 맞고 틀릴지 모르니까. 지도학습(supervised learning)에서는 다행히도 이미 레이블링 된(정답이 있는) 데이터가 있기 때문에 그걸 활용해서 알고리즘의 정확도를 테스트 할 수 있다. 머신러닝 모델의 효과성을 검증하기 위해 데이터를 나눌 때 보통 아래와 같이 세 개의 개념을 이해하면 된다. Training Set (학습 세트) Validation Set (검증 세트) Test Set (평가 세트) 이 중 검증 세트와 평가 세트는 사실 유사한 개념이다. 학습 세트(Training Set)와 검증 세트(Validation Set) 학.. 2021. 8. 6. 랜덤 포레스트(Random Forest) 쉽게 이해하기 이전 포스팅에서 분류에 널리 사용되는 머신러닝 알고리즘 의사결정 나무(Decision Tree)에 대해 알아보았다. 의사결정 나무는 매우 훌륭한 모델이지만, 학습 데이터에 오버피팅 하는 경향이 있다. 가지치기(pruning) 같은 방법을 통해 그런 부작용을 최소하하는 전략이 있긴 하나 역시나 좀 부족하다. 그래서 본 포스팅에서는 의사결정 트리의 오버피팅 한계를 극복하기 위한 전략으로 랜덤 포레스트(Random Forest)라는 방법을 아주 쉽고 간단하게 소개하고자 한다. 내용이 짧으니 후딱 살펴보자. 랜덤 포레스트란 (“무작위 숲”이라는 이름처럼) 랜덤 포레스트는 훈련을 통해 구성해놓은 다수의 나무들로부터 분류 결과를 취합해서 결론을 얻는, 일종의 인기 투표(?) 같은 거다. 아래 그림처럼. 물론 몇몇의.. 2021. 8. 6. 머신러닝 Scikit-Learn 사용법 요약 Scikit-learn은 머신러닝에 사용되는 지도/비지도 학습 알고리즘을 제공하는 파이썬 라이브러리다. 내부 구조를 살펴보면 NumPy, pandas, Matplotlib과 같이 이미 널리 쓰이는 기술을 기반으로 한다고 한다. 최근에 sklearn 관련 자료를 구글링하면서 치트 시트를 보았는데, 나도 안 쓰면 잊어버릴 수 있으니 한 군데에 기록해놓고자 블로그에 남겨놓는다. 일단 학습 알고리즘은 라이브러리 import 및 모델 생성하고, 피팅, 이후 예측하는 과정으로 정리되어 있다. Linear Regression Import and create the model from sklearn.linear_model import LinearRegression your_model = LinearRegression(.. 2021. 8. 6. 머신러닝이란 머신러닝을 개념을 최대한 쉽게 정리해봤다. 일단 머신러닝… 기계를 가르친다는 뜻인데, 기계를 어떻게 가르칠 것인가에 따라 두 가지로 나눠서 생각할 수 있다. Supervised Learning (지도 학습) Unsupervised Learning (비지도 학습) 차이점을 간략하게 알아보자. Supervised Learning (지도 학습) 지도 학습은 데이터에 레이블(정답)이 미리 정해져 있을 때 가능하다. 그래서 프로그램에 입력값을 주면 출력값을 기계가 예측해주는 거다. 예를 들면 음악이라는 걸 들어본 적 없는 아이에게 이런저런 음악을 들려주면서 “이건 락이야, 이건 EDM이야, 이건 재즈야.” 이런 식으로 가르쳐주면 나중에는 그 아이가 아무 음악이나 들려줘도 “이건 재즈다!”하고 맞추는 것과 같다. .. 2021. 8. 6. 의사결정 나무(Decision Tree) 쉽게 이해하기 의사결정 나무(Decision Tree)는 각 데이터들이 가진 속성들로부터 패턴을 찾아내서 분류 과제를 수행할 수 있도록 하는 지도학습 머신러닝 모델이다. 일단 이 모델의 개념만 최대한 쉽게 설명해본다. 목차는 아래와 같다. 의사결정 나무란 무엇인가 지니 불순도 (Gini Impurity) 정보 획득량 (Information Gain) scikit-learn 사용법 재귀적(Recursive) 트리 빌딩 의사결정 나무의 한계 요약 내용이 많지 않으니 후딱 살펴보자. 의사결정 나무란 무엇인가 예를 들면 이런 거다. 시험에서 A를 받은 데이터를 초록색 동그라미로 표현했다고 하자. 의사결정 나무는 대체 어떤 사람들이 그 A를 받았는지 나름의 기준이나 체크리스트(?) 같은 걸 만들어준다. 그래서 새로운 데이터가 .. 2021. 8. 6. 머신러닝 개괄(오버피팅과 언더피팅, 모델링, 신호와 잡음) 1. 오버피팅과 언더피팅 오버피팅과 언더피팅은 데이터 모델링을 공부할 때 알아야 하는 중요한 개념 중 하나입니다. 하지만 여러 커뮤니티 등을 보면 이걸 다소 피상적이거나 편향적으로만 이해하는 경우를 종종 봅니다. 제 생각에 이것은 기존의 많은 자료들이 오버피팅과 언더피팅을 제한적인 관점에서만 설명하기 때문이 아닌가 싶습니다. 오버피팅과 언더피팅을 설명하는 자료들은 대개 아래와 같은 그림을 제시하며 설명합니다. 노파심에 강조하자면 이것이 틀린 그림이나 설명은 아닙니다. 다만 이런 그림은 오버피팅과 언더피팅을 단지 모델의 복잡함 측면으로만 생각하게 만드는 문제가 있다고 생각합니다. 그래서 오버피팅과 언더피팅을 절충 (trade-off) 관계라고만 생각하는 것이죠. 이를 테면 이런 식의 설명에 익숙해지면 모델.. 2021. 8. 6. 머신러닝 오버피팅의 개념과 해결 방법 머신러닝은 (쉽게 얘기하자면) 대량의 데이터를 알고리즘에 넣어서 일종의 규칙을 생성하고, 그 규칙에 따라 입력값을 분류하도록 하는 거다. 그래서 이 알고리즘에 제공하는 학습 데이터가 매우 중요하다. 학습 데이터의 모든 값들을 하나하나 살펴보면서 규칙을 생성하기 때문이다. Overfitting(과적합)이란 overfitting은 모델의 파라미터들을 학습 데이터에 너무 가깝게 맞췄을 때 발생하는 현상이다. 무슨 뜻인고 하니… 학습 데이터가 실제 세계에서 나타나는 방식과 완전히 똑같을 거라고 가정해버리는 거다. 그래서 학습 데이터 세트에 속한 각각의 개별 데이터들을 완벽하게 설명하기 위한 모델을 생성한다. 일단 말로만 들었을 땐 좋을 수도 있는데 정말 현실이 그러할까? 아래 그림을 보자. 각 점들은 학습 데이.. 2021. 8. 6. 로지스틱 회귀분석(Logistic Regression, lr) 로지스틱 회귀분석은 Logistic regression analysis로 표기하면 로짓분석(Logit analysis)라고도 한다. Cox(1970)가 처음 제시한 개념으로 두개의 값만을 가지는 종속변수와 독립변수들 간의 인과관계를 로지스틱 함수를 이용하여 추정하는 통계기법이다. 로지스틱 회귀분석은 어떤 사건(event)이 발생할지에 대한 직접 예측이 아니라 그 사건이 발생할 확률을 예측하는 것이다. 로지스틱 회귀분석이 사용되는 예를 보면, 금융권에서는 고객의 신용도 평가를 통해 이 고객의 신용도가 우량이 될 것인지, 신용불량자가 될 것인지 미리 예측해 볼 수 있다. 또한 통신사의 경우 2년 약정 종료 후 번호이동으로 타 통신사로 갈 것인지, 기기변경으로 남을 것인지 판단할 수 있다. 제과점에서는 전.. 2021. 8. 6. 이전 1 다음