인공지능
: 사고나 학습 등 인간이 가진 지적능력을 컴퓨터를 통해 구현하는 기술
머신러닝
: 컴퓨터가 스스로 학습하여 인공지능의 성능을 향상 시키는 기술 방법
딥러닝
: 인간의 뉴런과 비슷한 인공신경망 방식으로 정보를 처리
영역 크기
인공지능 > 머신러닝 > 딥러닝
데이터를 기반으로 학습을 시켜서 예측하게 만드는 기법
인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야
통계학, 데이터 마이닝, 컴퓨터 과학이 어우러진 분야
Rule-based expert system(규칙 기반 전문가 시스템)
: if문과 else문으로 하드 코딩된 명령을 사용하는 시스템
요즘의 머신러닝

실습
비만도 데이터를 이용해 학습 해보자

scikit-elarn을 사용
KNN 라이브러리 사용
학습 순서
모델정의
```python
from sklearn.neighbors import KNeighborsClassifier # KNN클래스
bmi_model = KNeighborsClassifier(n_neighbors=5) #가장 가까운 이웃 수
```
학습
```python
#현재 작업 경로 표시
!pwd #!를 쓰면 프롬프트 창(시스템 명령어) 사용할 수 있다.
# 현재 폴더 내부 상황
!ls
#작업경로 변경
%cd ./drive/MyDrive/Colab\ Notebooks/22.04.11\ 머신러닝
``` #1. 판다스 import
import pandas as pd
#2. csv파일 로딩
bmi_data = pd.read_csv('./data/bmi_lbs.csv', encoding='euc-kr')
#3. 위쪽 5개 살펴보기
bmi_data.head()

비만도 컬럼의 종류를 확인해보자.
bmi_data['Label'].unique()
bmi_data['Label'].value_counts()

단위 변경하기
# 몸무게를 파운드 -> kg단위로 변경
bmi_data['Weight(kg)'] = bmi_data['Weight(lbs)']*0.453592
상위 데이터 출력
bmi_data.head()
기술 통계확인(describe()함수 사용)
bmi_data.describe()

문제와 정답 분리하기
X = bmi_data[['Height','Weight(kg)']]
y = bmi_data['Label']
X_sample = bmi_data.iloc[[80,105,275,300,345],[2,4]]
y_sample = bmi_data.iloc[[80,105,275,300,345],0]pre = bmi_model.predict(X_sample)#정확도(전체 중에서 정확히 맞춘 비율 계산)
from sklearn.metrics import accuracy_score
#실제 정답, 모델의 예측값, 0.0(하나도 못맞췄을 경우) ~ 1.0(다 맞췄을 경우)
score = accuracy_score(y_sample, pre) 훈련용, 평가용 데이터 분리
from sklearn.model_selection import train_test_split
#기본적으로 75:25 비율, test_size를 통해 비율 조절 가능, random_state - 고정된 데이터로
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=219)
훈련용, 평가용으로 정의부터 평가하기
bmi_model2 = KNeighborsClassifier()
bmi_model2.fit(X_train,y_train)
pre2 = bmi_model2.predict(X_test)
score2 = accuracy_score(y_test,pre2)
score2
출력화면

모델 활용하기
bmi_model2.predict([[178,74],[188,65]])
잘 보고갑니다