Programming & Machine Learning/풀어쓰는 머신러닝20 XGBoost 알고리즘의 간단한 이해 캐글에서 가장 유명한 알고리즘은 XGBoost이다. 웬만한 대회의 리더보드에는 XGBoost가 최상단에 위치해 있다. 이가 시사하는 바는, Vision 이나 NLP 등의 Specific한 Task를 제외한 일반적인 ML Task에서 가장 범용적으로 잘 동작하는 알고리즘이 XGBoost라는 것이다. 이런 기법은 아직 문제의 해결법이 미숙하거나 숙련도가 높지 않은 도메인의 새로운 문제를 풀 때 가장 먼저 고려되어야 하는 방법이 될 수 있다. 일반적으로 어떤 도메인의 ML 문제를 해결할 때 가장 중요한 것은 정확한 피쳐 엔지니어링을 통한 모델링이다. 또는 샘플링이나 파라미터 튜닝 같은 ML 테크닉이 중요할 수도 있고, 어떤 알고리즘을 사용하느냐가 중요할 수도 있다. 하지만 오늘 소개할 XGBoost는 데이터 .. 2023. 7. 6. 시계열 분석 이론의 기초 - 2 이전 포스팅 : https://yamalab.tistory.com/112 시계열 분석 이론의 기초 시계열 분석은 크게 규칙적 시계열 분석과 불규칙적 시계열 분석으로 나뉜다. 여기서 규칙적 시계열이란 트렌드와 분산이 불변하는 시계열 데이터를 말하고, 불규칙적 시계열이란 트렌드 혹은 yamalab.tistory.com 지난 포스팅에서는 시계열 분석의 종류, 그리고 알고리즘과 패키지의 활용 방법에 대해 정리했었다. 학교나 회사에서 시계열 분석을 제대로 해볼 기회가 없었기 때문에, 간단한 철학과 활용 정도만 이해하는 수준에서 그쳤었다. 언젠가 쓸 수도 있으니, 대충 뭔지 정도만 알자는 마인드. 그러다 최근에 시계열 분석을 작게나마 제대로 해 볼 기회가 있었는데, 그 과정에서 공부한 내용들을 뒤늦게 정리하려고 한.. 2020. 7. 24. 행렬 분해와 차원 축소의 기법들 - [2] 지난 포스팅에서는 PCA, SVD를 위주로 한 행렬 분해 기법들에 대해 다루었고, 이어서 행렬 분해와 차원 축소의 기법들을 마저 알아보자. 본 포스팅에서는 확률적 차원축소 방법 중 가장 대표적인 알고리즘인 t-SNE, 그리고 행렬 분해를 기반으로 한 Matrix Factorization과 ALS(Alternating Least Squares)에 대해 서술하겠다. MF와 ALS의 경우 차원 축소에서 언급하기엔 조금 애매한 감이 있지만, 근본적으로 Latent factor를 분석하는 것과 차원 축소의 분석 방법이 크게 다르지 않기 때문에 이번 포스팅에 포함시켰다. 1. t-SNE를 이용한 차원 축소 머신 러닝에 대한 접근법은 전통적인 관점에서 두 가지로 나뉜다. 첫 번째는 행렬과 미분 등을 이용한 최적화로 .. 2020. 6. 4. 행렬 분해와 차원 축소의 기법들 - [1] 본 포스팅은 차원 축소 기법에 대해 조금 더 자세히 정리하는 차원의 글이다. 기존에도 SVD(링크), t-SNE(링크)에 대해 언급한 적은 있지만 intuitive한 정도로만 이해하고 넘어갔었다. 차원 축소는 가장 기본적인 방법인 행렬 분해를 이용하는 방법, 그리고 확률적 차이를 이용하는 방법, Neural Network를 활용하는 방법 등이 있다. 이번에는 행렬을 이용하는 방법과 확률적 차이를 이용하는 방법에 대해서 간단하게 정리하고자 한다. 1. 선행 개념 1) Eigen-decomposition PCA와 SVD를 이해하기 전에 선행 지식이 되는 개념이다. 고유 분해는 정방 행렬 A가 있을 때, 다음과 같은 성질을 만족하는 영벡터가 아닌 벡터 v와 실수 𝜆를 찾아내는 것이다. v는 eigen vect.. 2020. 6. 3. 시계열 분석 이론의 기초 시계열 분석은 크게 규칙적 시계열 분석과 불규칙적 시계열 분석으로 나뉜다. 여기서 규칙적 시계열이란 트렌드와 분산이 불변하는 시계열 데이터를 말하고, 불규칙적 시계열이란 트렌드 혹은 분산이 변화하는 시계열 데이터를 말하는 것이다. 시계열 데이터를 잘 분석한다는 것은, 불규칙성을 가지는 시계열 데이터에 특정한 기법이나 모델을 적용하여 규칙적 패턴을 적용하거나, 혹은 예측할 수 있도록 하는 것을 의미한다. 아래의 이미지를 보면 직관적으로 이해할 수 있다. (출처 : https://www.analyticsvidhya.com/) 불규칙성을 띠는 시계열 데이터에 규칙성을 부여하는 방법으로는 AR, MA, ARMA, ARIMA 모델 등의 분석 방법을 적용하는 것이 가장 널리 알려져 있다. 이러한 모델을 기반으로 도.. 2019. 1. 12. GAN 모델의 이해와 구현 2014년에 처음 선보인 이안 굿펠로우(Ian Goodfellow)의 GAN(Generative Adversarial Network) 모델은 서서히 냉각되던 딥 러닝에 대한 열기를 다시 활활 타오르게 한 발명품이다. 연구에도 유행이 있는 것을 감안한다면, 현재의 최신 유행 딥 러닝 모델은 GAN이다. GAN을 접하기 이전에는, 워낙 최신 알고리즘인데다가 이름이 주는 위압감 때문에 막연하게 어려운 알고리즘이라고 생각했었다. 하지만 실제로 접하고 보니, 오히려 CNN이나 RNN을 처음 접했을 때 보다 쉬운 느낌이 들었다. 사실 GAN의 아이디어는 어렵지 않기 때문이다. 본 포스팅에서는 GAN을 (수식을 최대한 배제하고) 쉽게 이해해보고, 이를 간단한 Keras 코드로 구현해 볼 것이다. 본 포스팅은 Neur.. 2018. 8. 17. Softmax Classifier의 이해 & Python으로 구현하기 이번 포스팅은 Softmax 함수를 이용하여 다중 클래스를 분류하는 방법과 모델 학습에 대해 개인적으로 이해한 내용을 바탕으로 작성한 것이다. Softmax Regression, 혹은 Softmax Classifier를 이해하기 위해서는 Regression, Logistic Regression에 대한 이해가 선행되어 있어야 한다. 1. Softmax 알고리즘의 이해 회귀분석의 개념을 이진 분류문제로 확장한 Logistic Regression(Logistic Regression 혹은 Linear Regression에 대한 설명 참고)의 원리를 생각해보자. input에 대한 연산 결과를 0~1 사이의 확률값으로 표현하고, 이를 통해 두 가지 중에 하나로 결론을 내리는 방법이 바로 로지스틱 회귀이다. 소프트맥.. 2018. 7. 8. 데이터 분석가 인터뷰에 나올법한 용어 정리 github 자료와 메모 자료들을 정리하던 도중, CS 관련 지식들을 정리해놓은 자료들을 발견했다.아주 기초적이고 쉬운 내용들이지만, 복습 겸 블로그에 다시 정리하고자 한다. 이번 블로깅은 데이터 분석가 인터뷰에 나옴직한 용어들을 정리한 것이다. 이전에 정리했던 개발자 인터뷰에 나올만한 IT 용어 정리와 연장선상에 있는 글이다. 이전 포스팅 - 1이전 포스팅 - 2 1. 머신 러닝 VS 데이터마이닝 머신 러닝은 기존 데이터로 모델을 학습시킨 뒤 새로운 데이터를 입력했을 때, 이를 예측 및 분류해주는것. 데이터마이닝은 가지고 있는 데이터에서 특성이나 패턴을 찾아내기 위한 것이다. 더 쉽게 말하면, 머신 러닝은 기계와 프로그래밍적 관점에서의 학습이고, 데이터마이닝은 통계학적 관점에서의 접근이다. 하지만 경계.. 2018. 5. 26. 인공신경망과 딥 러닝 앞선 포스팅에서는 인공신경망의 개념, 퍼셉트론과 퍼셉트론의 업그레이드 버전인 에이다라인 알고리즘에 대해 알아봤다. 오늘은 딥 러닝에 대해 이야기해보고자 한다. 딥 러닝 (Deep Learning) 컴퓨터 과학 혹은 통계학을 하는 사람이라면, 아니 어쩌면 일반인중에서도 딥 러닝이라는 단어를 못 들어본 사람은 아마 없을 것이다. 장안의 화제인 딥 러닝은, 많은 레이어를 가진 인공신경망을 효율적으로 훈련하기 위한 알고리즘의 세트이다.힌튼(G.E. Hinton) 교수가 다중 레이어 신경망의 훈련법에 대한 해답 (역전파 알고리즘)을 제시하면서 다시 각광받은 알고리즘으로, 원래는 명확한 한계점이 있다고 학계에서 외면받았던 알고리즘 이기도 하다. 하지만 현재 학계와 산업계를 이끄는 것은 바로 이녀석이다. 딥 러닝의 .. 2017. 9. 1. 비지도학습과 클러스터링 비지도 학습에서의 군집분석 머신 러닝은 크게는 두 가지, 지도학습과 비지도학습으로 나뉜다.지도학습은 이미 결과를 알고 있는, label이 있는 데이터를 예측하거나 분류하는 것이다. 반면 비지도학습은 label이 없는 데이터에서 패턴을 발견하고, 숨겨진 구조를 찾아내는 것이다.가장 대표적인 비지도학습으로 군집분석이 있다. 아래의 그림을 보자. 왼쪽의 점들은 A, B라는 label, 즉 그들의 정체가 밝혀져 있다.오른쪽 점들은 그것들의 정체를 가려 놓은 것이다. 왼쪽 데이터의 경우, 직선 하나를 그어 놓고 점들을 분류한다고 생각해보자. 우리는 그들의 정체를 알고 있기 때문에, 분류에 대한 평가까지 할 수 있다.만약 직선 위의 데이터라면 A. 직선 아래의 데이터라면 B이다. A,B 라는 기준에 따라 이리저리 .. 2017. 9. 1. 이전 1 2 다음