Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- KT AIVLE School
- aice associate
- kt aivleschool 8기
- kt 에이블스쿨 7기
- kt에이블스쿨7기
- 마이크로서비스
- msaez
- 7일 전사
- 후기
- adsp미어캣
- 기자단
- KT 에이블스쿨
- 어답터 민
- kt aivleschool 7기
- KT에이블스쿨
- springboot
- MSA
- 에이블 기자단
- 관세용어
- 데이터분석
- ktaivleschool
- 에이블기자단
- 에이블스쿨 7기
- 데이터
- kt 에이블스쿨 8기
- kt aivle school 7기
- AI트랙
- 미니프로젝트
- kt에이블스쿨8기
- Kafka
Archives
- Today
- Total
Hseong
[KT AIVLE SCHOOL 7기] - 머신러닝(2) 분류 본문
728x90
반응형
저번 시간에는 공기질 데이터에 대해서 다루면서, 선형회귀 모델을 그리고 모델을 돌리기 위한 데이터의 이해와 전처리를 했으므로 이번에는 앞서 했던 과정의 일부는 생략하고 중요한 것만 남겨보기로 했다!
# 데이터 읽어오기
path = 'https://raw.githubusercontent.com/Jangrae/csv/master/admission_simple.csv'
data = pd.read_csv(path)
# 상/하위 몇 개 행 확인
data.head()
이번에는 입학한 학생의 데이터를 보여주는 것인데, 앞서 한 데이터랑 다르다면 adimit ,research 의 경우 0 또는 1 언어로치면 True, False와 같은 입학여부를 뜻하므로 이는 수치형이 아닌 범주형 데이터이다! 그래서 해당 결과를 y 값을 잡고 선형회귀를 해버린다면 의미가 없으므로 이를 위해 분류 모델을 사용해보겠다!
# 변수 확인
data.info()
# 기술통계 확인
data.describe()
# 상관관계 확인
data.corr(numeric_only=True)
- 항상 말하지만 데이터의 전처리를 할 때는 결측치 확인을 하자! 운이 좋게 여기서는 결측치가 없다
- 그리고 데이터의 분포를 확인하기 위해 기술통계 describe를 통해서 확인해준다
- 그리고 상관 관계 즉, 의미있는 변수들을 추출하기 위해 corr 를 위해 확인한다!
- 현재 y값에 입학여부(범주형)인 ADMIT을 잡고, 나머지를 x값에 넣어서 분류 모델을 진행하려고 한다!
- 상관관계를 통해서 어느정도 파악을 하고 실행해보자!
# 1단계: 불러오기
from sklearn.tree import DecisionTreeClassifier
# 2단계: 선언하기
model = DecisionTreeClassifier()
# 3단계: 학습하기
model.fit(x_train, y_train)
# 4단계: 예측하기
y_pred = model.predict(x_test)
- 이번에는 의사결정트리를 이용하고, 모델을 선언한 뒤에 7:3으로 훈련,테스트 데이터를 나누고, 예측을 한다!
# 모듈 불러오기
from sklearn.metrics import confusion_matrix
# 성능 평가
print(confusion_matrix(y_test, y_pred))
# 혼동행렬 시각화
plt.figure(figsize=(8, 5))
sns.heatmap(confusion_matrix(y_test, y_pred),
annot=True,
cmap='Blues',
cbar=False,
square=True,
annot_kws={'size': 8})
plt.show()
- 평가 지표로는 confusion matrix를 이용하여 시각화 시켰고, 이를 평가지표로 사용한다.
- 여기서 Recall은 Actual 값 중 Actual 라고 예측한 값의 비율을 , Precision은 Actual 이라고 예측한 값들 중에 Actual값의 비율을 의미한다
- F1 score는 2*Recall*Precision / Precision + Recall 을 의미한다.
# 모듈 불러오기
from sklearn.metrics import classification_report
# 성능 평가
print(classification_report(y_test, y_pred))
그리고 classification_report를 통해 일일히 확인안하고 위 그림처럼 지표별 요약이 쭉 나오니 기억해야한다!
728x90
반응형
'KT AIVLE SCHOOL 7기' 카테고리의 다른 글
[KT AIVLE SCHOOL 7기] - 머신러닝 (4) 최종실습 (feat. 이제 중간 후기를 곁들인....) (1) | 2025.04.08 |
---|---|
[KT AIVLE SCHOOL 7기] - 머신러닝(3) 튜닝 (0) | 2025.04.08 |
[KT AIVLE SCHOOL 7기] - 머신러닝(1) 회귀 (1) | 2025.04.08 |
[KT AIVLE SCHOOL 7기] - 데이터 시각화(Matplotlib,Seaborn) (0) | 2025.04.07 |
[KT AIVLE SCHOOL 7기] - Pandas(데이터프레임) (0) | 2025.04.07 |