AI/Machine Learning

[Python] 머신러닝 Scikit-learn(사이킷런) 사용하기

Jeong Jeon
반응형

설치 : conda install scikit-learn 으로 Anaconda에서 설치

 

scikit-learn 이란?

scikit-learn이란 python을 대표하는 머신러닝 라이브러리이다. '사이킷런'이라고 부르기도 한다. scikit-learn은 오픈 소스로 공개되어 있으며, 개인, 비즈니스 관계없이 누구나 무료로 사용가능하다. scikit-learn은 현재도 활용하여 개발이 이루어지고 있으며, 인터넷 상에서 정보를 찾기에도 싶다. 많은 머신러닝 알고리즘이 구현되어 있는데, 어떤 알고리즘도 같은 방식으로 이용이 가능하다. 또, 샘플 데이터 셋(토이 데이터 셋)이 부속되어 있으므로, 설치하여 바로 기계 학습을 시험해볼 수 있다. 그러므로 초심자가 기계학습을 배우기 시작할 때 적합한 라이브러리라고 말한다

 

1). 분류(classification)

주어진 데이터가 어느 클래스에 속하는지 판별하는 것이다.

 

1-1) SGD(stochastic gradient descent)

  • 대규모 데이터(10만건 이상)의 경우
  • 선형의 클래스 분류 방법

1-2) 커넬근사

  • SGD로 잘 분류할 수 없는 경우에 이용
  • 비선형적인 클래스 분류방법
  • 대규모 데이터에 적합

1-3) Linear SVC

  • 중소규모(10만건 미만)의 경우
  • 선형의 클래스 분류 방법

1-4) k근접법

  • Linear SVC로 잘 분류되지 않는 경우 사용
  • 비선형적인 클래스 분류 방법
  • 중소 규모의 데이터 분류에 추천

2) 회귀(regression)

전달된 데이터를 바탕으로 값을 예상한다.

 

2-1) SGD(stochastic gradient descent)

  • 대규모 데이터(10만건 이상)의 경우 추천하는 선형 회귀 분석 방법

2-2) LASSO、ElasticNet

  • 중소규모(10만건 미만)으로 *설명 변수의 일부가 중요한 경우에 추천하는 회귀 분석 방법

(*설명 변수란 ? 어떤 원인이 되고 있는 변수이다.)

 

2-3) Ridge、Liner SVR

  • 중소규모(10만건 미만)으로 설명 변수의 전부가 중요한 경우에 추천하는 회귀 분석 방법

2-4) SVR(가우스 커넬)、Ensemble

  • Ridge또는 Liner SVR로 잘 분석되지 않는 경우 이용하며, 비선형적 회귀 분석 방법이다


3)클러스터링(clustering)

  • 전달된 데이터를 어떤 규칙에 따라 나누는 것이다.

 

3-1) KMeans

  • 몇 개의 클러스터를 분할할지, 사전에 정해둔 경우 추천하는 클러스터링분석방법
  • 대규모 데이터의 경우, MiniBatch라고 해서 데이터를 나누면서 학습시키는 방법

3-2) 스펙트럼 클러스터링(GMM)

  • KMeans로 잘 분석되지 않는 경우에 이용하며, 비선형적인 클러스터링 분석 방법

3-3) MeanShift、VBGMM

  • 몇 개의 클러스터로 나눌지에 대해, 사전에 정할 수 없는 경우에 추천하는 클러스터링 분석 방법

 

예시 코드를 쳐보면서 .... 개념을 익혀보자...

우선 개념을 익히는 단계니... 여기까지

 

반응형