이미지까지 확인하려면 notion을 참고하자.
링크 : https://www.notion.so/bmo29/1-chp-1-6fe62c77bdb2486fad0bdfb45c6ad3db
T
E
: 훈련 데이터P
: 정확도 (accuracy)새로운 규칙을 영원히 추가하는 방식과 달리 머신러닝 기반으로 소프트웨어를 구현하면 자동으로 인식하고 별도의 작업을 하지 않아도 자동으로 분류한다.
머신러닝이 유용한 분야는 전통적인 방식으로 해결하기 어렵거나 알려진 알고리즘이 없는 문제이다. 예를 들면 음성인식 (speech recognization).
데이터 마이닝 (data mining) : 머신러닝 기술을 적용해서 대용량의 데이터를 분석하면 겉으로 보이지 않던 패턴을 발견할 수 있다.
학습하는 동안의 감독 형태나 정보량에 따른 분류
지도 학습
(supervised learning) → 정답이 있는 경우
분류
(classification) : like 스팸 필터회귀
(regression) : 예측 변수 (predictor variable)라 불리는 특성 (feature)을 사용해 결괏값인 target 수치를 예측하는 것.비지도 학습
(unsupervised learning) → 정답이 없는 경우
군집
(clustering)시각화와 차원 축소
(visualization and dimensionality reduction) : 특성 추출
(feature extraction)연관 규칙 학습
(association rule learing)준지도 학습
(semisupervised learning) → 정답이 일부만 있음
강화 학습
(reinforcement learnig) → 행동의 보상으로 보정
정책
(policy)이라고 부르는 최상의 전략을 스스로 학습한다. 정책은 주어진 상황에서 에이전트가 어떤 행동을 선택해야 할지 정의한다.머신러닝 시스템을 분류하는데 사용하는 다른 기준은 입력 데이터의 스트림부터 점진적으로 학습할 수 있는지의 여부이다.
배치 학습
(batch learning)
오프라인 학습
(offline learning)이다.온라인 학습
(online learning)
학습률
(learning rate) : 변화하는 데이터에 얼마나 빠르게 적응할 것인지 결정한다. 높으면 빠르게 적용하지만 이전 데이터를 금방 잊어버리고 낮으면 시스템의 관성이 더 커져서 더 느리게 학습한다. 하지만 새로운 데이터에 있는 잡음이나 대표성 없는 데이터 포인터에는 덜 민감해진다.머신러닝은 어떻게 일반화 (generalization)되는가에 따라 분류할 수 있다.
사례 기반 학습
(instance-based learning) → 단순히 기억하는 것모델 기반 학습
(model-based learning) → 모델을 만들어 예측하는 것호용 함수
(utility func) (또는 적합도 함수
(fitness func))를 정의하거나 얼마나 나쁜지 측정하는 비용 함수
(cost func)# 예제 코드
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import sklearn.linear_model
# 데이터 적재
#datapath는 위에서 정의함. thousand 단위에',' 추가한다는 설정까지
oecd_bli = pd.read_csv(datapath + "oecd_bli_2015.csv", thousands=',')
gdp_per_capita = pd.read_csv(datapath + "gdp_per_capita.csv",thousands=',',
delimiter='\t', encoding='latin1', na_values="n/a")
# 데이터 준비
country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)
X = np.c_[country_stats["GDP per capita"]]
y = np.c_[country_stats["Life satisfaction"]]
# 데이터 시각화
country_stats.plot(kind='scatter', x="GDP per capita", y='Life satisfaction')
plt.show()
# 선형 모델 선택
model = sklearn.linear_model.LinearRegression()
# 모델 훈련
model.fit(X, y)
# 키프로스에 대한 예측
X_new = [[22587]] # 키프로스 1인당 GDP
print(model.predict(X_new)) # 출력 [[ 5.96242338]]
홀드아웃 검증
(holdout validation) : 테스트 세트에 적합하게 최적화되었기 때문에 일반화가 잘 작동하지 않는 문제를 해결할 수 있는 방법.교차 검증
(cross-validation)