- 여기서 모델을 배우는 이론에서 어려울 것:
## 이상치 확인하기
# 몸무게 78kg , 키가 153cm - 라벨이 잘못 달린 것, 정상-> 비만으로 변경하기
bmi[bmi['Weight'] == 78]
## 이상치 값 변경
- 직접 뽑아와서 변경하는 방법
bmi.iloc[231, 3] = 'Obesity'
# 지금까지 1. 데이터부 의 4 단계 진행함.
# 이제부터 2. 모델부 : 5)모델 선택 및 하이퍼 파라미터 튜닝, 6) 학습 7) 평가
# 모델 선택 및 하이퍼 파라미터 튜닝
- 문제와 답으로 분리
- trainning훈련 set과 evaluation평가 set으로 분리
- 모델 생성 및 하이퍼 파라미터 튜닝
bmi.head()
# 머신러닝에서의 데이터 학습은 숫자 값만 가능,
# 분류의 정답인 경우만 문자 형태 라벨이 가능
# 데이터를 숫자로 변환해주는 방법도 있지만, 일단 이번에는 성별 데이터를 삭제해볼 것임
X= bmi.loc[ : , 'Height' : 'Weight']
y= bmi.loc[ : , 'Label']
X.shape , y.shape
## 훈련과 평가로 분리
- 훈련 7 : 평가 3
X_train = X.iloc[:350]
X_test = X.iloc[350:]
y_train = y.iloc[:350]
y_test = y.iloc[350:]
X_train.shape, y_train.shape, X_test.shape,y_test.shape
## 모델 불러오기
-KNN : k( 상수) Nearest Neighbors
-지정한 상수 k 의 범위 안에서 문제와 가장 가까운(많은) 답을 도출
from sklearn.neighbors import KNeighborsClassifier
knn_model = KNeighborsClassifier()
#knn_model = KNeighborsClassifier() <- 괄호 안에 세부 매개 변수 수정하여 사용
# shift + tab 으로 설명 확인
# hyper parameter tuning
# 세부 매개변수 수정을 위한 것
# 학습
knn_model.fit( X_train, y_train )
# 평가
knn_model.predict( [ [ 174, 68 ] ] )
# test 데이터를 이용한 모델 정확도 확인
knn_model.score(X_test, y_test)
# train 데이터로도 확인 가능
knn_model.score(X_train, y_train)
# 성별 컬럼을 추가해서 학습하기
- male > 1
- female > 2
- map 함수 사용
bmi['Gender'] = bmi['Gender'].map( {"Male" : 1 , "Female": 2 } )
bmi.head()
## 문제와 정답으로 분리
X = bmi.iloc[ : , : -1]
y = bmi.iloc[ : , -1]
## 훈련과 평가로 분리
X_train = X.iloc[:350]
X_test = X.iloc[350:]
y_train = y.iloc[:350]
y_test = y.iloc[350:]
## 모델 불러오기
from sklearn.neighbors import KNeighborsClassifier
knn_model = KNeighborsClassifier()
## 학습
knn_model.fit( X_train, y_train )
## 평가
# 성별 컬러
# test 데이터를 이용한 모델 정확도 확인
knn_model.score(X_test, y_test)
# train 데이터로도 확인 가능
knn_model.score(X_train, y_train)
[국비지원무료교육][빅데이터 개발자 과정][머신러닝] 파이썬- 다섯 번째 수업: iris 데이터 분석 실습 풀이 (0) | 2022.03.16 |
---|---|
[국비지원무료교육][머신러닝] 파이썬- 머신러닝 네 번째 수업: 과(대)적합, 과소적합, 일반화, KNN (0) | 2022.03.10 |
[국비지원무료교육][머신러닝] 파이썬- 머신러닝 두 번째 수업: 비지도 학습 개념, bmi-500 data, pandas와 pyplot으로 시각화 하기 (0) | 2022.03.08 |
[국비지원무료교육][머신러닝] 파이썬- 머신러닝 첫 수업: 사이킷런(scikitlearn) 랜덤포레스트(RandomForest) 사용해보기 (0) | 2022.03.06 |
pandas 기능 정리(1) (0) | 2021.12.30 |
댓글 영역