일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 홍명희 임꺽정
- 영화AI추천
- 영화추천시스템
- 멋쟁이사자처럼 k 디지털
- AI 코딩
- 비전공자 멋쟁이사자처럼
- 인터뷰
- 멋쟁이사자처럼
- 멋사 AI
- 멋사 AI 교육
- 멋쟁이사자처럼 전액국비지원
- k 디지털 후기
- 문학동네
- 추천프로젝트
- 인생책짧은글
- til
- k 디지털
- 이렇게 그녀를 잃었다
- 리뷰
- 멋사 국비지원과정
- 유니오르
- 비전공자 코딩교육
- 가브리엘마르케스
- 비전공자 코딩
- 멋쟁이사자처럼 k-digital
- 민음사
- 인생책
- AI 국비지원
- 멋사 k 디지털
- 멋사 전액국비지원교육
- Today
- Total
글쟁이, 코딩한다
0127 / k_digital 35일차 / 세미프로젝트3 본문
0.
mushroom
이전 시간
: mushroom dataset 전처리와 시각화
: 식용 버섯 판단 DL 모델 구축을 위한 전처리 단계 => 결측치를 가진 stalk-root 열에 ML 모델 예측값을 밀어넣자.
1. stalk-root 채우기 용 ML모델
1-데이터 분할
; stalk-root 값이 채워진 학습용 데이터와 값이 ? 상태인 예측용 데이터를 분할
2-학습용 데이터로 다중 클래스 분류 ML 모델 만들기
1) y data(stalk-root열), x data(y data를 뺀 모든 열) 정비
2) encoding
과정 1- labelencoder ; str을 int로 변환
과정 2- onehotencoder : 열 추가 문제; ML 모델에서 y data는 onehotencoding이 의미가 없다.
3) 모델 적용
; 다중 클래스 분류 모델에 쓸 수 있는 모델들 : Logistic Regression(multi class argument on), SVC, KNN ... etc ...
acc 값이 모두 1? 일단 의심.
: 깔끔한 데이터는 그만큼 성능을 뽑아낼 수도 있다고 한다!
3-예측값 구하기 & 밀어넣기
문제1 onehotencoder
onehotencoder는 해당 열의 변수 숫자에 따라 새로운 열을 생성한다.
이에 따라 모델과 x data 차원에 차이가 생기며 적용이 불가능
해결방안 1- for문으로 디코딩까지 밀어넣는다? ㄴㄴ 결국 제자리걸음
해결방안 2- 기존 모델 재점검 : onehotencoding없이도 labelencoding만으로 충분히 성능을 뽑아낸다
=> encoding 걷어내기
문제2 들쭉날쭉 결과값
모든 모델이 acc값은 높지만, 뱉어내는 결과물이 다르다. 예를 들어 svm은 모두 한 클래스 값, logistic regression(multi class 분류 속성 부여시)은 세 클래스 값, knn은 네개 클래스 예측 값을 뱉었다.
의심1- 모델 적용의 문제? 데이터 정돈&기본 하이퍼파라미터 튜닝에도 같은 결과값. 모델을 손볼 필요는 없다고 판단
의심2- 학습 데이터 불충분? 충분한 학습 데이터-5000 ++
=> 일단, 값이 있는 학습용 데이터의 정답 비율과 근접한 값을 뽑아낸 모델을 선택
문제3 labelencoder
데이터가 달라지며 label 순서가 달라진다 => 원본 데이터로 돌아가 선 label 변환 후 데이터 분할
; label을 고치자 위의 들쭉날쭉한 결과값 문제도 어느 정도 고쳐졌다.
2. 전체 데이터를 위한 DL 모델
mushroom dataset
버섯의 모든 특징 열들을 기반(x데이터)으로 비독성(Edible)과 독성(Poisonal) 클래스(y데이터)를 뱉는 이진 분류 문제
데이터가 복잡하지 않았던 만큼 간단한 DL 모델 적용 : ML과 나눠서 진행한 팀원 분이 짜오셨다
놀라운 accuracy : 편차는 있지만 최고로 높은 성능을 가진 모델 값은 99.8%
-이토록 성능을 뽑아냈는데, 굳이 튜닝을 해야할까? 다른 모델을 적용한다던가, auto ML을 써보는 것이 의미가 있을까? => 됐습니다!
이진 분류를 위한 ML 모델들을 적용 ; 정형 데이터들에서는 ML 모델이 더 높은 효율을 보이기도 한다.
=> 여전히 뛰어난 성능. default값을 적용한 randomforest classifier는 1.0의 accuracy를 뽑아냈다.
추가작업 목록
tree 모델 기반 열 중요도(feature importance) 확인 ; gill color(버섯 머리 아래쪽 주름의 색깔?)이 가장 높은 연관성
tree 모델 시각화 ; tree 시각화를 위한 간단한 코드 적용 ; 하려 했으나 graphviz의 버전 문제로 끝내 적용에는 실패.. (내일 재도전 요망)
3. 모델 활용 문제
그럼, 이 버섯 예측을 어디에 써볼까?
방안 1 버섯 이미지 활용? 라벨링된 버섯 이미지 데이터가 존재하지 않는다.
;버섯인지 아닌지 구별하는 모델부터 시작해 버섯 특징을 구별해야 한다. 현재 수준 주어진 시간(3일)내에는 불가능.
방안2 데이터를 입력하면 버섯 독성을 판단하는 모델?
;구글링이 더 빠르고 의미 있다. 뿐만 아니라, 한 번의 실수로도 '나쁜 AI'가 될 수 있는 위험성.
방안3 어제 묵혀둔 후보군을 꺼낼 차례?
아직 프로젝트는 3일이 남았다. 이왕이면 회귀 분석으로다가.
'나는 코딩도 한다 > TIL' 카테고리의 다른 글
0129 / k_digital 37일차 / 세미프로젝트3 (3) | 2021.01.29 |
---|---|
0128 / k_digital 36일차 / 세미프로젝트3 (0) | 2021.01.28 |
0126 / k_digital 34일차 / 세미프로젝트3 (2) | 2021.01.26 |
0125 / k_digital 33일차 / 복습 (0) | 2021.01.25 |
0122 / k_digital 32일차 / 딥러닝 etc (0) | 2021.01.22 |