-
머신러닝 시작하기1공부/A.I 2021. 5. 6. 20:52
파이썬 라이브러리를 활용한 머신러닝(번역개정판)
사이킷런 핵심 개발자에게 배우는 머신러닝 이론과 구현 현업에서 머신러닝을 연구하고 인공지능 서비스를 개발하기 위해 꼭 학위를 받을 필요는 없습니다. 사이킷런(scikit-learn)과 같은 훌륭
books.google.co.jp
- 붓꽃의 품종 분류
사용할 데이터 셋은 scikit-learn의 datasets 모듈에 포함되 있는 iris(붓꽃)데이터 셋이다.
위와 같이 load_iris함수를 통해 데이터를 불러온다.
- 데이터 셋 실습
더보기데이터 셋 분석
- 훈련 데이터와 테스트 데이터
3:1비율로 훈련데이터와 테스트 데이터로 나누었다. train_test_split함수는 기본적으로 25%를 테스트 셋으로, 나머지를 트레이닝 셋으로 한다.
데이터가 레이블 순서대로 정렬되있기때문에, 데이터 셋을 train_test_split함수로 나누기 전에 데이터 셋을 섞어야한다.
random_state는 난수 초깃값이다.(난수seed값)
shuffle=False shuffle속성을 활용해 섞지 않고 이용도 가능하다.
- 산점도와 산점도 행렬
산점도, scatter plot : 한 특성은 X축, 다른 한 특성은 Y축에 놓아 데이터 포인트를 하나의 점으로 나타내는 그래프
산점도 행렬 : 화면으로는 2차원 혹은 3차원의 특성을 그릴 수 있는데, 이 때 모든 특성을 짝지어 만드는 산점도 행렬을 사용할 수 있다.
import mglearn iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names) pd.plotting.scatter_matrix(iris_dataframe, figsize=(15, 15), c=y_train, marker='o' , hist_kwds={'bins' : 20}, s=60, alpha=.8, cmap=mglearn.cm3 ) #pandas에서는 산점도 행렬을 지원해준다.
산점도 행렬 - k-최근접 이웃 알고리즘
k-Nearest Neighbors, k-NN : 새로운 데이터 포인트에 대해 예측할 때, 가장 가까운 훈련 데이터 포인트를 찾는 알고리즘
이때, k는 가장 가까운 이웃 k개 이웃으로, 가장 가까운 이웃 k개중 빈도수가 가장 높은 것이 예측 값이 된다.
n_neighbors=1 은 이웃의 개수, 즉 k의 값
knn.fit(X_train, y_train) 함수를 통해 학습을 시키고, 임의의 데이터 포인트하나를 예측해 본다.
예측된 값으로 setosa가 나옴을 볼 수 있다.
- 모델 평가
예측 값과 정확도 '공부 > A.I' 카테고리의 다른 글
복잡도와 일반화 사이의 관계 (0) 2021.05.10 forge데이터셋 (0) 2021.05.09 지도 학습 데이터. (0) 2021.05.09 지도 학습 (0) 2021.05.09 파이썬 라이브러리 (0) 2021.05.06