차례:
- 데이터를로드하는 방법
- 1 행은 데이터 세트를 두 부분으로 나눌 수있는 라이브러리를 가져옵니다.
- 테스트 데이터 실행 방법
- 그러면 C = 150의 로지스틱 회귀 모형이 그 모형과 어떻게 비교 될까요? 글쎄, 당신은 100 퍼센트를 이길 수 없다. 다음은 C = 150 : >>>> logClassifier_2 = linear_model 인 로지스틱 분류기를 작성하고 평가하는 코드입니다. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> predict = logClassifier_2. predict (X_test) >>> 통계. accuracy_score (y_test, predicted) 0. 93333333333333335 >>> 통계. confusion_matrix (y_test, predicted) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
비디오: [머신러닝] 나이브 베이즈(Naive Bayes) 분류 (1/2) - 확률 (Probability) 쉽게 이해하기 2024
데이터 분석을위한 첫 번째 분류 예측 모델을 작성한 후에는 더 많은 모델을 만드는 것이 scikit에서 정말 직관적 인 작업입니다. 한 모델에서 다음 모델로의 유일한 차이점은 알고리즘에서 알고리즘으로 매개 변수를 조정해야한다는 것입니다.
데이터를로드하는 방법
이 코드 목록은 아이리스 데이터 세트를 sklearn의 >>>> 세션에로드합니다. 데이터 세트 가져 오기 load_iris >>> iris = load_iris ()
분류 자의 인스턴스를 만드는 방법
생성자의 매개 변수 (정규화 매개 변수)에 주목하십시오. 초과 조정을 방지하기 위해
정규화 매개 변수
가 사용됩니다. 이 매개 변수는 반드시 필요하지는 않습니다 (기본값이 C = 1이므로 생성자가 제대로 작동합니다). C = 150을 사용하여 로지스틱 회귀 분류기를 만들면 의사 결정 지표의 더 나은 플롯이 생성됩니다. 아래의 두 도표를 모두 볼 수 있습니다. 교육 데이터 실행 방법
로지스틱 회귀 분류기의 인스턴스를 만들기 전에 데이터 세트를 교육 및 테스트 세트로 분할해야합니다. 다음 코드는이 작업을 수행합니다: sklearn import cross_validation >>> X_train, X_test, y_train, y_test = cross_validation에서 >>>>. train_test_split (홍채 데이터, 홍채 목표, test_size = 0.10, random_state = 111) >>> logClassifier. fit (X_train, y_train)1 행은 데이터 세트를 두 부분으로 나눌 수있는 라이브러리를 가져옵니다.
2 행은 데이터 집합을 두 부분으로 나눈 라이브러리에서 함수를 호출하고 현재 분할 된 데이터 집합을 두 쌍의 변수에 할당합니다.
3 행은 방금 작성한 로지스틱 회귀 분류기의 인스턴스를 가져 와서 fit 메소드를 호출하여 교육 데이터 세트로 모델을 학습합니다.
분류자를 시각화하는 방법
플롯의 결정 표면 영역을 살펴보면 약간의 조정이 필요하다는 것처럼 보입니다. 플롯의 중간 부분을 보면 중간 영역 (Versicolor)에 속한 많은 데이터 요소가 오른쪽 영역 (Virginica)에 있음을 알 수 있습니다.
이 이미지는 C 값이 150 인 결정 표면을 보여줍니다. 시각적으로보기에 좋으므로 로지스틱 회귀 모델에이 설정을 사용하는 것이 적절합니다.
테스트 데이터 실행 방법
다음 코드에서 첫 번째 행은 테스트 데이터 집합을 모델에 공급하고 세 번째 행은 >>>> predicted = logClassifier 출력을 표시합니다. (0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2)
모형을 평가하는 방법 < y_test 배열에 대한 예측 결과를 상호 참조 할 수 있습니다. 결과적으로 모든 테스트 데이터 포인트가 올바르게 예측되었음을 알 수 있습니다. 코드는 다음과 같습니다: sklearn import metric에서 >>>> predictarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> accuracy_score (y_test, predicted) 1. 0 # 1. 0은 100 % 정확도 >>> 예측 == y_testarray ([True, True, True, True, True, True, True, True, True, True, True, True, True, True], dtype = bool)
그러면 C = 150의 로지스틱 회귀 모형이 그 모형과 어떻게 비교 될까요? 글쎄, 당신은 100 퍼센트를 이길 수 없다. 다음은 C = 150: >>>> logClassifier_2 = linear_model 인 로지스틱 분류기를 작성하고 평가하는 코드입니다. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> predict = logClassifier_2. predict (X_test) >>> 통계. accuracy_score (y_test, predicted) 0. 93333333333333335 >>> 통계. confusion_matrix (y_test, predicted) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
더 나은 결과를 기대했지만 실제로는 더 나빴다. 예측에 한 가지 오류가있었습니다. 결과는 SVM (Support Vector Machine) 모델의 결과와 동일합니다.
기본 매개 변수를 사용하여 로지스틱 회귀 분석 모델을 작성하고 평가하는 코드의 전체 목록은 다음과 같습니다. >>>> sklearn. 데이터 세트 가져 오기 load_iris >>> from sklearn import linear_model >>> sklearn import cross_validation >>> from sklearn import metrics >>> iris = load_iris () >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (홍채 데이터, 홍채 목표, test_size = 0.10, random_state = 111) >>> logClassifier = linear_model. LogisticRegression (, random_state = 111) >>> logClassifier입니다. fit (X_train, y_train) >>> predict = logClassifier. >>> y_testarray ([0, 0, 0, 0, 2, 2, 1, 2, 0, 2, 2]) >>> predictarray ([0, 0, 2, 2,, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> accuracy_score (y_test, predicted) 1. 0 # 1. 0은 100 % 정확도 >>> 예측 == y_testarray ([True, True, True, True, True, True, True, True, True, True, True, True, True, True], dtype = bool)