Machine Learning/분류모델12 iris 데이터를 활용한 KNN 분류 실습 [ numpy : np.bincount( ) , pandas : .value_counts( ) ] 1. 데이터 확인 2. 데이터 정리 (데이터프레임 화 / 문제와 답으로 분리 / 훈련 셋과 테스트 셋 분리 및 균형 확인 ) 3. 데이터 분석 (시각화등) 4. 모델링 (모델객체 생성 -> 하이퍼 파라미터 조정 / 모델 학습 / 모델 예측 / 모델 성능 평가) sklearn 에서 KNN분류모델인 KNeighborsClassifie 정확도 측정도구인 metrics.accuracy_score(테스트의 답, 예측값) 여기서 예측값이란 모델명.predict(훈련셋의 문제)로 예측한 값을 말함 그리고 훈련셋과 테스트 셋의 비율을 나눠주는 train_test_split 딕셔너리 형태로 key 값과 value 값이 있는걸 확인할 수 있음 딕셔너리 key 값을 불러오는 .keys() value 값을 불러올땐 .valu.. 2022. 8. 3. K-Nearest Neighbors (KNN) [ 알고리즘 개념 ] n개의 데이터에 근접한 데이터들를 찾아 예측 회귀 : 연속적인 값(=수치적으로 의미가 있는 값)을 출력, 예측하는 것 근접값 3 -> 사망1 생존2 -> 사망으로 예측 근접값 5 -> 사망3 생존3 -> 사망으로 예측 k값이 적다 = 범위가 작으므로 규칙이 많아짐 = 과대적합 = 복잡도 증가 (축구공 하나만 판별함) k값이 커진다 = 범위가 커지므로 규칙이 줄어듬 = 과소적합 = 복잡도가 낮아짐 (공인지만 판별함) 일반적으로 3,5를 기본값으로 많이 준다 정확도가 낮을경우 하이퍼 파라미터를 조절하던가 데이터를 다양하게 늘려준다 특성값이 적을때 특성값이 많아질때 2022. 8. 3. 지도학습을 이용한 비만판단 모델 시각화를 위한 matplotlib 머신러닝을 위한 sklearn (사이킷런) 인덱스 컬럼명을 label로 변경해줌 data명.info() -> 데이터의 형태 확인하기 그래프 사용을 위한 함수 생성 -> loc로 인덱스 컬럼을 전부 가져옴 (label이라 이름붙임) plt.scatter(x좌표 리스트, y좌표 리스트) 산포도그래프 plt.figure(figsize=(x축크기,y축크기)) X = 문제 = 특성 = feature y = 답 = 레이블 = label = target KNeighborsClassifier(n_neighbors=?)으로 모델 생성 하이퍼파라미터 (규제) = 사용자가 조정하는 매개변수 모델.fit(훈련용문제, 훈련용 답)으로 모델에게 학습시키기 모델명.predict(테스트용 문제) 이.. 2022. 8. 3. xor 연산 학습 , and 연산 학습 [ sklearn /KNeighborsClassifier / metrics / ] sklearn (사이킷런)를 이용해서 학습시키기 두 수가 같을때 0, 다르면 1이 되는 결과값을 가져오기 위한 데이터 iloc 슬라이싱을 이용해 문제와 답을 각각 나누기 모델변수명 = KNeighborsClassifier (n_neighbors =1) 로 모델을 만든후 모델변수명.fit( 문제, 답)으로 학습을 한다 이후 모델변수명.predict(예측할 값) 으로 예측을 한후 해당 값을 실제 정답과 metrics.accurqacy_score(예측값, 정답) 으로 정확도를 비교한다 ----------------------------------------------------------------------------------- 같은 방식으로 and 연산을 진행한다 2022. 8. 2. 이전 1 2 3 다음