본문 바로가기

전체 글

(102)
PCA(주성분 분석) 개념 차원 축소 알고리즘의 하나로 데이터에서 가장 분산이 큰 방향을 찾는 방법이다. 여기서 큰 방향이란 주성분이다. 원본 데이터를 주성분에 투영하여 새로운 특성을 만든다. 문법 from sklearn.decomposition import PCA # PCA 모델 사용 # n_components : 주성분의 개수 지정 pca = PCA(n_components=None) pca.fit(fruits_2d) # 훈련 세트에서 찾은 주성분 pca.components_ # 차원 축소 pca.transform(fruits_2d) # 축소된 데이터 복원 pca.inverse_transform(fruits_pca) # 설명된 분산의 비율 pca.explained_variance_ratio_ 실습 !wget https://..
K-means clustering(k-평균 알고리즘) 개념 무작위로 k개의 클러스터 중심을 정한다. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정한다. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경한다. 클러스터 중심에 변화가 없을 때까지 2번으로 돌아가 반복한다. 문법 from sklearn.cluster import KMeans # K-mean 모델 사용 # n_clusters : 클러스터 개수, n_init : 반복 횟수, max_iter : 최대 반복 횟수 km = KMeans(n_clusters=8, n_init=10, max_iter=200) km.fit(data) 실습 !wget https://bit.ly/fruits_300_data -O fruits_300.npy # 과일사진 데이터 준비 import nu..
Loss function(손실 함수) 개념 샘플 하나에 대한 손실을 정의한다. 확률적 경사 하강법이 최적화할 대상이다. 분류 이진 크로스엔트로피 손실 함수(로지스틱 손실 함수) : 2가지의 클래스에 사용된다. 크로스엔트로피 손실 함수 : 2가지 이상의 클래스에 사용된다. 문법 from sklearn.linear_model import SGDClassifier # 확률적 경사 하강법 사용 # loss: 사용할 알고리즘, max_iter: 반복 횟수, tol: 반복을 멈출 조건, penalty: 규제(l2:릿지,l1:라쏘) sc = SGDClassifier(loss='hinge', max_iter=1000,tol=0.001,penalty='l2') sc.fit(data,target) # 학습 sc.score(data,target) # 모델 평가..
Gradient Descent(경사 하강법) 개념 점진적 학습 일부이며 가장 빠른 길(경사가 가장 가파른 길)을 찾는 알고리즘이다. 훈련 세트를 한 번 모두 사용하는 과정을 에포크라고 부른다. 분류 확률적 경사 하강법 : 훈련 세트에서 하나의 데이터를 랜덤하게 골라 가장 가파른 길을 찾는다. 미니 배치 경사 하강법 : 훈련 세트에서 무작위로 몇 개의 데이터를 선택해서 가장 가파른 길을 찾는다. 배치 경사 하강법 : 훈련 세트 전체를 사용하여 가장 가파른 길을 찾는다.
Logistic Regression(로지스틱 회귀) 개념 선형 방정식을 사용한 분류 알고리즘이다. 선형 회귀와 달리 클래스 확률을 예측 가능하다. 분류 sigmoid function : 1. 하나의 선형 방정식의 출력값을 0~1 사이로 압축한다. 2. 이진 분류에서 사용 softmax: 1. 여러 개의 선형 방정식의 출력값을 0~1 사이로 압축하고 전체 합이 1이 되도록 만든다. 2. 다중 분류에서 사용 문법 from sklearn.linear_model import LogisticRegression # 로지스틱 회귀 사용 # 객체 생성, C: 규제 강도, max_iter: 반복 횟수, solver: 알고리즘 lr = LogisticRegression(C=1,max_iter=100,solver='Ibfgs') lr.fit(data,target) # 학습 ..
regularization(규제) 개념 머신러닝 모델이 훈련 세트를 과도하게 학습하지 못하도록 한다. 선형 회귀 모델의 경우 특성에 곱해지는 기울기를 작게 만든다. 종류 Ridge : 계수를 제곱한 값을 기준으로 규제를 적용 Lasso : 계수의 절대값을 기준으로 규제를 적용 문법 from sklearn.linear_model import Ridge, Lasso # 규제 사용 ridge = Ridge(alpha=1, solver='auto') # alpha: 규제 강도, solver = 최적의 모델 찾는 방법 ridge.fit(data,target) # 학습 lasso = Lasso(alpha=1, max_iter=1000) # alpha: 규제 강도, max_iter: 반복 횟수 lasso.fit(train_scaled,train_ta..
feature engineering(특성 공학) 개념 기존의 특성을 사용해 새로운 특성을 뽑아내는 작업 문법 사이킷런의 변환기를 사용한다. from sklearn.preprocessing import PolynomialFeatures # 사이킷런 변환기 사용 poly = PolynomialFeatures() poly.fit([[2,3]]) # 2개의 특성: 2 3 print(poly.transform([[2,3]])) poly = PolynomialFeatures(include_bias=False) # 1 특성 삭제하기 poly.fit([[2,3]]) # 2개의 특성: 2 3 print(poly.transform([[2,3]])) # x0은 첫 번째 특성, x1는 두번째 특성을 의미 poly.get_feature_names_out()
선형 회귀, 다항 회귀 개념 선형 회귀: 특성이 하나인 경우 어떤 직선을 학습하는 알고리즘 다항 회귀: n(n>=2)차 함수로 학습하는 알고리즘 문법 from sklearn.linear_model import LinearRegression # 선형 회귀 사용 lc.fit(data,target) # 학습 데이터, 정답을 학습시킨다. lc.score(data,target) # 학습이 얼마나 잘되었는지 평가한다. lc.predict(data) # 데이터 예측 실습 import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split # 데이터 셋 나누는 모듈 from sklearn.neighbors import KNe..