2022/04/27

jungkwanlee·2022년 4월 27일
0

코딩일지

목록 보기
26/108

1) 학습한 내용

1.머신러닝

데이터로부터 학습하도록 컴퓨터를 프로그래밍하는 과학으로, Arthur Samuel에 따르면 명시적인 프로그래밍 없이 컴퓨터가 스스로 학습한느 능력을 갖게 하는 연구 분야다. 과거 경험에서 학습을 통해 얻은 지식을 미래의 결정에 이용하는 컴퓨터 과학의 한 분야로 관측된 패턴을 일반화 하거나 주어진 샘플을 통해 새로운 규칙을 생성하는 목표를 가지고 있다. 머신러닝이 기존 접근법과 다른점은 데이터를 통한 머신러닝 훈련을 거쳐서 프로그램 길이가 짧아지고 분류 정확도가 높아진다. 그리고 머신러닝은 자동으로 변화에 적응을 한다는 장점이 있다. 또한, 그 과정에서 새로운 패턴을 발견해내기도 한다.

지도학습

  • 학습 데이터가 입력(특징 행렬)과 출력(대상 벡터) 쌍으로 제공된다.-> "레이블 데이터"
  • 학습 목표는 입력 특징 행렬과 출력 대상 벡터를 매핑시키는 규칙을 찾는 것임.
  • 입력 특징 행렬에 대해 출력 대상 벡터가 알려져 있으므로 '지도'라고 부른다.
  • 회귀는 연속형 수치 데이터를 예측하며 집값, 중고차 가격, 주가 예측을 하는데 사용된다. 반면에 분류는 범주형 데이터인 클래스 레이블을 예측해서 스팸 메일 필터, 긍정/부정의 감정분석, 채무불이행 예측 등을 하는데 쓰인다.

    대표적으로, k-최근접 이웃, 선형 회귀, 서포트 벡터 머신, 결정 트리와 랜덤 포레스트, 신경망이 있다.

    비지도학습

    학습 데이터로 입력(특정 행렬)만 제공되어 (레이블 없는 데이터) 입력 특징 행렬에 대한 출력 대상 벡터가 없으므로 '비지도'라 불린다. 대표적인 예로는 군집, 시각화와 차원축소, 연관 규칙 학습등이 있다. 군집은 특징이 비슷한 것들끼리 묶어 군을 마드는 것이며, K-평균, 계층 군집 분석(HCA), 기대값 최대화등이 있다. 시각화와 차원축소는 시각화 시 인간이 인지할 수 있는 차원(2차원 등)으로 축소하는 것이며, 주성분분석(PCA), 커널 PCA, 지역적 선형 임베딩(LLE), t-SNE등이 있다. 연관 규칙 학습은 구매 경향성 규칙 발견 등 (장바구니 분석)으로 Apriori, Eclat등이 있다. 이외에도 추천 엔진이 있다.

    강화 학습

    시스템이 어떤 목표를 달성하기 위해 동적인 조건에 적응하도록 하며 학습하는 시스템("에이전트")이 환경 관찰을 해서 액션 실행을 해서 "보상" 또는 "벌점"을 부여한다. 시간이 경과하면서 가장 큰 보상을 얻기 위해 최상의 전략("정책")을 스스로 학습을 한다. 대표적으로, 자율주행자동차, 알파고가 있다.

    준지도 학습

    준지도 학습은 학습 데이터에 레이블이 일부만 있는 경우에 활용되며 데이터 세트 전체에 레이블을 붙이는 데 고비용이 발생하며 지도학습과 비지도학습의 조합으로 이뤄진다. 심층신뢰신경망(DBN)과 같은 비지도학습에 기초

    2.머신러닝을 위한 파이썬 핵심

    Numpy

    Numerical Python의 역자로 파이썬의 내장 타입인 리스트보다 데이터의 저장 및 처리에 있어 효율적인 NumPy배열을 제공한다. 선형 대수와 관련된 기능을 제공하며 파이썬을 기반으로 한 데이터 과학 도구의 핵심 패키지다.(Pandas, Scipy, scikit-learn 패키지등은 Numpy가 기반이다.)

    NumPy의 주요기능

    np는 NumPy를 Import 할 때 일반적으로 사용하는 별칭이다.
    Array는 동질의 데이터를 다룰 수 있는 구조
    , dtype=np.float에 dtype은 데이터 타입이다.
    np.zeros(10)에서 zeroes는 1차원으로 만들고 0으로 채운다.
    np.ones((3,5))에서는 2차원으로 만들고 1로 채운다.
    np.full((2,3),5)는 초기값을 임의로 설정한다.
    np.linspace(0,100, 5, dtype=int)는 균등하게 interval을 구성한다.
    np.random.random((3,3))에서 Random은 0~1사이 난수 배열 생성을 한다.
    np.random.randint(0,10,(3,3))은 설정한 구간(0~9까지)내의 난수 배열 생성을 한다.
    np.random.normal(0,1,(3,3))은 설정한 평균, 표준편차 정규분포 확률에 의한 난수 배열 생성을 한다.
    seed값은 재현성 문제 해결(동일한 seed로 초기화 하면 동일한 순서의 난수가 생성된다.)
    Ndim: 차원정보,
    Shape:행/열 원소 구조 정보,
    Size:원소의 개수,
    dtype:데이터 타입
    인덱싱은 단일 원소에 접근하는 기법이다.
    arr1[-6], arr1[-1]에서 -1은 맨 마니작 데이터를 말한다.
    그리고, arr2[0,0], arr2[0,2]는 []을 활용해서 행/열 인덱스 정보를 기술한다.
    슬라이싱은 부분집합 추출로[start:end:step]형태를 띄운다. 여기서, arr[:], arr1[::]와 같이 비어있는 슬라이싱 연사자를 활용할 경우, 전체집합을 부분집합으로 반환한다. arr1[:-1]은 step이 음수인 경우 거꾸로 출력한다. reshape(-1,4)는 행/열을 변환하는데 -1은 정해지지 않음을 의미한다.(열을 4개로 맞춰서 3행 4열로 변환한다.)
    np.concatenate([list1, list2]) 이것은 두 개의 list를 []안에 담아사 전달해야 함을 말한다.
    axis=0은 배열의 축(방향)을 말한다.
    python의 loop는 속도가 느리기 때문에 mumpy 내장함수(vectorize function)을 사용하는 것을 권장한다.
    np.sum(array),array.sum():array의 합계를 나타낸다.
    np.min(array),array.min()는 최소값을 나타내고 np.max(array),array.max()는 최대값을 나타낸다.
    브로드캐스팅은 행열구졸르 동일하게 맞춰주는 것을 말한다.
    팬시 인덱싱은 인덱스 배열을 만족하는 부분집합을 추출한다.

    Pandas

    Numpy를 기반으로 개발된 패키지로, 유연한 인덱스를 가진 1차원 배열의 구조의 Seires 객체와 유연한 행 인덱스와 열 인덱스를 가진 2차원 배열의 구조의 DataFrame 객체를 제공한다. 강력한 데이터 연산 기능을 제공하며 DataFrame 객체는 여러 데이터 타입을 사용할 수 있으며, 값의 누락 역시 허용된다.

    NumPy와 Pandas의 특징

    1.Numpy패키지의 ndarray 객체는 배열 기반의 데이터에 효율적인 저장소 뿐만 아니라 효율적인 연산을 제공한다.
    2.Numpy 배열 객체는 단일 요소에 접근하는 인덱싱, 하위 배열에 접근하는 슬라이싱, 부율 배열을 이용한 마스킹 연산, 인덱스 배열을 이용한 팬시 인덱싱, 이 모든 기능을 결합해 사용하는 복합 인덱스 기능을 제공한다.
    3.NumPy 배열은 유니버설 함수와 브로드캐스팅 기능을 이용해 벡터화 연산을 지원한다.
    4. Pandas 패키지는 유연한 인덱스를 가진 1차원 배열 Series와 유연한 행 인덱스와 열 이름을 가진 2차원 배열 DataFrame객체를 제공한다. 5. DataFrame은 인덱싱 연산에 loc, iloc 인덱서를 제공하며, 널 값 연산 기능과 조인, 그룹화, 피봇 기능을 지원한다.

    3. Matplotlib

    1)Matplotlib 라이브러리를 이용해 시각화 작업을 할 경우, Figure와 axes 객체와 같은 객체 지향 인터페이스를 사용하거나, 활성화된 그림이나 축을 사용하는 매트랩 스타일의 pylab인터페이스를 사용할 수 있다. 2)라인 플롯은 함수를 시각화하기 위한 플롯으로, plot()함수를 사용하며, 선의 색상, 스타일과 같은 속성을 데이터에 매핑해 사용한다. 3) 스캐터 플롯은 데이터의 산포도에 대한 직관을 얻을 수 있는 플롯으로, scatter()함수를 사용하며, 각 점의 크기, 색상과 같은 속성을 데이터에 매핑해 사용한다. 4)히스토그램은 계급 구간별 빈도와 밀도를 쉽게 이해할 수 있는 플롯으로, hist()함수를 사용하며, scipy.stats 패키지의 norm.pdf()함수를 이용해 근사값을 같이 표시할 수 있다. 5) 박스 플롯은 사분위수와 이상치의 존재 여부를 쉽게 파악할 수 있는 플롯으로, boxplot()함수를 사용하며, 이미지 플롯은 이미지 데이터를 적재해 시각화하는 imshow()함수를 사용한다.

    4.머신러닝을 위한 통계 모델링의 이해

    통계학

    수치 데이터의 수집, 분석, 해석, 표현 등을 다루는 수학의 한 분야로 크게 기술 통계학과 추론 통계학으로 분류된다. 기술 통계학은 연속형 데이터와 범주형 데이터로 나뉘는데, 연속형 데이터는 평균, 표준편차와 같은 자료 요약으로 쓰이며 범주형 데이터는 빈도, 백분율과 같은 자료 요약으로 쓰인다. 추론 통계학은 표본이라 불리는 일부 자료를수집해 전체 모집합에 대한 결론을 유추하며 추론은 가설 검정, 수치의 특징 계산, 데이터 간의 상관관계 등을 통해 이뤄진다. 데이터에 통계학을 적용해 변수의 유의성을 분석함으로써 데이터의 숨겨진 특징을 찾아내는 것을 통계 모델링이라고 한다.

    통계학 핵심 개념

    통계 모델은 수학적 모델은 변수들로 이뤄진 수학식을 계산해 실제 값을 추정하는 방법으로 통계 모델을 여러 가정은 확률 분포를 따른다. 통계 모델은 모든 변수가 막족해야하는 기본가정으로 시작하며, 이 조건이 만족할 때만 모델의 성능이 통계학적으로 의미를 가진다.

    통계학 핵심 개념

    모집단은 모든 관측값 또는 분석 대상의 전체 데이터를 의미한다. 표본은 모집단의 부분 집합으로, 분석 대상 중인 전체 데이터의 일부를 말한다. 모수는 모집단의 특징을 나타내는 수치값을 말하며, 통계량은 표본의 특징을 나타내는 수치값으로, 모수 추정을 위해 사용 평균, 중앙값, 최빈값, 분산 등과 같은 데이터를 대표하는 값이다. 참고로 분포가 좌우로 치우친 경우 최빈값, 중앙값, 평균이 모두 다르다. 변량의 측정은 산포는 데이터의 변량을 의미하며, 데이터가 얼마나 중심으로 모이지 않고 흩어져 있는지를 설명한다. 분산은 평균과의 거리를 제곱한 값의 평균이며, 표준편차는 분산의 제곱근이다. 범위는 최대값과 최소값의 차이며, 사분위수는 데이터를 4등분한 값으로 25%값을 1사분위수(Q1), 50% 값을 2사분위수(Q2), 75%값을 3사분위수(Q3)라 한다. IQR:Interquartile Range.Q1과 Q3의 차이, 가설 검정은 표본에 대한 통계적 테스트를 수행해 전체 모집단에 대한 추론을 만드는 과정으로, 귀무가설과 대립가설을 통해 가정이 통계적으로 의미가 있느지 검정한다. 모델링에서 각 독립 변수에 대해 0.05보다 작은 p-value는 유의미하다고 간주함.

    가설 검정의 단계

    귀무가설 정의-> 표본 추출-> 검정 통계량에 따른 귀무가설의 통계적 유의성 확인-> 검정통계량에 따라 귀무가설 채택 또는 기각| p-value:귀무가설이 옳다는 전제 하에 표본에서 시제로 관측된 통계값과 같거나 더 극단적인 통계값이 관측될 확률 | 한 빵집에서 생산되는 식빵의 무게가 최소 200g이라고 주장할 경우, 표본 20개를 추출해 구한 평균 무게가 196g이고, 표준편차는 5.3g이었다면, 유의수준 5%(0.05)로 위의 주장을 기각할 수 있을까? 귀무가설로 보면 모든 식빵의 무게는 200g 이상이다.

    정규분포

    정규분포는 중심극한정리에 따르면 평균이 𝜇이고 분산이 𝜎^2(표준편차가 𝜎)인 모집단으로부터 가능한 모든 n개의 조합을 표본으로 추출하면 표본의 평균들은 정규분포에 접근한다.
    z = (x_bar - mu)/sigma print("z-score: ", np.round(z. 2) p_val = 1 - stats.norm.cdf(z)
    print("학생이 {}점 이상 받을 확률: {}%".format(x_bar, np.round(p_val*100, 2))) 일 경우, 답은 z-score : 1.4이며 하생이 75점 이상 받을 확률: 8.12%로 나온다.

    카이제곱

    카이제곱 독립성 검정은 범주형 데이터의 통계 분석에 가장 보편적으로 사용되는 검정으로, 2개의 범주형 변수 사이에 통계적 상관서잉 존재하는지를 판단함.

    ANOVA분산 분석

    Analysis of Variance의 약자로, 모집단이 셋 이상인 경우, 이들의 평균이 서로 동일한지 테스트한다. 귀무가설은 모든 모집단의 평균은 동일하다. 대립가술은 적어도 하나의 모집단은 평균이 다르다고 한다.

    주요 정리

    1) 귀무가설과 대립가설을 통해 가정이 통계적으로 의미가 있는지 검정하는 절차를 가설 검정이라고 한다.
    2) 가설검정은 귀무가설을 정의하고, 표본을 추출하고, 검정 통계량에 따른 통계쩍 유의성을 확인 후 귀무가설을 채택하거나 기각하는 순으로 절차를 진행한다.
    3) p-value는 귀무가설이 옳다는 전제 하에 표본에서 실제로 관측된 통계깞과 같거나 더 극단적인 통계 값이 관측될 확률이다.
    4) 평균이 𝜇이고 분산이 𝜎^2인 모집단으로부터 가능한 모든 n개의 조합을 추출하면 표본의 평균은 정규분포에 접근한다.
    5) 카이제곱 검정은 범주형 데이터의 통계 분석에 사용되는 검정으로, 2개의 범주형 변수 사이에 독립성을 판단한다.
    6) ANOVA 분산분석은 모집단이 셋 이상인 경우, 이들의 평균이 서로 동일한지 테스트한다.

    5. Scikit-learn

    1) sciit-learn은 데이터를 담고 있는 2차원 구조의 특징 행렬(x)와 레이블을 담고 있는 1차원 구조의 대상 벡터(y)를 사용하도록 설계되어 있다.
    2) scikit-learn의 Estimator는 공통 인터페이스로 fit, predict, score 메서드를 제공한다.
    3) 회귀 문제는 선형 알고리즘이 구현되어 있는 LinearRegressor를 사용할 수 있고, 분류 문제는 분류 알고리즘이 구현되어 있는 KNeightborsClassifier를 사용할 수 있다.
    4) scikit-learn의 train_test_split 함수를 이용해 훈련 데이터와 테스트 데이터를 나누고, 모델의 성능은 테스트 데이터를 이용해 측정합니다.

    6. 머신 러닝의 이해

    교차검증의 기본 절차:
    1. 교차검증 1단계에서는 데이터를 학습용과 테스트용으로 나눔
    모델의 테스트 성능을 기록
    3.교차 검증의 매 단계마다 다른 파티션으로 위의 작업을 수행
    4. 모델의 최종 성능은 매 단계의 테스트 성능을 평균 계산

    교차 검증은 모델의 변동성을 줄여주며 오버피팅과 같은 문제를 막아줌.

    k폴드 교차검증

    데이터를 무작위로 k개의 동일한 크기인 폴드로 나눈다.(보통 k값으로 3,5,10을 많이 사용) 각 시행 단계에서 특정 폴드를 테스트용으로, 나머지는 학습용으로 사용한다. 각 폴드를 테스트 세트로 한 번씩 사용하고 이 과정을 k번 박복 시행함으로써, 최종적으로 모델 성능의 평균을 계산한다.

    단일 관측지 제거 방식(LOOCV)

    Leave-one-out cross validation의 약자로, 매 시행 단계에서 테스트 샘플을 고정하는 방식으로 데이터를 n개의 서브세트로 분할하고, n개 중 1개를 테스트용으로 두고 n-1개로 학습을 수행한다. 데이터 크기가 n이면 n번의 교차 검증을 수행한다. 데이터 크기가 n이면 n번의 교차 검증을 수행한다.

    최적의 모델 선택 방법으로는
    1)더 복잡하거나 더 유연한 모델을 사용
    2)덜 복잡하거나 덜 유연한 모델을 사용
    3) 더 많은 훈련 표본을 수집
    4)각 표본에 특징을 추가하기 위해 더 많은 데이터를 수집한다.

    언더피트: 과소적합. 모델이 고편향됨. 모델이 모든 특징을 적절히 설명할 수 있을 만큼 모델 유연성이 충분치 않음.

    오버피트: 과대적합. 모델이 고분산됨. 모델이 모든 특징을 세밀하게 설명할 수 있을만큼 모델 유연성이 충분하지만, 훈련 데이터의 잡음까지 반영하고 있음.

    편향과 분산 사이의 트레이드 오프에서 가장 효율적인 지점은 최적의 모델이다. 그 중에서 편향과 분산 사이의 최적의 트레이드오프는 3차 다항식이다.

    주요 정리

    1) 교차 검증을 사용하면 모델을 훈련시킬 데이터를 빠뜨릴 수 있는 문제를 방지할 수 있다.
    2) 검증 곡선을 시각화하면 모델의 복잡과 관련된 편향과 분산 사이의 트레이드오프에서 적절한 지점을 확인할 수 있다.
    3) 학습곡선 플롯을 이용하면 훈련집합의 크기에 따른 훈련 점수와 검증 점수의 변화를 시각적으로 확인할 수 있다.
    4) 그리드 서치 자동화 도구를 이용하면 검증 점수를 최대화하는 최적의 모델을 찾아 데이터에 적합시킬 수 있다.
    5) 특징 공학을 통해 머신러닝의 특징 행렬을 구축하는데 필요한 범주형 데이터의 인코딩, 복잡도를 증가시키기 위한 유도 특징의 추가, 누락 데이터 대체등의 작업을 수행하며, 파이프라인을 통해 작업의 생산성을 높일 수 있다.

    단순 선형 회귀

    회귀의 목표는 연속형 반응 변수의 값을 예측하는 것으로 단순 선형 회귀란 설명 변수인 단일 특징과 단일 반응 변수 간에 선형 관계가 있다고 가정하고 초평면이라고 하는 선형 평면을 이용해 모델링한 것이다. 단순 회귀는 설명 변수의 차원과 반응 변수의 차원, 모두 2개의 차원을 가지며, 초평면은 한 차원 낮은 1차원이 됨(1차원의 초평면은 선) y = a + bx를 사용한다.

    최소 제곱근

  • OLS(ordinary Least Squares) 또는 LLS(Linear Least Squares)로 부름
  • 단순 선형 회귀에서 모델을 최적화하는 파라미터 값을 훈련 데이터로부터 학습하는 방법
  • 비용 함수: 손실 함수. 모델의 오차를 정의하고 측정하기 위해 사용
  • 잔차 : residual. 훈련 오차로 훈련 데이터의 관측 값과 모델에 의한 예측 값의 차이
  • 예측 오차 : prediction error. 테스트 오차로 테스트 데이터의 관측 값과 모델에 의한 예측 값의 차이
  • 잔차의 합을 최소화 -> 값을 예측할 수 있는 추정기를 만들 수 있음.
  • 비용함수를 사용한 모델의 적합화 척도:RSS

  • 반응 변수의 예측 값이 훈련 데이터의 관측 값과 가까워지면 모델이 적합화되었다고 할 수 있음.
  • 모델 적합화의 척도: 잔차 제곱합 (RSS. Residual Sum of Squares)
  • 단순 선형 회귀를 위한 OLS의 계산

  • 단순 선형 회귀식: y = a + bx
  • 비용 함수를 최소화하는 a값과 b값을 찾는 것이 목표
  • b를 계산하기 위해 x의 분산과 x와 y의 공분산을 계산
  • 단순 선형 회귀 모델의 평가

  • 회귀 모델의 기본 예측 능력 평가 지표: 결정계수 R^2
  • 데이터가 회귀선에 얼마나 가깝게 분포하는지를 측정
  • 모델에 의해 설명된 반응 변수 분산의 비율을 기술
  • R^2은 이상치에 민감하고, 모델에 새로운 특징이 추가되면 값이 증가하는 문제를 가짐
  • 다중 선형 회귀

    다중 선형 회귀란 설명 변수인 다수의 특징과 단일 반응 변수 간에 선형 관계가 있다고 가정하고 초평면이라고 하는 선형 평면을 이용해 모델링한 것이다. 다중 회귀는 설명 변수의 n차원과 반응 변수의 1차원, 모두 n+1개의 차원을 가지며, 초평면은 한 차원 낮은 n차원이 됨. 선형 회귀 모델의 벡터 표기법은 Y = XB로 표기된다. 훈련 데이터로부터 X와 Y의 값을 알고 있으므로 비용함수를 최소화하는 B를 계산한다.

    다항 회귀

    다항 회귀란 반응 변수와 다항식으로 표현된 특징 사이의 선형 관계를 모델링 할 수 있는 다중 선형 회귀의 특수한 형태로 특징을 변환한 후 다중 선형 회귀에서와 같은 방식으로 설명 변수와 반응 변수의 비선형 관계를 모델링한다. 단일 설명 변수의 단일 특징을 사용하고 있지만 모델의 항은 n개다.

    주요 정리

    1)선형회귀 모델을 생성하기에 앞서 상관분석, 산점도행렬 등을 이용해 데이터에 대한 탐색적 분석을 실행합니다.
    2)단순 선형 회귀란 설명 변수인 단일 특징과 단일 반응 변수 간에 선형 관계가 있다고 가정하고 초평면이라고 하는 선형 평면을 이용해 모델링한 것이다.
    3) 다중 선형 회귀는 설명 변수인 다수의 특징과 단일 반응 변수 간에 선형 관계가 있다고 가정하고 초평면이라고 하는 선형 평면을 이용해 모델링한 것이다.
    4) 다항 회귀는 설명 변수와 반응 변수의 비선형 관계를 모델링한다.
    5) 회귀 모델 성능의 기본 평가지표는 결정계수 R^2를 이용해 측정한다.

    회귀모델의 성능은 평가지표로 RMSE를 이용해 측정한다.

    선형 회귀, 리지 회귀, 라쏘 회귀

    선형 회귀

    회귀 모델의 예측 능력 평가 지표는 평균 제곱근 오차 RMSE(Root Mean Square Error)로 평균 제곱근 오차는 분산의 제곱근, 즉 표준 오차가 된다. 덧붙여서, 규제가 있는 선형회귀모델은 리지, 라쏘 엘라스틱 넷이 있다.

    규제가 있는 선형 모델의 필요성

  • 과분산 모델에 대해 모델을 규제하면 오버피팅을 감소시킬 수 있음.
  • 규제란 오버피팅된 파라미터 값에 대해 패널티를 부여하는 것
  • 패널티를 추가하게 되면 규제가 없는 회귀 모델보다 계수의 절대값이 작아지게 되는 원리를 이용해 오버피팅을 방지할 수 있다.
  • 패널티를 가한다는 것은 편향을 높인다는 것을 의미하며, 규제가 없는 모델보다 훈련 데이터와의 적합도가 떨어지지만 전체적인 겨로가는 좋아짐.
  • 오버피팅된 모델은 지나친 노이즈를 반영할 수 있으므로 모델을 단순화하여 좀 더 일반화된 모델로 만들 필요가 있다.
  • 리지 회귀 모델

  • Ridge 회귀는 규제가 추가된 선형 회귀 모델
  • 규제 항이 비용함수에 추가 됨
  • 가중치 벡터의 제곱항을 합한 L2노름을 2로 나눈 값을 적용함.
  • 모델의 가중치가 가능한 작게 유지되도록 함
  • 규제항은훈련하는 동안에만 비용함수에 추가됨.
  • 모델의 훈련이 끝나면 모델의 성능을 규제가 없는 성능 지표로 평가함.
  • 하이퍼파라미터 a는 모델 규제를 조절
  • a=0이면 선형회귀와 동일하며, a가 아주 크면 모든 가중치가 0에 가까워짐.
  • 라쏘 회귀 모델

  • Lasso 회귀는 선형 회귀 모델의 또 다른 규제된 버전
  • 가중치 벡터의 절대값의 합인 L1노름을 적용함
  • 덜 중요한 특징의 가중치(0)를 완전히 제거하려고 함.
  • 차수가 높은 다항 특징의 가중치를 0으로 만듦.
  • *라쏘는 가중치를 0으로 만들어 전체적으로 오버피팅이 줄어들어 모델의 복잡도가 낮아진다.

    주요 정리

    1. 선형 회귀 모델의 성능을 측정하는 평가 지표로 RMSE를 사용할 수 있다.
    2. 과분산 선형 회귀 모델에 대해 규제를 적용하면 오버피팅 문제를 감소시킬 수 있다.
    3. 리지 회귀 모델은 규제가 있는 선형 회귀 모델로 가중치 벡터의 제곱항을 합한 L2노름을 2로 나눈 값을 적용한다.
    4. 라쏘 회귀 모델은 규제가 있는 선형 회귀 모델로 가중치 벡터의 절대값의 합인 L1 노름을 적용한다.

    의사결정 트리

    Decision Tree로, 분류, 회귀 작업에 사용되며, 복잡한 데이터 세트도 학습할 수 있다. 설명하기 쉽고 해석하기도 쉬우면서 나이브 베이즈오 ㅏ같이 범주형 데이터를 잘 다룰 수 있다. 의사결정 트리는 강력한 머신러닝 알고리즘 가운데 하나인 랜덤 포레스트의 기본 구성 요소로, ID3, C4.5, CART, CHAID와 같은 알고리즘이 있음.

    CART 알고리즘의 특징

  • Classification and Regression Tree
  • 노드를 왼쪽, 오른쪽 자식 노드로 분할 확장하면서 트리를 생성함.
  • 분할 단계에서 가장 중요한 특징과 해당 값의 모든 가능한 조합을 측정 함수를 이용해 탐욕적으로 찾음.
  • 범주형 특징의 경우 해당 특징 값을 가진 샘플들을 오른쪽 자식 노드에 할당함.
  • 수치형 특징의 경우 해당 값보다 큰 값을 가진 샘플들을 오른쪽 자식 노드에 할당함.
  • 혼동행렬

  • 실제 관측값을 얼마나 정확하게 예측했는지를 보여주는 행렬
  • True Positive:참-긍정은 병에 관해 "예"로 예측한 환자가 실제로 병을 가진 경우
  • True Negative:참-부정은 병에 관해"아니오"로 예측한 환자가 실제로 병이 없는 경우
  • False Positivie: 거짓-긍정은 병에 관해 "예"로 예측한 환자가 실제로 병이 없는 경우(1형 오류)
  • False Negative: 거짓-부정은 병에 관해"아니오"라고 예측한 환자가 실제로 병이 있는 경우(2형오류)
  • 분류 모델의 평가 지표

  • 정확도
  • 정밀도
  • 재현율
  • 위양성율
  • F1점수
  • 특이성
  • AUC
  • ROC 커브
  • 예측된 확률로부터 여러 클래스로 분류를 수행하는 데 활용
  • 랜덤 포레스트

    랜덤 포레스트는 특징 기반 배깅 방법을 적용한 의사결정 트리의 앙상블로 트리 배깅은 의사결정 트리 모델의 단점 중의 하나인 고분산을 줄여주며 이를 통해 단일 트리보다 훨씬 더 좋은 성능을 제공한다. 개별 트리간의 상관관계 문제를 피하기 위해 부트스트래핑 과정에서 훈련 데이터로부터 전체 p개 변수 중 무작위 m개의 변수만 선택한다. 랜덤 포레스트의 무작위성 주입은 트리를 보다 다양하게 만들고, 편향을 손해보는 대신 분산을 낮추어 훌륭한 모델을 만든다.
    랜덤 포레스트의 중요도: 1) 의사결정 트리를 기반으로 하는 모델로 특징의 상대적 중요도를 측정하기 쉬운 장점을 지니고 있다. 2) 무작위성이 주입된 랜덤포레스트 모델은 의사결정 트리와 달리 모든 특징에 대해 중요도를 특정함. 3) 랜덤 포레스트의 특징 중요도는 각 의사결정 트리의 특징 중요도를 모두 합한 후 트리의 수로 나눈 것으로, scikit-learn의 경우 중요도의 합이 1이 되도록 결과값을 정규화함.

    주요 정리

    1. Scikit-learn의 의사결정 트리 분류기는 CART 알고리즘의 분류에 대한 비용함수에서 지니불순도를 기본적으로 사용한다.
    2. Scikit-learn의 트리 기반 알고리즘은 수치형 특징을 입력 값으로 하기 때문에 범주형 특징은 원 핫 인코딩을 통해 이진 특징으로 변환한다.
    3. 혼동행렬은 실제 관측값을 얼마나 정확하게 예측했는지를 보여주는 행렬로 분류 모델의 성능 측정을 위한 평가지표 계산의 기반이 된다.
    4. 분류 모델의 평가지표로 정확도, 정밀도, 재혀율, F1 점수, 특이성, ROC 커브의 AUC(곡선하 면적)등을 사용한다.
    5. 랜덤 포레스트는 특징 기반 배깅 방법을 적용한 의사결정 트리의 앙상블로 의사결정 트리 모델의 고분산을 줄이며, 단일 트리보다 훨씬 더 좋은 성능을 제공한다.
    6. Scikit-learn의 랜덤 포레스트 특징 중요도는 개별 트리의 특징 중요도를 모두 합한 후 트리의 수로 나눈 것으로, 중요도의 합이 1이 되도록 결과값을 정규화한다.

    로지스틱 회귀

  • 베르누이 분포: 긍정 확률 P와 부정 확률 1-P를 갖는 랜덤 변수의 확률 분포
  • 베르누이 분포를 따르는 반응 변수의 확률 범위는 [0,1]
  • 선형 회귀는 특징 값의 일정한 변화로 반응 변수에도 일정한 변화가 일어난다는 가정을 하므로, 반응 변수가 확률을 나타낼 경우 가정이 유효하지 않음.
  • 일반화 선형 모델은 연결 함수를 사용해 특징의 선형 조합을 반응 변수와 연결 짓는 방법을 통해 선형 회귀의 갖어을 없앰.
  • 특징의 선형 조합을 정규 분포를 따르지 않는 반응 변수와 연계하려면 연결함수가 필요하다.
  • 로지스틱 회귀와 분류

  • 로지스틱 회귀의 반응 변수의 값 = 긍정(양성) 클래스의 확률
  • 반응 변수의 값 ≥ 임계치 => 긍정(양성)클래스를 예측
  • 반응 변수의 값< 임계치 => 부정(음성)클래스를 예측
  • 반응 변수는 “로지스틱 함수"를 사용해 특징의 선형 조합 함수로 모델링 됨
  • 𝑒 는 오일러 상수(2.718… 무리수), 𝑡 는 설명 변수의 조합 (𝛽_0+𝛽𝑥)
  • 로지스틱 회귀의 특징

    로짓 함수는 로지스틱 함수의 역함수: F(x)를 다시 특징의 조합으로 돌림

    주요정리

    1. 로지스틱 회귀의 반응 변수는 긍정(양성) 클래스의 확률 값을 가진다.
    2. 로지스틱 회귀의 반응 변수의 값이 임계치 이상이면 긍정(양성)클래스를 예측하고, 반응 변수의 값이 임계치 미만이면 부정(음성) 클래스를 예측한다.
    3. 반응 변수는 '로지스틱 함수(시그모이드 함수)'를 사용해 특징의 선형 조합 함수로 모델링된다.

    K-최근접 이웃

  • 분류나 회귀에 사용할 수 있는 알고리즘으로 단순해 보이지만 강력하고 유용한 기법
  • 비매개변수 머신러닝 모델
  • 훈련 단계에서 학습을 하지 않기 때문에 '게으른 학습'이라 부름
  • 테스트/검증 단계에서 테스트 관측값과 가장 근접한 훈련 관측값을 비교
  • 거리에만 의존하므로 차원의 저주에 따라 예측에 필요한 특징의 개수가 늘어나면 성능이 크게 저하됨.
  • k-최근접 이웃의 특징

    유클리드 공간의 점과 점 사이의 직선거리를 사용하며 K개의 가장 가까운 훈련 인스턴스를 골라 가장 많은 레이블을 분류로 선택한다. 특징의 표준화된 크기 조절(스케일링)이 필요하다. ->표준점수(Z-score)를 활용할 필요가 있음.

    차원이 늘어날수록점과 점 사이 거리가 멀어져서 분류기 자동이 어려워진다.

    주요정리

    1. K-최근접 이웃은 비매개변수 머신러닝 모델로 훈련 단계에서 학습을 하지 않기 때문에 '게으른 학습'이라 불리우며, 테스트/검증 단계에서 테스트 관측값과 가장 근접한 훈련 관측값을 비교 작업을 수행한다.
    2. K-최근접 이웃은 거리에만 의존하므로 차원의 저주에 의해 예측에 필요한 특징의 개수가 늘어나면 성능이 크게 저하된다.
    3. K-최근접 이웃 분류기에 성능측정은 혼도행렬을 이용해 정확도, AUC와 같은 다양한 평가지표를 활용 할 수 있다.
    4. 그리드 서치를 이용해 n_neighbor와 같은 K-최근접 이웃 하이퍼파라미터의 최적 값을 찾아낼 수 있다.

    나이브 베이즈

  • 확률 기반 분류기
  • 데이터가 각 클래스에 속할 예측 특징 확률을 계산
  • 나이브(Naive):예측한 특징이 상호 독립적이라는 가정 하에 확률 계산을 단순화
  • 베이즈(Bayes):입력 특징이 클래스 전체의 확률 분포 대비 특정 클래스에 속할 확률을 베이즈 정리를 기반을 계산
  • 나이브 베이즈의 목표는 n개의 특징을 가진 샘플 데이터 x가 주어졌을 때 k개의 클래스 중 하나에 속할 확률을 결정하는 것이다. 나이브 베이즈는 특징 간 서로 독립이라는 가정이 있으므로, n개의 특징에 대한 결합 조건부 분포는 특징들의 분포를 곱한 것으로 표현할 수 있음

    주요 정리

    1. 나이브 베이즈 분류기는 확률기반 분류기로 특징이 상호 독립적이라는 가정 하에 클래스 전체의 확률 분포 대비 특정 클래스에 속할 확률을 베이즈 정리를 기반을 계산한다.
    2. CountVectorizer를 사용해 불용어 제거와 단어의 출현 빈도 특징을 추출할 수 있다.
    3. 벡터 변환 시 훈련 데이터에 대해서는 fit_transform()을 사용하고, 테스트 데이터에 대해서는 transform() 메서드를 사용한다.
    4. 나이브 베이즈 분류기는 특징의 출현 빈도 계산용 초기값 스무딩 파라미터 alpha와 학습 데이터에 대해 사전 확률 사용을 결정하는 파라미터 fit_prior로 파라미터 튜닝을 할 수 있다.

    추천 엔진

  • 제품 정보와 사용자 정보와 같은 엄청난 양의 데이터를 분석하고 데이터 마이닝 방식을 기반으로 연관 추천을 제공하는기술이자 도구
  • 사용자가 얼마나 해당 항목을 좋아할 지 예측할 수 있는 수학적 모델 또는 목적 함수를 개발하는 것이 중요 과제
  • 많은 선택 가능한 제품들 사이에서 가장 좋은결정을 내릴 수 있도록 적절한 추천을 하는 것이 목표
  • 추천 엔진의 종류

    협업 필터링 추천 시스템: 사용자 선호도를 이용해서 선택 가능한 많은 집합들로부터 아이템을 필터링함.

    사용자 기반 협업 필터링: 사용자 주변의 취향을 고려해 추천

    1. 유사한 선호도를 가진 사용자를 발견
    2. 활성 사용자는 아직 등급을 매기지 않은 아이템에 대해 유사한 사용자가 제공한 등급을 참고해 활성 사용자에게 새로운 아이템을 추천

    아이템 기반 협업 필터링: 아이템의 유사 제품을 이용해 추천

    1. 아이템 선호도를 기반으로 아이템 유사도 계산
    2. 활성 사용자가 과거 평가한 아이템과 ㄱ자아 유사한 아직 평가하지 않은 아이템을 찾아서 아이템을 추천

    콘텐츠 기반 추천 시스템: 아이템의 콘텐츠 정보를 활용. 아이템 속성과 해당 아이템 속성에 대한 사용자 선호도를 사용해 추천

    하이브리드 추천 시스템: 콘텐츠 기반 추천 시스템 + 협업 필터링 추천 시스템

    상황 인식 추천 시스템: 추천 항목을 계산하기 전에 시각, 계절, 부위기, 장소 등의 상황을 고려하는 유형의 추천 시스템

    주요 정리

  • 추천엔진이란 제품 정보와 ㅅ용자 정보와 같은 엄청난 양의 데이터를 분석하고 데이터 마이닝 방식을 기반으로 연관 추천을 제공하는 기술이자 도구로, 협업 필터링, 콘텐츠 기반, 하이브리드, 상황 인식 추천 시스템 등이 있다.
  • 협업 필터링 추천 시스템은 사용자 선호도를 이용해서 선택 가능한 많은 집합들로부터 아이템을 필터링하며, 사용자 기반 협업 필터링과 아이템 기반 협업 필터링의 유형으로 나뉜다.
  • 사용자 기반 협업 필터링은 사용자 간 유사도 행렬을 만들어 활성 사용자가 아직 등급을 매기지 않은 아이템에 대해 유사한 사요자가 제공한 등급을 참고해 새로운 아이템을 추천한다.
  • 아이템 기반 협업 필터링은 아이템선호도를 기반으로 아이템 유사도 행렬을 만들어 활성 사용자가 과거 평가한 아이템과 가장 유사한 아직 평가하지 않은 아이템을 찾아서 추천한다.
  • 2) 학습내용 중 어려웠던 점

    오늘은 머신 러닝에 관한 간단한 짤막한 복습차원으로 작성한 것이다.

    3) 해결방법

    오늘은 복습이다. 이전에 읽었던 것을 다시 한 번 읽으면 된다.

    4) 학습소감

    이번 주 수업은 월말평가 준비 기간이라서 특별한 점은 없다. 공부는 계속하고 있다.

    0개의 댓글

    관련 채용 정보