오늘은 EDA파트를 마무리 한 후 머신러닝 파트로 들어갔다.
머신러닝에 관한 기초적 이론과 개요를 설명 들은 이후
머신러닝 전체 플로우 실습을 시작했다.
수업 내용
- 모델 학습 절차 -> 인공지능 모델 학습 워크플로우 5단계 구성
- 베이스라인 구축 ( 전체 절차를 진행)
- 알고리즘 선택( 선정 )
- 지도 학습 -> 모델의 최종 결론
- 분류
- 회귀
- 비지도 학습 -> 전처리
- 군집
- 차원축소
- 준지도 학습 -> 전처리 + 모델 (생략)
- 강화학습
- 지도 학습 -> 모델의 최종 결론
- EDA및 피처 엔지니어링
- 학습
- predict
- 성능 평가
- 최적화 -> 에자일 방식
- 써드 파트 (AutoML, 자동 머신러닝)
- 모델 덤프
모델 학습 절차 -> 인공지능 모델 학습 워크플로우 (5단계)
베이스라인 구축 (전체 절차를 진행(프로토타입))
알고리즘 선택 (선정)
지도학습 -> 모델의 최종 결론
- 데이터에 정답(예측|판별 해서 찾고싶은 값)이 있다.

분류 (Classfication) -> 범주형 데이터로 결론 (카테고리) -> 판별모델
- 모델의 결론이 범주형 사람이다 바나나다 스팸메일이다 정상메일이다 한국어다 영어다 범주형중에서도 명목형 그리고 서열이 없다.
- 정확도 (암, 암 x ) -> 100%에 가까울수록
- 정답 : 범주형(명목형, 순서형, 수치형(이산형))
- 분류
- 이진분류 : 암/정상, 스팸/정상 => 이상탐지
- 다중분류 : MBTI 예측(16개), 2개 초과로 예측|판별
- 성능평가
- 정확도, 정밀도, 재현율, ROC, AUC, . . .
- 알고리즘
- 로지스틱회귀, KNN, 나이브베이즈, 결정트리, SVN , . . .=> 베이스 모델 (성능은 높지 않음)
- 앙상블 기법 (n개 모델을 결합)
- 보팅 -> 하드보팅(이긴 주,다수결), 소프트보팅(득표율,총 점수) 서로 다른 모델
- 베깅 -> 랜덤포레스트 (결정트리 n개, 같은 모델로 구성)
- 부스팅 -> XGBoost, LightGBM, CatBoost, . . .
- 딥러닝과 유사함을 가짐 => 성능이 높음
- 스태킹
- 메타 정보를 이용 -> 메타학습
- 1차 모델이 예측한 결과가 데이터가 됨
- 1차 모델, 2차 모델 존재
- 메타 정보를 이용 -> 메타학습
- 최종 엔딩
- AutoML을 통한 학습 -> 최종 모델 -> (앙상블 형태 | 블랜딩 기법(각 모델들 비중까지 포함됨))
회귀 (Regression) -> 수치형-연속형 (이산형은 범주형으로 갈수도 있음) 그래서 연속형 데이터로 결론 -> 예측모델
- 손실, 에러, 오차를 최소로 하는
- 목표
- 정답을 맞출수는 없고, 거의 근접하게 예측
- 정답-예측값 = 오차 => 최소화 하는것
- 오차값은 0에 가까울수록 좋음
- 알고리즘
- 로지스틱회귀, KNN, 나이브베이즈, 결정트리, SVM, 선형회귀, Lasso, Ridge, 엘라스틱넷 , . . .=> 베이스 모델 (성능은 높지 않음)
- 결론 => 앙상블 기법 -> AutoML을 통해서 최종 모델 획득
비지도학습 -> 전처리
- 데이터에 정답 (종속변수, classm label)이 없다면
군집
- 알고리즘 -> 학습 -> 데이터에 대한 그룹(라벨링, 군집) 생성
- KMean : 거리 기반
- Mean-Shift : 밀도 기반
- GMM : 확률 기반
- DBSCAN : 기하학 분포 + 밀도 기반
- . . .
차원축소
- 컬럼이 너무 많다 -> 줄이자 (차원축소) -> 압축 -> 차원이 축소됨
- 알고리즘
- PCA(주성분 분석) : 내재된 경향성 추출
- LDA, SVD, NMF : 자연어쪽에서 사용, 성분 분리, . . .
- 알고리즘
준지도학습 -> 전처리 + 모델 (생략)
- 데이터중 일부는 정답이 존재(지도학습) + 일부는 정답이 없다 (비지도학습)
강화학습
- 이벤트
- 2015(2016?) 알파고 바둑대전
- 특징
- 데이터 x (없어도 가능함)
- 게임의 룰 필요(유한 게임:바둑, 장기, 체스, 스타크래프트, . . .)
- 구성
- 에이전트 -> 학습의 대상
- 미로게임에서 주인공 (일반적으로 마우스), 무인도에서 탈출|생존하려는 조난자
- 바둑기사, 게임 플레이어
- 게임판 (게임이 구동되는 환경)
- 정책 (게임의 룰)
- 행동 (액션)
- 보상(행동을 강화-> 이득을 위한, 리워드) -> 보상을 많이 받는 방향으로 행동 강화 -> 똑똑해짐.
- 에이전트 -> 학습의 대상
- 학습전략
- 에이전트는 행동을 잘 하도록 (보상을 많이 받게) 강화됨
EDA 및 피처 엔지니어링
- 데이터 준비- 머신러닝에 적합한 구조
- 모델의 성능을 높이기 위해
- 개인의 능력치를 확인하는 분야
- 데이터 처리 (전처리, 가공, 재구성, 생성, . . .)
- EDA
- 시각화 -> 데이터 전처리에 대한 목표, 대상, 방식, 처리 등등 포착, 검증 등 진행
- 피처 엔지니어링(특성 공학)
- 통계상 등장하는 (정규)분포 처리
- 정규분포 (표준편차 1, 평균 0로 하는 데이터 분포를 가진 데이터를 대표하는 형태)
- 통계 : 균등, 이항, 푸아송, 음이항, 지수 확률분포 등등, . . .
- 데이터가 특정 분포를 따른다 => 예측 가능하다 -> 머신러닝 모델의 성능이 향상된다.
- 데이터 전체 조정 -> 스케일링
- 데이터 전체를 0 ~ 1 사이로 변환 처리(예시)
- 비율로 나눠서 데이터 비교하려고 바 차트에서 했던거(오렌지색,파란색)
- StandardScaler => 모든 데이터를 정규분포를 따르도록 조정 (스케일링)
- MinMaxScaler => 최소값 0 , 최대값 1 나머지는 이 범위에 맞춰 조절 => 0 부터 1 사이에 모두 값이 존재하게 됨,
- 정답
- 로그 변환,...
- 데이터 전체를 0 ~ 1 사이로 변환 처리(예시)
- 전처리
- 피처(특성,컬럼) 제거(혹은 선택)
- 중요 피처
- 결측치 처리
- 이상치 처리(outlier)
- 피처 생성(파생 변수)
- 피처(특성,컬럼) 제거(혹은 선택)
- 데이터 최종 형태
- 학습용
- 모델 성능을 향상시키기 위한 용도
- 검증용
- 학습중 모델의 과적합 방지 용도
- 테스트용
- 모델 성능 검증용
- 총 3가지 형태
- 학습용
- 데이터 분할 비율 (권장, 절대값은 아님)
- 학습 : 테스트 = 75:25
- 학습 : 검증 : 테스트 = 50:25:25
- 75비율에서 세트를 3, 5, 7 등등 조절
- 검증은 1/3, 1/5, 1/7 등등 조정
- 75비율에서 세트를 3, 5, 7 등등 조절
- 데이터가 충분히 많을때 적용 => 비율 언제든 조정 가능함.
학습
- 특징
- 학스 데이터가 많으면, 피쳐(특성)가 많아도 시간 오래걸림
- 자연어 데이터가 가장 오래 걸림
- 기본 학습
- 모델 학습 : 훈련 데이터
- 모델 성능 평가용 : 테스트 데이터
- 모델 검증/과적합/과소적합/ : 검증 데이터
- 교차 검증 방식 학습 -> 폴드 (K-Fold)
- 폴드
- K-Fold
- 정답의 종류별 분포가 균등할때
- 정답 1일 50%, 정답 2가 50%
- 층화 K-Fold
- 정답의 종류별 분포가 불균등할때
- 정답 1일 70%, 정답 2가 30%
- 데이터를 학습용, 검증용, 훈련용 등 분할할때 항상 7:3을 비율유지하도록 분할하는 기법을 적용
- K-Fold
- 폴드
- 교차 검증 방식 학습 -> 폴드 (K-Fold)
predict
- 모델이 수행하는 업무
- 분류 => 판별
- 회귀 => 예측
- 군집 => 라벨링 결론 => 새로운 피처 모델이 수행하는 업무
- 분류 => 판별
- 회귀 => 예측
- 군집 => 라벨링 결론 => 새로운 피처
- 분류 => 판별
- 차원축소 => 피쳐 축소, 새로운 피쳐 생성
성능평가
- 지도 학습
- 분류 -> 정답이 범주형, 수치형 -> 이산형
- 혼동행렬(오차행렬)을 이용
- 정확도, 정밀도, 재현률, f1-score
- ROC, AUC
- 대표적 표현 : 정확도가 100%에 가까울수록 좋은 모델이다.
- 혼동행렬(오차행렬)을 이용
- 회귀 -> 정답이 수치형 -> 연속형
- 손실함수(오차값)
- 오차 = 손실 = 정답<-> 예측
- RMSE, MSE, MSLE, . . . 함수 제공함
- 손실함수(오차값)
- 분류 -> 정답이 범주형, 수치형 -> 이산형
- 군집
- 입실론계수
최적화 -> 에자일 방식(다시 알고리즘부터 재검토)
- 하이퍼 파라미터 튜닝
- 하이퍼 파라미터는 모델성능에 큰 영향을 미치는 파라미터임
- 튜닝 : 미세조정 -> 학습 -> 예측 -> 평가 -> 미세조정 -> . . . -> 목표치 도달(평가값) -> 종료
- 도구
- 그리드 서치 -> 모든 조합으로 테스트
- 랜덤 서치 -> 조합을 랜덤으로 테스트
- 베이지안 최적화 -> 초기는 랜덤으로, 이후는 미세조정으로 -> 시간 많이 소요됨
- 파이프라인
- 데이터 수집 - 전처리 - 학습 - 예측 - 평가
- 제품화 : 전처리 - 학습 - 예측 - 평가 - 최적화
- AutoML
써드파트 (AutoML, 자동머신러닝)
- 복잡한 과정(공정)은 자동화 처리
- 데이터, 세팅값 입력 => 학습 => 모델 결론 제공받음
라이브러리특징지원 모델기타 특징
| PyCaret | 간편한 API와 자동화된 머신러닝 워크플로우 제공 | 회귀, 분류, 클러스터링, 이상 탐지, 시계열 분석 등 | 자동 하이퍼파라미터 튜닝, 모델 해석 기능 제공, 다양한 데이터 전처리 기능 |
| H2O.ai (H2O AutoML) | 분산 처리와 빠른 모델 학습, 다양한 알고리즘 지원 | 랜덤 포레스트, XGBoost, 딥러닝, GLM, 스탠다드 ML 모델 등 | 분산 학습, 고급 모델 해석 제공, 대규모 데이터 처리에 적합 |
| TPOT | 유전 알고리즘을 활용한 모델 최적화 | Scikit-learn 모델 (랜덤 포레스트, SVM 등) | 유전 알고리즘을 통한 자동 모델 탐색, 하이퍼파라미터 튜닝 |
| Auto-sklearn | Scikit-learn을 기반으로 한 AutoML, 하이퍼파라미터 튜닝과 모델 선택 자동화 | Scikit-learn 모델 (랜덤 포레스트, SVM 등) | 베이지안 최적화 알고리즘 기반의 튜닝, 앙상블 모델 자동 생성 |
| Google Cloud AutoML | 클라우드 기반의 AutoML, 다양한 데이터 타입 지원 | 이미지, 텍스트, 비디오, 테이블 데이터 관련 모델 | 클라우드 환경에서 모델 학습 및 배포, 직관적인 UI 제공 |
| MLJar | 간단한 사용법과 자동화된 머신러닝 워크플로우 제공 | 회귀, 분류 모델, 트리 기반 모델 등 | 웹 기반 결과 분석, 모델 배포 및 공유 용이 |
| Autogluon | 딥러닝과 전통적인 머신러닝 모델 지원, 다양한 데이터 타입 지원 | 이미지, 텍스트, 테이블 데이터 관련 | 효율적인 하이퍼파라미터 튜닝, 자동화된 데이터 전처리 및 모델 학습 |
| FastAI | 딥러닝에 특화된 AutoML, 빠르고 효율적인 모델 학습 지원 | CNN, RNN, 텍스트 분석 등 딥러닝 모델 | PyTorch 기반, 학습 속도 빠르고 복잡한 튜닝을 간소화 |
- 용도별 선택
- 딥러닝에 집중하려면 FastAI나 Autogluon
- 분산 환경에서 빠르게 모델을 학습하고 싶다면 H2O.ai
- 간편한 사용을 원한다면 PyCaret
모델 덤프
- 모델 저장
- 파일
- AWS s3 업로드
- 모델 관리
- MLOps 기반 모델의 생애주기 관리, 트레킹, 로깅, API(엔드투엔드)
- 모델 서빙 -> API 구축 -> 서비스를 제공
- MLflow등 제품 준비되어있음
연구 목표 수립
- 요구사항 분석
- 파파고, 구글, 카카오번역 등에서 제공되는 언어감지 기능을 제공하는 모델 생성
- 언어감지는 오직 알파벳 문자를 사용하는 국가만 처리
- 모델은 머신러닝 기법 사용
- 미국, 프랑스, 인도네시아, 타갈리아 요구사항 분석
- 파파고, 구글, 카카오번역 등에서 제공되는 언어감지 기능을 제공하는 모델 생성
- 언어감지는 오직 알파벳 문자를 사용하는 국가만 처리
- 미국, 프랑스, 인도네시아, 타갈리아
- 모델은 머신러닝 기법 사용
- 언어감지는 오직 알파벳 문자를 사용하는 국가만 처리
- 파파고, 구글, 카카오번역 등에서 제공되는 언어감지 기능을 제공하는 모델 생성
- 미국, 프랑스, 인도네시아, 타갈리아 요구사항 분석
- 배경 논문
- XX 논문 참고
- A - Z 까지 알파벳 문자를 사용하는 국가의 문자의 사용 빈도는 국가별로 상이하다.
- 해당 빈도는 사람의 인지능력으로는 구분 X (어렵다) AI를 이용하여 학습 후 해결
- 데이터 분석을 통해서 인사이트 도출
- XX 논문 참고
- 방법
- 공통의 내용을 각국 언어로 표현한 문서 필요
- 성경, 소설, 윈도우 설명서, . . . -> 텍스트가 필요함
- 텍스트 => 알파벳 추출 (나머지 문자는 노이즈) => 빈도 계산( ord() )
- 데이터
- 컨셉상 소량 제공 (학습시간 짧음, 과대적합 가능성 높음)
- 모델에 대한 신뢰성 저하 (감안하고 진행)
- 정확도 무시
- 지도학습 - 분류 (다중분류) 답이 4개(영어,프랑스,인도네시아,타갈리아)
- 형태
- 말뭉치 (코퍼스) 제공 -> 정제 -> 빈도 추
- ( ? , 26 + 1 )
- 26개의 피처(특성,컬럼)
- 문자 a의 빈도, b의 빈도, c의 빈도,,,z의 빈도
- 독립변수
- 1개의 라벨(정답, 클래스)
- 4개의 값을 가지고 있음(종류가 4개)
- 'en', 'fr' , 'id' , 'tl' 영어,프랑스,인도,타갈리아
- 종속변수
- 26개의 피처(특성,컬럼)
- 공통의 내용을 각국 언어로 표현한 문서 필요
- 모델
- 판별모델
- 이 말뭉치는 영어 | 프랑스어 | 인도네시아어 | 타갈리아어(필리핀) 이다.
- 정확도 x% (AI> 머신러닝 > 지도학습 > (다중) 분류)
- 판별모델
-
데이터 수집
- level 1
- 데이터 제공
- '/content/drive/MyDrive/GoodNotes/t아카데미/7. data_analysis_ml_dl_llm/lang'
- level 1


데이터 준비/전처리
- 목표
- 말뭉치 -> .... -> ( n , 26(독립 변수,부동소수) + 1(종속 변수,문자열))
- 말뭉치 -> 노이즈 제거(알파벳 제외한 모든 문자), 정규식 활용 -> 소문자 변환 -> 빈도 계산 -> 0 ~ 1 사이로 빈도를 정규화처리 (피쳐 스케일링) -> ( n , 26 + 1) : ndarray or DataFrame or 2차원 리스트, (n , 1)

정답 (라벨, 종속변수) 데이터 획득

여기서 말하는 정답은 진짜 정답이 아니라 정답형 데이터를 획득한다는 뜻이다.
현재 네 나라의 언어로 번역하기로 했으므로 각 데이터의 나라코드를 출력하는 함수를 만들었다.
특성 (피처, 독립변수) 데이터획득
import re # 정규식용 라이브러리
from string import ascii_lowercase
def get_feature(file):
'''
parameter
- file : 특정 말뭉치(코퍼스) 1개의 파일 풀 경로
'''
print(file)
# 0. 정규식 패턴 정의
# [] : 문자 클래스, 문자 1개를 표현
# a-z : 소문자 a,b,c,,,z 를 표현
# ['a-z'] : 소문자중 1개만 등장
# [^'문자열'] : 해당 문자를 제외한 모든 문자가 1개 올 수 있다. => 노이즈
# [^'a-z'] : 소문자를 제외한 모든 문자 중 1개만 올 수 있다.
# * : 0 ~ : 무한대로 반복해서 문자가 등장할 수 있다.
# [^'a-z']* : 소문자를 제외한 모든 문자들이 0 ~ 무한대로 등장할 수 있다.
pattern = re.compile('[^a-z]*')
# 0-1. 고정값 상수 정의
A_ASCII = ord('a')
# 1. 파일 오픈 -> 읽기
with open( file ) as f:
data = f.read().lower() # 2. 소문자 처리
# 3. 정규식 노이즈 제거
data = pattern.sub('',data) # 원 데이터에서 패턴에 잡히는 모든 문자를 ''로 대체처리
print(data)
# 4. a-z까지 총 26개의 문자의 빈도를 담을 그릇 준비, 초기값 0
counts = [0] * len(ascii_lowercase) # = 26
print(counts)
# 5. data에서 문자 1개씩 추출하여 문자가 발견되면 count +1
# z-a , b-a => 해당 문자의 빈도를 담을 위치를 계산 0번방 a 1번방 b
for ch in data:
counts[ ord(ch) - A_ASCII ] += 1
print(counts)
# 6. 최소값과 최대값 사이의 거리 혹은 데이터 분포상 분산(혹은 표준편차)단위등이 큰 격차를 가졌다면
# => 스케일링 필요 -> 예측 정확도에 도움이 됨 -> 0 ~ 1
# 개별빈도 / 전체 빈도
전체빈도 = len(data)
counts_norm = [ 개별빈도 / 전체빈도 for 개별빈도 in counts ] # [ 0.xx, 0.xx, 0.xx, , ,]
print(counts_norm)
pass
get_feature(train_files[3])
넘 길어서 코드블럭으로 가져왔다.
결과값
/content/drive/MyDrive/GoodNotes/t아카데미/7. data_analysis_ml_dl_llm/lang/train/id-12.txt
hierarkiklasifikasibiologimakhlukhidupspesiesataujenisadalahsuatutaksonyangdipakaidalamtaksonomiuntukmenunjukpadasatuataubeberapakelompokindividupopulasiyangserupadandapatsalingmembuahisatusamalaindidalamkelompoknyasalingmembagigennamuntidakdapatdengananggotakelompokyanglainanggotaanggotadalamsuatuspesiesjikasalingberkawindapatmenghasilkanketurunanyangfertiltanpahambatanreproduktifdapatterjadisejumlahkelompokdalamsuatuspesiestidaksalingberkawinkarenahambatangeografisnamunbiladipertemukandandikawinkandapatmenghasilkanketurunanfertilduaspesiesyangberbedajikasalingberkawinakanmenghadapimasalahhambatanbiologisapabilamenghasilkanketurunanyangsehatketurunaninibiasanyasterilmanduldefinisiinipadabeberapakasustidakdipenuhisehinggamunculmasalahspesiesdalamkasuskasustersebutukuranyangseringdigunakanuntukmenentukanspesiesberbedabedasepertikesamaandnamorfologiataurelungekologilebihjauhlagimunculnyaciricirikhastertentudapatmembagispesiesmenjaditaksonyanglebihkecilsepertiupaspesiesdalambotanidisebutjugavarietassubvarietasdanformaespesiesspesiesyangdihipotesiskanmemilikinenekmoyangyangsamaberdasarkankesamaankesamaanditempatkandalamsatugenuskesamaanspesiesdinilaiberdasarkanperbandinganatributfisikdanjikatersediasekuensdnamerekasemuaspesiesdiberikannamadalamduabagianyangdisebutnamabinomialatauhanyabinomialbagianpertamadaribinomialadalahnamagenerikyaitugenusdarispesiestersebutbagiankeduaadalahyangdisebutnamaspesifikistilahyangdigunakanhanyadalamzoologiatauepitetspesifikistilahyangdigunakandalambotaniyangjugadapatdigunakandalamzoologimisalnyaboapembelitadalahsalahsatudariempatspesiesdarigenusboanamagenusdimulaidenganhurufkapitalsedangkanepitetspesifiktidakbinomialditulisdalamhurufmiringsaatdicetakdandigarisbawahiketikaditulistanganspesiesjikadisebutdalamnamailmiahdisingkatdenganspcontohphalaenopsisspberartisejenisphalaenopsisjikajamakdisingkatdengansppdefinisiyangdapatdigunakandarikataspesiesdanmetodemetodeyangandaluntukmengidentifikasispesiesspesiestertentupentinguntukmenyatakandanmengujiteoriteoribiologisertamengukurkeanekaragamanhayatimeskipuntingkattingkattaksonomilainsepertifamiliasukujugadapatdipertimbangkandalamstudiberskalalebihluasspesiesspesiesyangtelahpunahhanyadiketahuidarifosilfosilnyayangbiasanyasulituntukmenentukantingkatantaksonominyasecarapastisehinggatingkattaksonomiyanglebihtinggisepertifamiliaseringdignakanuntukstudistudiberbasisfosilpadataksonomihewanterdapatsatutingkattaksondibawahspesiessubspesiesdisingkatsspnamunbiasanyatidakditulispadanamailmiahhewanpadataksonomitumbuhanfungidanbakteriterdapattaksonlaindibawahsubspesiesvarietassubvarietasdanformajumlahtotalspesiesnonbakterildannonarkealdiduniadiestimasikanjutadengankisaranestimasisebelumnyadariduahinggaseratusjutadaftarisisejarahdanpengembangankonseplihatpulareferensipranalaluarsejarahdanpengembangankonsepsuntingsuntingsumberjohnraycarllinnaeusyakinpadapenetapanspesiespadakaryakaryasainspalingawalspesiessecarasederhanaadalahsuatuorganismeindividualyangmerepresentasikansekelompokorganismeyangserupaataumendekatiidentiktidakadahubunganlaindiluarkelompokituyangtersirataristotelesmenggunakankatagenusdanspesiesuntukkategorikategoriumumdanspesifikaristotelesdanilmuwanilmuwanlainmemilihspesiessebagaipembedadanbersifattetaptidakberubahdenganesensisepertiunsurkimiasaatparapenelitipenelitiawalmulaimengembangkansistemorganisasimakhlukhidupmerekamulaimenempatkanspesiesspesiesyangsebelumnyatelahdiisolasikedalamsebuahkonteksbanyakskemagambaranawalinidianggapanehdanskemainimenyertakanhubungankekerabatanberdasarkanwarnasemuatanamandenganbungakuningatauperilakuularkalajengkingdansemuttertentuyangmenyengatjohnrayseorangnaturalisinggrisadalahilmuwanpertamayangmemberikandefinisibiologisistilahspesiessebagaiberikuttidakadakriteriayanglebihpastidalammenentukanspesiesbagisayaselainpenampilanfiturkhususyangmembedakanmerekasetelahtumbuhkembangdarisumberbenihketurunansehinggatidakmasalahvariasivariasiapapunyangterjadipadaindividuindividuatauspesiesspesiestersebutapabilamerekatumbuhkembangdarisumberbenihketurunanyangsamavariasivariasitersebutadalahvariasivariasitersasuldanbukankarenavariasiitudilakukanpembedaanspesiesdemikianpuladenganhewanhewanhewanyangberbedasecaraspesifiksecarapermanenmembedakanspesiesmerekasatuspesiestidakpernahtumbuhkembangdaribenihketurunanspesieslainatausebaliknyapadaabadkeilmuwanswediacarllinnaeusmengklasifikasikanorganismseberdasarkankarakteristikkarakteristikfisikbersamadantidakhanyasesederhanaberdasarkanperbedaanperbedaaniajugamemunculkanidehirarkitaksonomihierarchyklasifikasiberdasarkankarakteristikkarakteristikyangdapatdiamatidandimaksudkanuntukmencerminkanhubunganyangalaminikolaiivanovichvavilovmengembangkankonsepmengenaispesieslinnaeussebagaisistemdefinitifnivavilovmenunjukkantidakadanyaspesiesmonotipeyaituspesiesyangdiwujudkandalamberbagaibentukvavilovmemformulasikansebuahkonsepspesiespolitipepadakongresbotaniinternasionalkedicambridgepadaagustusmengedepankanideideberbagaibentukspesiesrelativitaskriteriataksonomidanteoriakumulasiperiferalkarakterresesifdarisudutpandangevolusitersebutiamenganggapspesiessebagaisimpulsimpuldalamrantaievolusivavilovmencobamenemukandefinisiaforismedarihaltersebutmenurutahlibotaniyangkemudianjugaterkenalvlkomarovspesiesadalahsuatusistemmorfologisditambahdengankeunikangeografismengelaborasihalinivavilovmendefinisikanspesieslinnaeussebagaisebuahsistemmorffisiologisdinamiskompleksterisolasiyangterikatpadaasalnyapadalingkungandanwilayahtertentuhalinimengarahpadapemahamankonsepspesieslinnaeussebagaientitasyangtidakterpisahkanterdiriataskomponenkomponenyaitusatukesatuandanbagianbagianyangtergabungyangsalingterkaiteratlihatpulasuntingsuntingsumberspesiesterancamkoinofiliaspesiescincinspesiasisistematikareferensisuntingsuntingsumberabsahneysbentonmjferrypalinksbetweenglobaltaxonomicdiversityecologicaldiversityandtheexpansionofvertebratesonlandbiologylettersdoirsblpmcpmidsahneysandbentonmjrecoveryfromthemostprofoundmassextinctionofalltimepdfproceedingsoftheroyalsocietybiologicaldoirspbpmcpmidmoractittensorderekpadlsinasimpsonalastairgbwormborisetalmacegeorginamedhowmanyspeciesarethereonearthandintheoceanplosbiologyedoijournalpbiopmcpmidgoldenbergsuzanneplanetearthishometomillionspeciesscientistsestimatetheguardianlondondiarsipkandariversiaslitanggaldiaksestanggaljusthowmanyspeciesarethereanywaysciencedailydiarsipkandariversiaslitanggaldiaksestanggalhistoriaplantarumgeneralisdalamvolumediterbitkanpadatomeilibrichapxxhlmdikutipdalammayrernstthegrowthofbiologicalthoughtdiversityevolutionandinheritancecambridgemassbelknappressdavisphheywoodvhprinciplesofangiospermtaxonomyhuntingtonnewyorkrobertekriegerpublishingcompanyprevealjameslpringlejamesstaxonomicbotanyandfloristicsfloraofnorthamericanewyorkandoxfordoxforduniversitypressppisbnsimpsongeorgegaylordprinciplesofanimaltaxonomynewyorkandlondoncolumbiauniversitypressppvavilovnithelinneanspeciesasasystemfifthinternationalbotanicalcongresscambridgeaugustreportofproceedingscambridgeuniversitypressppkurlovichboguslavswhatisaspeciesbiodiversityoflupinsdalambahasainggrisdiaksestanggalcsmaintunrecognizedlanguagelinkpranalaluarsuntingsuntingsumberlihatinformasimengenaispesiesdiwiktionarywikispeciesmempunyaiinformasimengenaispecieswikimediacommonsmemilikigalerimengenaispeciesspeciesjurnalpembuatankodebatangspesiescatalogueoflifenamaspesieseropadalamlinnaeusbahasaceskainggrisjermandanperancisspesiasientrifilosofidarispesiespadaensiklopediastanfordvisualtaxawikispeciesdirektorispesiesbebasyangdapatdieditsiapapundariwikimediafoundationartikelbertopikbiologiiniadalahsebuahrintisanandadapatmembantuwikipediadenganmengembangkannyalbsklasifikasiilmiahmagnordoseksizoodomainsuperkerajaansuperfilumsuperdivisisuperkelassuperordosuperfamiliasupertribuskerajaanfilumdivisikelaslegionordofamiliatribusgenusspesiesupakerajaanupafilumupakelaskohortupaordoupafamiliaupatribusupagenusupaspesiesinfrakerajaancabanginfrafiluminfrakelasinfraordoseksibotvarietasmikrofilumparvkelasparvordoseriforma
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1171, 196, 73, 313, 741, 88, 269, 147, 796, 42, 301, 295, 305, 672, 282, 276, 0, 370, 646, 403, 322, 64, 40, 11, 108, 5]
[0.1475554435483871, 0.02469758064516129, 0.00919858870967742, 0.03944052419354839, 0.09337197580645161, 0.011088709677419355, 0.03389616935483871, 0.01852318548387097, 0.1003024193548387, 0.005292338709677419, 0.037928427419354836, 0.03717237903225806, 0.03843245967741935, 0.0846774193548387, 0.03553427419354839, 0.03477822580645161, 0.0, 0.04662298387096774, 0.08140120967741936, 0.05078125, 0.04057459677419355, 0.008064516129032258, 0.005040322580645161, 0.0013860887096774194, 0.013608870967741936, 0.0006300403225806451]
리뷰시간의 과제는 train과 test의 피처 데이터를 구성하는 함수를 가져오는것이다.

오늘의 수업은 여기까지.
리뷰랑 과제가 많다.