데이터사이언스/머신러닝 12

올바른 딥러닝 모델 학습을 위한 체크리스트 | 오버피팅과 일반화에 관하여

요새 딥러닝 모델 성능 개선에 힘쓰고 있는데, 누구나 그렇듯 과대적합이 발목 잡고 있다. 해결 방법 조사 중에, 학생들이 주로 과대적합과 일반화에 대해 오해하는 요소들을 다룬 논문을 발견하여서 이해한 부분을 간략하게 정리해본다. https://arxiv.org/abs/2209.03032 Machine Learning Students Overfit to Overfitting Overfitting and generalization is an important concept in Machine Learning as only models that generalize are interesting for general applications. Yet some students have trouble learning ..

상호 작용(Significant Interaction)과 상관 관계(Correlation) 차이

"Significant Interaction"과 "correlation"는 통계 분석에서 다른 의미를 가지고 있다. "Significant Interaction"은 통계 분석에서 두 변수 간의 관계가 다른 조건에 따라 달라지는 것을 의미한다. 예를 들어, 두 가지 변수 A와 B가 있을 때, 이들 사이의 상호작용이 있는지를 확인하는 것이다. 상호작용이 있다면, A와 B의 관계가 어떤 특정 조건에 따라 달라질 수 있다. 이는 통계적으로 유의미한 패턴으로 나타나며, 어떤 상황에서 A와 B 간의 관계가 다르게 나타날 수 있음을 보여준다. 반면 "Correlation"는 두 변수 간의 관련성을 파악하는 것이다. 두 변수 간의 어떤 관계가 있는지, 그 관계가 얼마나 강한지를 분석하는 것이다. 일반적으로 상관계수를 ..

[머신러닝] Training set과 Test set에 동일하게 Label Encoding 적용하는 방법

트레이닝셋에는 없는 카테고리 데이터가 테스트셋에 존재할 때, 레이블 인코딩을 적용하려면 주의해야 한다. 이를 위해 트레이닝셋과 테스트셋을 합친 다음 레이블 인코딩을 적용한 후, 다시 분리하면 된다. 아래는 코드 예시 from sklearn.preprocessing import LabelEncoder # 트레이닝셋과 테스트셋을 합칩니다. combined_data = pd.concat([train_data['카테고리'], test_data['카테고리']], axis=0) # LabelEncoder 객체를 생성하고 합쳐진 데이터에 적용합니다. label_encoder = LabelEncoder() combined_data_encoded = label_encoder.fit_transform(combined_da..

핸즈온 머신러닝 2 - 2장 End-to-End 머신러닝 프로젝트 요약

코드 실습은 제외하고 전반적인 개요를 요약하였다. 기계학습 프로젝트 계획을 수립하여 실행하고 배포하는 과정을 크게 8단계로 구분한다. 위 교재에선 캘리포니아 주택 가격 예측을 주제로 8단계 과정을 따라 프로젝트를 수행한다. 인구, 소득 등의 특성을 사용하여 중간 주택 가격 예측, 다중 회귀, 단변량 회귀 문제에 해당한다. 1. Look at the big picture. 어떤 것을 해결하고자 하는지 문제를 규명하고, 일련의 데이터 처리 구성 요소를 데이터 파이프라인이라 하는데, 이 단계에서 큰 틀을 잡는다. 또한 해결 또는 개선하고자 하는 문제의 수행 척도(Performance Measure)를 정의한다. (ex. MSE) 2. Get the data. 프로젝트를 수행할 환경을 구성하고(프로그래밍 언어 ..

핸즈온 머신러닝 2 - 1장 기계학습 개요

https://www.youtube.com/playlist?list=PLJN246lAkhQjX3LOdLVnfdFaCbGouEBeb 핸즈온 머신러닝 2 핸즈온 머신러닝 2 플레이리스트 핸즈온 머신러닝 2: https://tensorflow.blog/handson-ml2 깃허브: http://bit.ly/homl2-git 슬라이드: http://bit.ly/homl2-slide 유튜브: http://bit.ly/homl2-youtube www.youtube.com https://github.com/rickiepark/handson-ml2 GitHub - rickiepark/handson-ml2: 핸즈온 머신러닝 2/E의 주피터 노트북 핸즈온 머신러닝 2/E의 주피터 노트북. Contribute to rick..

앙상블 - 배깅 공부하다 끄적

앙상블의 핵심은 다양성 (데이터 / 모델의 다양성으로 나뉨) 배깅의 가장 큰 특징은 데이터 복원 추출한다는 점이다. 부트스트랩(Bootstrap)이란? - 복원 추출해서 구성한 데이터 샘플 단위 (부트스트랩은 원래 데이터 샘플과 같은 크기여야 한다) ex) 원레 데이터 [1, 2, 3, 4, 5] / 부트스트랩 샘플 [2, 5, 4, 4, 1] 부트스트랩 개수는 무한하게 설정할 수 있다. 모든 데이터가 부트스트랩에 하나 이상 포함될 확률은 약 2/3 정도? 복원 추출 -> 학습의 관점에서는 검증 신뢰도가 높아짐 모든 데이터 샘플을 한 번 이상 검증함으로써 일반화에 유리함 복잡도가 높은 알고리즘(분산이 높은)을 개별적으로 학습을 하여 결합하면 효과적이라 한다. 배깅은 모델보다는 테크닉에 가깝다고 한다. 모..

전이학습(Transfer learning)과 Fine-tuning

인공지능론 프로젝트를 준비하면서 CNN을 활용한 분류 모델을 구축하려는데, 처음부터 가중치를 학습시키지 않고 전이학습을 통해 다른 모델의 가중치를 끌어다 쓴다고 한다. 생소한 개념이기에 아래 링크 내용을 정리해보았다. 실상 야매로 번역한 수준이니 링크를 직접 들어가보는게 보다 정확하다. https://keras.io/guides/transfer_learning/ Keras documentation: Transfer learning & fine-tuning Transfer learning & fine-tuning Author: fchollet Date created: 2020/04/15 Last modified: 2020/05/12 Description: Complete guide to transfer l..

선형대수 개념 정리 (4)

Determinant (행렬식) 선형변환 전후로 증가/감소한 면적의 비율을 의미 Definiteness 대칭행렬 A에 대하여, 2차 형식의 부호에 따라 Positive Definite를 구분짓는다. - Positive Definite와 Negative Definite는 Full Rank이다. - 행렬 A에 대한 Gram Matrix는 언제나 Positive Semldefinite이고, A가 Full Rank라면 Positive Definite이다. Single Value Decomposition (SVD) Eigendecomposition보다 일반적이고 자주 쓰임 -> Eigendecomposition과 달리 SVD는 직각행렬도 분해 가능하기 때문. 역행렬 구함(Moore-Penrose inverse) ..

선형대수 개념 정리 (3)

Orthogonal Matrices의 특징 Orthogonal Matrices는 Transpose한 것과 역행렬이 같다. 어느 벡터를 Orthogonal Matrices로 선형변환을 해주었을 때, 결과 벡터와 각도와 길이가 같다 Projection(투영) Projection Matrix P는 제곱해도(선형변환해도) 자기 자신이 나오는 행렬을 의미 이런 mapping을 projection이라고 한다. 아래는 Projection Matrix 예시. 1차원(직선) 공간에 Projection x: 측정값 벡터 b: 프로젝티드 벡터 (또는 basis vector) P: 투영 행렬 Px-x : 오차 벡터 직선은 b의 선형결합으로 이루어진 공간(span) 최적 예측값은 x벡터를 b벡터에 수직으로 투영시킨 값이다. 오..

선형대수 개념 정리 (2)

선형변환(Linear Transform) v = Ax x -> Ax -> v (m x n)행렬 A는 (m x 1)벡터 x와 (n x 1)벡터 v를 mapping해준다. 아래 두 성질을 만족하면 선형: A(x1 + x2) = A(x1) + A(x2) A(px1) = pA(x1) Range(image) & Null Space(kernel) R(A) -> 모든 x를 A 선형변환에 대입했을 때 나올 수 있는 공간. 치역이라고 생각하면 이해 쉬움. ㄴA의 컬램 벡터들의 span과 같다. N(A) -> x중에서 A로 선형변환 했을 때 0으로 만드는 집합. Rank 한 행렬 안에서 서로 독립인 컬럼 벡터의 수는 column rank. 한 행렬 안에서 서로 독립인 열 벡터의 수는 row rank. 행렬A가 (m x n..