Python으로 첫 번째 기계 학습 분류기 빌드

이 기사는 처음부터 Python으로 기계 학습 분류기를 빌드하는 데 도움이됩니다. 또한 분류에 대한 자세한 지식을 제공합니다.

지금 유행어입니다. 기계 학습의 도움으로 놀라운 일이 이루어지고 있습니다. 우리가되는 것에서 개인 비서 , 우리의 결정에 여행 경로 , 쇼핑을 돕고, 비즈니스 운영을 돕고, 건강과 웰빙, 머신 러닝은 이러한 기본적인 수준에서 일상 생활에 통합되어 대부분의 경우 우리가 그것에 의존하고 있다는 사실조차 깨닫지 못합니다. 이 기사에서는 초보자의 접근 방식을 따라 Python에서 표준 머신 러닝 분류기를 구현합니다.

머신 러닝 개요

기계 학습은 기계가 예제와 경험을 통해 학습 할 수 있도록하는 개념이며 명시 적으로 프로그래밍하지 않아도됩니다. 따라서 코드를 작성하는 대신 일반 알고리즘에 데이터를 공급하면 알고리즘 / 기계가 주어진 데이터를 기반으로 논리를 구축합니다.





기계 학습 분류기

기계 학습은 기계가 의사 결정을 내리고, 작업 결과를 평가하고, 더 나은 결과를 연속적으로 얻기 위해 행동을 개선하는 능력을 포함합니다.



학습 과정은 세 가지 주요 방법으로 진행됩니다.

  • 지도 학습
  • 비지도 학습
  • 강화 학습

머신 러닝 분류 기용 템플릿

기계 학습 도구는 scikit-learn이라는 Python 라이브러리에서 매우 편리하게 제공되며 액세스 및 적용이 매우 간단합니다.



다음을 사용하여 명령 프롬프트를 통해 scikit-learn을 설치합니다.

pip 설치 -U scikit-learn

아나콘다 사용자 인 경우 anaconda 프롬프트에서 다음을 사용할 수 있습니다.

conda 설치 scikit-learn

설치하려면 시스템에 NumPy 및 SciPy 패키지를 미리 설치해야합니다.

전처리 : 머신 러닝 기반 데이터 분석에서 가장 먼저 필요한 단계는 전처리 부분입니다. ML 모델이 잘 훈련되고 잠재력을 발휘하려면 데이터의 올바른 표현과 정리가 절대적으로 필요합니다.

자바 객체 배열 생성

1 단계 – 필요한 라이브러리 가져 오기

numpy를 np로 가져 오기 pandas를 pd로 가져 오기 matplotlib.pyplot을 plt로 가져 오기

2 단계 – 데이터 세트 가져 오기

데이터 셋 = pd.read_csv ()

그런 다음 데이터 세트를 독립 변수와 종속 변수로 분할합니다. 독립 변수는 입력 데이터이고 종속 변수는 출력 데이터입니다.

X = dataset.iloc []. values ​​y = dataset.iloc []. values

3 단계 – 누락 된 데이터 처리

데이터 세트에는 결과에 오류가 발생할 수있는 공백 또는 null 값이 포함될 수 있습니다. 따라서 우리는 그러한 항목을 처리해야합니다. 일반적인 방법은 null 값을 해당 열의 평균 또는 가장 빈번한 값과 같은 일반적인 값으로 바꾸는 것입니다.

sklearn.preprocessing에서 import Imputer imputer = Imputer (missing_values ​​= 'NaN', 전략 = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

4 단계 – 범주 형 변수를 숫자 변수로 변환

sklearn.preprocessing에서 import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

이제 인코딩 후 컴퓨터가 숫자 데이터를 인코딩 된 열의 순위로 가정 할 수 있습니다. 따라서 동일한 가중치를 제공하려면 OneHotEncoder 클래스를 사용하여 숫자를 원-핫 벡터로 변환해야합니다.

sklearn.preprocessing에서 import OneHotEncoder oneHE = OneHotEncoder (categorical_features = []) X = oneHE.fit_transform (X) .toarray ()

5 단계 – 스케일링 수행

자바에서 문자열 날짜를 날짜로 변환

이 단계는 변수의 척도가 일치하지 않아 발생하는 불일치를 처리하는 것입니다. 따라서 모델에 입력되는 동안 동일한 가중치를 받도록 모두 동일한 범위로 확장합니다. 이를 위해 StandardScaler 클래스의 개체를 사용합니다.

sklearn.preprocessing에서 import StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

6 단계 – 데이터 세트를 훈련 및 테스트 데이터로 분할

전처리의 마지막 단계로 데이터 세트를 학습 세트와 테스트 세트로 분리해야합니다. 기차-테스트 분할의 표준 비율은 75 % -25 %입니다. 요구 사항에 따라 수정할 수 있습니다. train_test_split () 함수는 우리를 위해 이것을 할 수 있습니다.

sklearn.model_selection에서 import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

모델 구축 : 이 단계는 실제로 매우 간단합니다. 데이터에 적용 할 모델을 결정하면 해당 클래스의 객체를 만들고 X_train을 입력으로, y_train을 출력으로 고려하여 훈련 세트에 객체를 맞출 수 있습니다.

sklearn에서. import classifier = () classifier.fit (X_train, y_train)

이제 모델이 훈련되고 준비되었습니다. 이제 모델을 테스트 세트에 적용하고 예측 된 결과를 찾을 수 있습니다.

y_pred = 분류 자. 예측 (X_test)

결과보기 : 분류기의 성능은 정확도, 정밀도, 재현율 및 f1 점수의 매개 변수로 평가할 수 있습니다. 이러한 값은 classification_report ()라는 메서드를 사용하여 볼 수 있습니다. t는 또한 얼마나 많은 데이터 범주가 올바르게 분류되었는지 알 수 있도록하는 혼동 행렬로 볼 수 있습니다.

sklearn.metrics에서 import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) from sklearn.metrics import classification_report target_names = [] print (classification_report (y_test, y_pred, target_names = target_names))

기계 학습 분류 자 ​​문제

우리는 Iris-setosa, Iris-versicolor 및 Iris-virginica의 세 가지 범주에있는 꽃의 차원을 포함하는 매우 인기 있고 간단한 Iris 데이터 세트를 사용합니다. 데이터 세트에는 150 개의 항목이 있습니다.

# 라이브러리 가져 오기 import numpy as np import matplotlib.pyplot as plt import pandas as pd # 데이터 세트 가져 오기 데이터 세트 = pd.read_csv ( 'iris.csv')

이제 데이터 세트를 보겠습니다.

dataset.head ()

4 개의 독립 변수 (Id 제외), 즉 열 번호 1-4가 있고 열 5는 종속 변수입니다. 그래서 우리는 그것들을 분리 할 수 ​​있습니다.

X = dataset.iloc [:, 1 : 5] .values ​​y = dataset.iloc [:, 5] .values

이제 데이터 세트를 학습 및 테스트로 분할 할 수 있습니다.

# sklearn.model_selection에서 데이터 세트를 훈련 세트와 테스트 세트로 분할 import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

이제 데이터 세트에 로지스틱 회귀 분류기를 적용합니다.

# sklearn.linear_model에서 모델 빌드 및 훈련 import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # 테스트 세트 결과 예측 y_pred = classifier.predict (X_test)

마지막 단계는 훈련 된 모델의 성능을 분석하는 것입니다.

# sklearn.metrics에서 혼동 행렬 만들기 import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

이것은 첫 번째 카테고리의 13 개 항목, 두 번째 카테고리의 11 개, 세 번째 카테고리의 9 개 항목이 모델에 의해 올바르게 예측되었음을 보여줍니다.

# sklearn.metrics에서 정확도, 정밀도, 재현율 및 f1 점수 생성 import classification_report target_names = [ 'Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (classification_report (y_test, y_pred, target_names = target_names) )

이 보고서는 38 개 항목 (데이터 세트의 25 %)으로 구성된 테스트 세트에서 모델의 정밀도, 재현율, f1 점수 및 정확도 값을 보여줍니다.

축하합니다. Python으로 첫 번째 기계 학습 분류기를 성공적으로 만들고 구현했습니다! 에 대한 심층 지식을 얻으려면 다양한 애플리케이션과 함께 연중 무휴 지원 및 평생 액세스를 통해 라이브 Python 온라인 교육에 등록 할 수 있습니다.

자바에서 오버로딩 대 오버로딩