[파이썬 기계 학습] 아이리스 분류 기계 학습 응용 프로그램

문제 1. 설명

  그녀는 매우 흥미로운 발견 홍채 애호가의 식물 품종을 가정 해 봅시다. 그녀는 각각의 꽃 아이리스 일부 측정을 수집 :
  • 길이 및 폭뿐만 아니라 길이와 폭은 꽃잎 꽃받침, 모든 단위는 cm 측정이다.
  그녀는 또한 측정 데이터 조리개의 숫자, 그들이, 식물 전문가 setosa에 속하는 베르 virginica 1 년 또는 3 개 종류로 확인되기 전에 꽃을했다. 이러한 측정을 위해, 그녀는 각각의 꽃 종에 속하는 결정 조리개 될 수있다.
  우리는 식물학 매니아 야생에서 세 개의 홍채가 발생하는 것으로 가정합니다. 우리의 목표는 기계 학습 모델을 구축하는 것입니다, 우리는 새로운 홍채 품종을 예측할 수하기 위해 홍채 측정 데이터의 이러한 알려진 품종에서 배울 수 있습니다 . A는이 그래서 우리는, 홍채 측정 데이터의 종류를 알고 있기 때문에 학습 감독 문제. 이 문제에서 우리는 여러 옵션 하나 (아이리스 종)을 예측합니다. 이 문제의 분류 (classifification) 예이다. 가능한 출력 (홍채의 다른 종류)라는 카테고리 (클래스). 이 세 분류 문제 있도록 각 데이터 세트 아이리스 꽃은 세 가지 범주 중 하나에 속합니다.

2, 테스트 코드

1  # 으로 / usr / bin / env를 파이썬! 
2  # - * - 코딩 : UTF-8 - * - 
3  # @file : Iris.py 
4  # @Author :赵路仓
5  # @date : 2020년 2월 26일 
6  # @ 내용 : 
7  # @Contact : [email protected] 
8  
9  오기 NP NumPy와 같은
 10  수입 PLT 같은 matplotlib.pyplot
 11  수입 PD 등 팬더
 12  오기 mglearn
 13  수입 PD 등 팬더
 14  에서 sklearn.datasets가 가져 load_iris  # 고전에서 기계 학습, 통계 데이터 세트 인 아이리스 (홍채) 데이터 세트 
(15)  에서 sklearn.model_selection 임포트 train_test_split
 16  
17 iris_dataset = load_iris ()   #의 load_iris 홍채 무리 객체가 사전 갖는 객체 매우이다 리턴 유사하게, 상기 키 값을 포함하는 
(18)는  인쇄 ( " \ N- {} 키나 iris_dataset " .format (iris_dataset.keys ()))   #의 인쇄 
. 19  인쇄 (iris_dataset [ ' DESCR ' ] [193] + " \ N-. .. " )   #의 데이터 세트의 간단한 설명에 대응 DESCR 키 값. 키 값에 해당하는 target_names 우리가 꽃의 종류를 예측하려는 포함하는 문자열 배열 
(20)  인쇄 ( "이름 대상 : {} " .format (iris_dataset [ ' target_names ' ]))   # 꽃의 유형 이름 세 종류의 
(21)는  인쇄 ( " 피쳐 이름 : {} " .format (iris_dataset [ ' feature_names ' ]))   # 꽃 특성 세 종류의, 폭 꽃잎 꽃받침 길이의 길이와 폭 
(22)은  인쇄 ( " 데이터 유형 : {} " .format (유형 (iris_dataset [ ' 데이터 ' ])))   # 꽃에 대응하는 데이터 배열의 각 행의 열은 각각의 꽃을 나타내는 네 개의 측정 데이터 
(23)는  인쇄 ( " : {} 데이터의 모양 " .format (iris_dataset [' 데이터 ' ] .shape))   #의 배열이 측정 데이터 (150)이 다른 꽃 포함 
24  인쇄 ( " 데이터의 처음 다섯 행 : \ N- {} " .format (iris_dataset [ ' 데이터 ' ] :. 5]))   # 전면 꽃 5 개 개의 데이터 
(25)  전단 ( " 타겟의 타입 : {} " .format (유형 (iris_dataset [ ' 타겟 ' ])))   #는 1 차원 배열 각 꽃에 대응하는 데이터 인 
26  인쇄 ( " 타겟의 형상 {} " .format (iris_dataset [ ' 타겟 ' ].  모양)) #
27  인쇄 ( " 대상 : \ N- {} " .format (iris_dataset [ ' 타겟 ' ]))   #의 종 012 세 종류를 나타내는 세 개의 정수로 
28  
(29) . X_train, X_test, Y_train, android.permission.FACTOR을 Train_test_split = (iris_dataset [ ' 데이터 ' ] iris_dataset [ ' 타겟 ' , random_state = 0)
 (30)  이 전단 ( " X_train 모양 {} " .format (X_train.shape))
 (31)는  인쇄 ( " Y_train 모양 {} " .format (Y_train. 모양))
 (32)  인쇄 (" X_test 형상 {}는 " .format (X_test.shape))
 (33)는  인쇄 ( " . android.permission.FACTOR 형태 : {} " .format (Y_test.shape))
 (34)는  
35 개  # 데이터 X_train DataFrame 사용하여 만든 
36  # iris_dataset.feature_names를 이용하여 문자를 표시 데이터 
(37) [ iris_dataframe = pd.DataFrame (X_train, 열 = iris_dataset.feature_names)   # 횡축 횡축 제목 
38  # 사용 DataFrame가 y_trian 들여진 산점도 행렬 작성 
39 (iris_dataframe를 GRR = pd.plotting.scatter_matrix을 Y_train = C, figsize = (15, 15), 표시 자 = ' O ' , hist_kwds = { " "20}, S = 60, 알파 = 0.8, = cmap를 mglearn.cm3)
 40 plt.show ()

  주 : 꽃의 데이터 배열을 나타내는 각각의 로우는 4 개의 열은 각각 꽃, 꽃 (150)의 다른 전체의 측정 데이터를 나타내는 것을 특징으로한다. 타겟이 1 차원 배열이며, 각 꽃 대표 데이터는 그 내부에, 0,1,2 세 개의 꽃 세 가지 종의 정수를 나타낸다.

3, 측정 성공 : 훈련 데이터와 테스트 데이터

  첫째, 모델은 모델들이 경기를 100 %이어야합니다 테스트에 사용되는 데이터 모델을 구축하도록되어 있기 때문에, 모델을 구축하기 위해 데이터를 평가하는 데 사용할 수 없습니다. 따라서 모델을 테스트하기 위해 새로운 데이터를 사용합니다. 

  기계 학습 모델을 구성하는 데 사용되는 데이터의 일부라는 교육 훈련 데이터 (교육 자료) 또는 트레이닝 세트 (교육 SET) 모델을 학습 기계를 구성하는 데 사용되는 데이터입니다. 나머지 데이터라는 모델의 성능을 평가하는 데 사용되는 테스트 데이터 (테스트 데이터) , - 테스트 세트 (테스트 세트) 또는 휴가 세트 (SET의 HOLD-OUT을) . train_test_split scikit 배울 데이터 세트 및 분할을 방해 할 수 기능을. 75 %의 라벨 및 트레이닝 세트와 같은 대응하는 데이터 선, 및 상기 테스트 데이터 세트와 탭은 25 %, 75 % 및 25 %는 상황에 따라 변경 될 수있다.
  즉, 훈련은 데이터 모델을 구축하고, 테스트 데이터는 성공의 모델 여부를 테스트하는 것입니다. X 입력에 의해 표현되는 각각 Y 출력에 의해 표시되는 네 개의 데이터 꽃.
  random_state 파라미터를 지정 난수 발생기 시드를 이용하여, 상기 데이터 세트를 생성 방해 의사 난수를 사용 train_test_split 기능. 함수의 출력이 고정되도록,이 라인의 출력은 항상 동일하다.
  코드의 부분은 다음과 같습니다 :
X_train, X_test, Y_train, Y_test = train_test_split (iris_dataset [ ' 데이터 ' ] iris_dataset [ ' 타겟 ' , random_state = 0)
 인쇄 ( " X_train 형상 {} " .format (X_train.shape))
 인쇄 ( " Y_train 형상 {} " .format (Y_train.shape))
 인쇄 ( " X_test 형상 {} " .format (X_test.shape))
 인쇄 ( " Y_test 형상 {} " .format (Y_test.shape))

4, 관찰

  시각적 렌더링 방식은 산포도 (산점도)이다. 또 다른 특징에 특성 X 축, Y 축으로하는 산포도 데이터는 데이터 요소들 각각은도에 지점으로 플롯. 불행하게도, 컴퓨터 화면 두 치수는, 그래서 우리는 두 가지 기능 (아마도 세)을 그릴 수 있습니다. 더 세 이상 이런 식으로 설정 하드 특성 데이터 역모를 꾸몄다. 이 문제를 해결하는 한 가지 방법은 산점도 행렬 (쌍 플롯)을 그리는 것이다.
  코드의 부분은 다음과 같습니다 :
1 개  # 사용 데이터를 생성 DataFrame X_train 
2  # 사용 iris_dataset.feature_names 문자 데이터를 표시 
. 3 iris_dataframe = pd.DataFrame (X_train, 열 = iris_dataset.feature_names)는   # 횡축 횡축 이름 
4  # 이용 산포도가 DataFrame 만들어 행렬 y_trian 착색 따른 
. 5 GRR = pd.plotting.scatter_matrix (iris_dataframe, C = Y_train, figsize = (15, 15), 표시 자 = ' O ' , hist_kwds = { ' 빈들 ' } 20, S = 60, = 알파 0.8, CMAP = mglearn.cm3)
 . 6 plt.show ()

  데이터 표시 결과 :

 

 

추천

출처www.cnblogs.com/zlc364624/p/12369979.html