Python 프로그래머이거나 머신 러닝을 프로덕션 시스템에 도입하는 데 사용할 강력한 툴킷을 찾고 있다면 Scikit-learn은 체크 아웃해야 하는 라이브러리입니다.
Scikit-learn은 기계 학습을 처음 접하거나, 빠르게 시작하여 실행하거나, 최신 ML 연구 도구를 활용하려는 경우에 관계없이 잘 문서화되어 사용이 간편합니다.
몇 줄의 코드로 예측 데이터 모델을 구성한 다음 해당 모델을 사용하여 데이터에 고급 라이브러리로 적합하도록 합니다. 유연하고 다른 사람들과 잘 어울립니다. Python 라이브러리 차트 작성을 위한 Matplotlib, 배열 벡터화를 위한 NumPy, 데이터 시각화를 위한 pandas와 같은
이 가이드에서는 그것이 무엇인지, 어떻게 사용할 수 있는지, 장단점과 함께 모든 것을 알게 될 것입니다.
사이 킷 러닝?
Scikit-learn(sklearn이라고도 함)은 다양한 통계 모델 및 기계 학습 세트를 제공합니다. 대부분의 모듈과 달리 sklearn은 C가 아닌 Python으로 개발되었습니다. Python으로 개발되었음에도 불구하고 sklearn의 효율성은 고성능 선형 대수 및 배열 연산에 NumPy를 사용했기 때문입니다.
Scikit-Learn은 Google의 Summer of Code 프로젝트의 일부로 만들어졌으며 그 이후로 전 세계 수백만 명의 Python 중심 데이터 과학자의 삶을 더 단순하게 만들었습니다. 시리즈의 이 섹션에서는 라이브러리를 제시하고 예측 모델을 개발하기 전에 수행해야 할 핵심적이고 중요한 단계인 데이터세트 변환이라는 한 요소에 초점을 맞추는 데 중점을 둡니다.
라이브러리는 scikit-learn을 사용하기 전에 설치해야 하는 SciPy(Scientific Python)를 기반으로 합니다. 이 스택에는 다음 항목이 포함되어 있습니다.
- NumPy: Python의 표준 n차원 배열 패키지
- SciPy: 과학 컴퓨팅을 위한 기본 패키지입니다.
- Pandas: 데이터 구조 및 분석
- Matplotlib: 강력한 2D/3D 플로팅 라이브러리입니다.
- Sympy: 기호 수학
- IPython: 향상된 대화형 콘솔
Scikit-learn 라이브러리의 응용
Scikit-learn은 정교한 데이터 분석 및 마이닝 기능을 갖춘 오픈 소스 Python 패키지입니다. 데이터 과학 프로젝트를 최대한 활용하는 데 도움이 되는 다양한 기본 제공 알고리즘이 함께 제공됩니다. Scikit-learn 라이브러리는 다음과 같은 방식으로 사용됩니다.
1. 회귀
회귀 분석은 둘 이상의 변수 간의 연결을 분석하고 이해하기 위한 통계적 기법입니다. 회귀 분석을 수행하는 데 사용되는 방법은 관련성이 있는 요소, 무시할 수 있는 요소 및 상호 작용 방식을 결정하는 데 도움이 됩니다. 예를 들어 회귀 기법은 주가의 움직임을 더 잘 이해하는 데 사용할 수 있습니다.
회귀 알고리즘에는 다음이 포함됩니다.
- 선형 회귀
- 릿지 회귀
- 올가미 회귀
- 의사결정 트리 회귀
- 랜덤 포레스트
- 서포트 벡터 머신 (SVM)
2. 분류
분류 방법은 훈련 데이터를 사용하여 새로운 관찰의 범주를 식별하는 지도 학습 접근 방식입니다. 분류의 알고리즘은 주어진 데이터 세트 또는 관찰을 수행한 다음 추가 관찰을 여러 클래스 또는 그룹화 중 하나로 분류합니다. 예를 들어 이메일 통신을 스팸으로 분류하는 데 사용할 수 있습니다.
분류 알고리즘에는 다음이 포함됩니다.
- 로지스틱 회귀
- K-가장 가까운 이웃
- 벡터 머신 지원
- 의사 결정 트리
- 랜덤 포레스트
3. 클러스터링
Scikit-learn의 클러스터링 알고리즘은 유사한 속성을 가진 데이터를 세트로 자동 정렬하는 데 사용됩니다. 클러스터링은 동일한 그룹의 항목이 다른 그룹의 항목과 더 유사하도록 항목 집합을 그룹화하는 프로세스입니다. 예를 들어 고객 데이터는 위치에 따라 분리될 수 있습니다.
클러스터링 알고리즘에는 다음이 포함됩니다.
- DB 스캔
- K- 평균
- 미니 배치 K-평균
- 스펙트럼 클러스터링
4. 모델 선택
모델 선택 알고리즘은 데이터 과학 이니셔티브에 사용할 최적의 매개변수와 모델을 비교, 검증 및 선택하는 방법을 제공합니다. 주어진 데이터에서 모델 선택은 후보 모델 그룹에서 통계 모델을 선택하는 문제입니다. 가장 기본적인 상황에서 기존 데이터 수집이 고려됩니다. 그러나 작업에는 수집된 데이터가 모델 선택 문제에 잘 맞도록 실험 설계가 포함될 수도 있습니다.
매개변수를 조정하여 정확도를 향상시킬 수 있는 모델 선택 모듈은 다음과 같습니다.
- 교차 검증
- 그리드 검색
- 통계
5. 차원 축소
고차원 공간에서 저차원 공간으로 데이터를 전송하여 저차원 표현이 원래 데이터의 일부 중요한 측면을 이상적으로는 고유 차원에 가깝게 유지하도록 하는 것을 차원 축소라고 합니다. 차원을 줄이면 분석을 위한 확률변수의 수가 줄어든다. 예를 들어, 외부 데이터는 시각화의 효율성을 개선하기 위해 고려되지 않을 수 있습니다.
차원 축소 알고리즘에는 다음이 포함됩니다.
- 기능 선택
- 주성분 분석 (PCA)
사이킷런 설치하기
NumPy, SciPy, Matplotlib, IPython, Sympy 및 Pandas는 Scikit-learn을 사용하기 전에 설치해야 합니다. 콘솔에서 pip를 사용하여 설치해 보겠습니다(Windows에서만 작동).
필요한 라이브러리를 설치했으므로 이제 Scikit-learn을 설치해 보겠습니다.
특징
sklearn이라고도 하는 Scikit-learn은 기계 학습 모델 및 통계 모델링을 구현하기 위한 Python 도구 키트입니다. 이를 사용하여 회귀, 분류 및 클러스터링을 위한 여러 기계 학습 모델과 이러한 모델을 평가하기 위한 통계 도구를 만들 수 있습니다. 또한 차원 축소, 기능 선택, 기능 추출, 앙상블 접근 방식 및 기본 제공 데이터 세트가 포함됩니다. 우리는 이러한 각 특성을 한 번에 하나씩 조사할 것입니다.
1. 데이터 세트 가져오기
Scikit-learn에는 홍채 데이터 세트, 주택 가격 데이터 세트, 타이타닉 데이터 세트 등과 같은 사전 구축된 데이터 세트가 많이 포함되어 있습니다. 이러한 데이터 세트의 주요 이점은 파악하기 쉽고 ML 모델을 즉시 개발하는 데 사용할 수 있다는 것입니다. 이 데이터 세트는 초보자에게 적합합니다. 마찬가지로 sklearn을 사용하여 추가 데이터 세트를 가져올 수 있습니다. 마찬가지로 추가 데이터 세트를 가져오는 데 사용할 수 있습니다.
2. 훈련 및 테스트를 위한 데이터 세트 분할
Sklearn에는 데이터 세트를 교육 및 테스트 세그먼트로 나누는 기능이 포함되어 있습니다. 예측 성능에 대한 편견 없는 평가를 위해서는 데이터 세트를 분할해야 합니다. 기차 및 테스트 데이터 세트에 포함되어야 하는 데이터의 양을 지정할 수 있습니다. 우리는 기차 세트가 데이터의 80%를 구성하고 테스트 세트가 20%를 갖도록 기차 테스트 분할을 사용하여 데이터 세트를 나눴습니다. 데이터 세트는 다음과 같이 나눌 수 있습니다.
3. 선형 회귀
선형 회귀는 지도 학습 기반 기계 학습 기술입니다. 회귀 작업을 수행합니다. 회귀는 독립 변수를 기반으로 목표 예측 값을 모델링합니다. 주로 변수와 예측 간의 연결을 결정하는 데 사용됩니다. 다른 회귀 모델은 사용되는 독립 변수의 수뿐만 아니라 종속 변수와 독립 변수 간의 연결 유형을 평가하는 측면에서 다릅니다. 다음과 같이 sklearn을 사용하여 선형 회귀 모델을 간단히 만들 수 있습니다.
4. 로지스틱 회귀
일반적인 분류 접근 방식은 로지스틱 회귀입니다. 다항식 및 선형 회귀와 동일한 제품군에 있으며 선형 분류기 제품군에 속합니다. 로지스틱 회귀 분석 결과는 이해하기 쉽고 빠르게 계산할 수 있습니다. 선형 회귀와 같은 방식으로 로지스틱 회귀는 지도 회귀 기법입니다. 출력 변수는 범주형이므로 이것이 유일한 차이점입니다. 환자가 심장병을 앓고 있는지 여부를 결정할 수 있습니다.
스팸 탐지와 같은 다양한 분류 문제는 로지스틱 회귀를 사용하여 해결할 수 있습니다. 당뇨병 예측, 소비자가 특정 제품을 구매하거나 경쟁 제품으로 전환할지 결정하고, 사용자가 특정 마케팅 링크를 클릭할지 여부를 결정하고, 더 많은 시나리오는 몇 가지 예에 불과합니다.
5. 의사결정 트리
가장 강력하고 널리 사용되는 분류 및 예측 기술은 의사결정나무입니다. 의사 결정 트리는 순서도처럼 보이는 트리 구조로, 각 내부 노드는 특성에 대한 테스트를 나타내고, 각 분기는 테스트의 결론을 나타내며, 각 리프 노드(터미널 노드)는 클래스 레이블을 보유합니다.
종속 변수가 독립 변수와 선형 관계를 갖지 않을 때, 즉 선형 회귀가 올바른 결과를 생성하지 않을 때 의사 결정 트리가 유용합니다. DecisionTreeRegression() 객체는 회귀에 대한 의사결정 트리를 활용하는 유사한 방식으로 사용될 수 있습니다.
6. 랜덤 포레스트
랜덤 포레스트는 기계 학습 회귀 및 분류 문제를 해결하기 위한 접근 방식. 복잡한 문제를 해결하기 위해 여러 분류기를 결합하는 기술인 앙상블 학습을 사용합니다. 랜덤 포레스트 방법은 많은 수의 결정 트리로 구성됩니다. 대출 신청을 분류하고 사기 행위를 감지하며 질병 발생을 예측하는 데 사용할 수 있습니다.
7. 혼란 매트릭스
혼동 행렬은 분류 모델 성능을 설명하는 데 사용되는 표입니다. 다음 네 단어는 혼동 행렬을 검사하는 데 사용됩니다.
- 참 긍정: 모델이 호의적인 결과를 예상하고 맞았음을 의미합니다.
- True Negative: 모델이 나쁜 결과를 예상했고 정확했음을 나타냅니다.
- False Positive: 모델이 유리한 결과를 기대했지만 실제로는 부정적인 결과를 나타냄을 나타냅니다.
- False Negative: 모델이 부정적인 결과를 예상했지만 결과는 실제로 긍정적임을 나타냅니다.
혼동 행렬 구현:
장점
- 사용법은 간단합니다.
- Scikit-learn 패키지는 적응력이 매우 뛰어나고 유용하며 소비자 행동 예측, 신경 이미지 개발 등과 같은 실제 목표를 지원합니다.
- 알고리즘을 플랫폼과 연결하려는 사용자는 Scikit-learn 웹사이트에서 자세한 API 문서를 찾을 수 있습니다.
- 수많은 작가, 공동 작업자 및 전 세계의 대규모 온라인 커뮤니티가 Scikit-learn을 최신 상태로 유지하고 지원합니다.
단점
- 심층 연구에 이상적인 옵션은 아닙니다.
결론
Scikit-learn은 모든 데이터 과학자가 충분히 이해하고 경험해야 하는 중요한 패키지입니다. 이 가이드는 sklearn을 사용한 데이터 조작에 도움이 될 것입니다. 데이터 과학 모험을 진행하면서 발견하게 될 Scikit-learn의 더 많은 기능이 있습니다. 의견에 당신의 생각을 공유하십시오.
댓글을 남겨주세요.