본문 바로가기
728x90

전체 글279

[ML] 머신러닝 모델(결정 트리 학습, K-근접 이웃) - 결정 트리 학습(Decision tree) 결과에 대한 설명이 중요할 때 사용 훈련 데이터에 있는 변수, 즉 특성을 기반으로 새로운 샘플의 클래스 레이블을 추정할 수 있도록 일련의 질문 학습 범주형 변수, 실수형 변수 트리의 루트(root)에서부터 시작해 정보 이득(Information Gain, IG)이란 값이 최대가 되는 특성으로 데이터를 나눔 위의 과정을 리프 노드(leaf node)가 순수해질 때까지(불순도가 0에 수렴할 때 까지, 하나의 클래스만을 가진 노드가 될 때까지) 모든 자식 노드에서 분할 작업 반복 분할 작업을 계속 반복하여 깊은 트리가 만들어지는데, 이는 과적합 우려 → 트리 최대의 깊이 제한(트리 가지치기 - pruning) 목적함수의 목적 : 가장 정보가 풍부한 특성으로 노드를.. 2021. 5. 11.
[ML] 머신러닝 모델(퍼셉트론, 로지스틱 회귀, 서포트 벡터 머신) - 퍼셉트론(Perceptron) 여러 개의 입력을 받아 각각의 값에 가중치를 곱한 후, 모두 더한 것이 출력되는 모델 신경망이나 딥러닝의 뿌리가 되는 모델 선형 분리 불가능 문제에는 수렴하지 못함 - 로지스틱 회귀 : 분류를 확률로 생각하는 방식 퍼셉트론의 간단함은 유지된 채, 선형 분리 불가능한 문제에서도 적용 가능 어느 클래스에 분류 되는 지 구하는것 이를 구하기 위해 함수가 필요 → 로지스틱 시그모이드 함수(S자 모양) 시그모이드 함수 모양을 파이썬으로 구현 import matplotlib.pyplot as plt import numpy as np # 시그모이드 함수 정의 def sigmoid(z) : return 1.0 / (1.0 + np.exp(-z)) # exp : numpy의 지수함수 z.. 2021. 5. 11.
[ML] 경사하강법 - 편미분 - 2개의 매개변수를 가지고 있는 경우라면, 미분이 아니라 편미분을 활용해야함 - 머신러닝에 나오는 최적화 문제에는 매개변수의 개수만큼 변수가 있으므로 목적함수가 다변수 함수의 형태로 등장 - 매개변수가 여러 개라면, 각각의 매개변수마다 기울기와 움직임이 다름 따라서 다변수 함수를 미분할 때는 미분할 변수에만 주목하고 다른 변수는 모두 상수로 취급해서 계산하는 편미분 사용 - 합성함수의 미분 합성함수 : 여러 개의 함수가 조합된 것 f(g(x))의 미분 - 갱신식을 위한 목적함수의 매개변수 편미분 과정 이와 같은 방식으로 다항식의 차수를 늘린 함수를 사용하는 것을 다항식 회귀라고 함 이를 일반화하여 표기하면 - 이러한 방식의 경사하강법은 모든 학습 데이터의 개수만큼 반복해야함 → 시간과 컴퓨팅 파워가 많.. 2021. 5. 10.
[ML] 경사하강법- 미분 - 머신러닝을 적용하는 방법 : 쉽게 말해 함수를 만드는 것 그래프의 각각의 점을 지나는 함수의 모양을 알게 되면 광고비를 통해 페이지 노출 횟수를 알 수 있음 하지만 노출 횟수에는 노이즈(Noisy Data)가 껴있기 때문에 항상 모든 점을 정확히 지나지는 않음 1차함수의 기울기와 절편을 찾는 것이 목표 - 머신러닝의 핵심 : 과거의 관측을 기반으로 새로운 샘플의 결과값을 예측 - 우리가 바라는 이상 : 적합한 파라미터(parameter), 즉 적합한 가중치와 절편 탐색 → 실제 결과값과 예측 결과값의 차이를 찾아 0을 만드는 것 - 우리의 목표 : 어느 정도 현실성을 반영하여, 모든 점에서 생기는 오차의 합계가 가능한 작아지는 함수를 찾는 것 → 오차의 합계식을 목적함수라고 함 목적함수값이 가장 작아.. 2021. 5. 10.
[Python] 정규 분포, 확률 분포, 사분위 수 - 과거의 인공지능, 머신러닝 기반 시스템은 주로 확률과 관련 있었음 -통계학(Statistics) : 수치 데이터의 수집, 분석, 해석, 표현 등을 다루는 수학의 한 분야 통계학 기술 통계학 추론 통계학 연속형 데이터 범주형 데이터 단서 > 가설 설립/검정 > 문제 해결 일부 연령층, 일부 지역 주민, 혹은 무작위 선정 통해 표본 선정 > 통계분석 실시 > 모집합(전 국민)에 대한 결과 유추 - 가설 검정 - 수치로 되어있는 특징들 계산 - 각 데이터 간의 상관관계 분석 키/나이/가격 데이터 바탕으로 평균/표준편자와 같은 형식으로 요약 이름/종족/성별 데이터 바탕으로 빈도/백분율과 같은 자료 형식으로 요약 - 통계 모델링 : 데이터에 통계학을 적용하여 변수의 유의성을 분석함으로써 방대한 양의 데이터에 .. 2021. 5. 10.
[ML] 붓꽃의 품종 분류(지도학습 / 분류) import numpy as np import pandas as pd import matplotlib.pyplot as plt - Data Collection from sklearn.datasets import load_iris iris_dataset = load_iris() iris_dataset.keys() # 데이터셋에 대한 설명 print(iris_dataset['DESCR'][:193]+'\n') # 예측하려는 붓꽃의 품종 이름 iris_dataset['target_names'] # 특성 # sepal은 꽃받침, petal은 꽃잎 iris_dataset['feature_names'] # 실제 데이터는 target과 data에 들어있음 # 샘플의 수 확인 iris_dataset['data'].sh.. 2021. 4. 29.
[ML] KNN - bmi model import pandas as pd import matplotlib.pyplot as plt from sklearn.neighbors import KNeighborsClassifier from sklearn import metrics from sklearn.metrics import classification_report # 한글폰트 설정 from matplotlib import font_manager, rc font_name = font_manager.FontProperties(fname='C:/Windows/Fonts/malgun.ttf').get_name() rc('font', family=font_name) - Data Collection bmi = pd.read_csv('./bmi_500.csv.. 2021. 4. 29.
[ML] 일반화, 과대적합, 과소적합 - 일반화(Generalization) 훈련 세트로 학습한 모델이 테스트 세트에 대해 정확히 예측하도록 하는 것 - 과대적합(Overfitting) 훈련 세트에 너무 맞추어져 있어 테스트 세트의 성능 저하 너무 상세하고 복잡한 모델링을 하여 훈련데이터에만 과도하게 정확히 동작하는 모델 - 과소적합(Underfitting) 훈련 세트를 충분히 반영하지 못해 훈련 세트, 테스트 세트에서 모두 성능이 저하 모델링을 너무 간단하게 하여 성능이 제대로 나오지 않는 모델 - 해결방법 주어진 훈련 데이터의 다양성 보장 → 다양한 데이터포인트를 골고루 나타내야함 일반적으로 데이터의 양이 많으면 일반화에 도움 편중된 데이터를 많이 모으는 것은 도움이 되지 않음 규제(Regularization)을 통해 모델의 복잡도를 적.. 2021. 4. 29.
[ML] KNN 알고리즘 - AND, XOR 연산 - scikit-learn 파이썬에서 쉽게 사용할 수 있는 머신러닝 프레임 워크, 라이브러리 회귀, 분류, 군집, 차원축소, 특성공학, 전처리, 교차검증, 파이프라인 등 머신러닝에 필요한 기능을 갖춤 학습을 위한 샘플 데이터 제공 - KNN(K-Nearest Neighbors, k-최근접 이웃 알고리즘) 새로운 데이터 포인트와 가장 가까운 훈련 데이터셋의 데이터 포인트를 찾아 예측 이웃이 적을 수록 모델의 복잡도 상승 → 과대적합 이웃이 전체 데이터의 개수와 같아지면 항상 가장 많은 클래스로 예측 → 과소적합 k값에 따라 가까운 이웃의 수가 결정 분류와 회귀에 모두 사용 가능(지도학습) 결정경계(Decision Boundary) : 클래스 분류하는 경계 데이터 포인트(sample) 사이 거리 값 측정 방.. 2021. 4. 29.
[ML] 머신러닝 기초 - 지도학습(Supervised Learning) 데이터에 대한 Label(명시적인 답)이 주어진 상태에서 컴퓨터를 학습시키는 방법 스팸 메일 분류, 집 가격 예측(회귀) 분류(Classification) 미리 정의된 여러 클래스 레이블 중 하나를 예측하는 것(y가 범주형 데이터로 구성) 클래스 레이블은 이산적이고 순서가 없음 속성 값을 입력, 클래스 값을 출력으로 하는 모델 이진분류, 다중분류 붓꽃(iris)의 세 품종 중 하나로 분류, 암 분류, 광고성 이메일 감지(이진 분류), 손글씨 인식(다중 분류) 등 회귀(Regression) 연속적인 숫자를 예측하는 것 속성 값을 입력, 연속적인 실수 값을 출력으로 하는 모델(y가 수치 데이터로 구성) 예측 값의 미묘한 차이가 크게 중요하지 않음 입력값 x와.. 2021. 4. 29.
728x90