분류 전체보기14 타입 힌트(Type Hinting) - Type annotation LeetCode 알고리즘 문제를 vscode에서 풀 때 계속해서 NameError가 발생하여 type annotation에 대해 알아보게 되었습니다. 예외가 발생했습니다. NameError name 'List' is not defined # 동적 프로그래밍 언어 파이썬은 동적(Dynamic) 프로그래밍 언어입니다. 따라서 파이썬 인터프리터는 변수의 타입을 추론하여 코드를 실행합니다. 또한 파이썬에서 변수의 타입은 고정돼 있지 않기 때문에 개발자가 원하면 변수의 타입을 자유롭게 바꿀 수 있습니다. 이렇게 파이썬에서는 타입을 유연하게 처리할 수 있기 때문에 다른 언어에 비해 간결한 코드를 작성할 수 있다는 장점이 있습니다. 이러한 파이썬의 유연함은 소규모의 프로젝트를 작성할 때 큰 장점이 됩니다. 하지만 프.. 2022. 8. 29. Gradient boost Gradient Boost는 Bagging과 Boosting이라는 앙상블 학습법 중 Boosting에 해당하는 대표적인 모델입니다. 따라서 Gradient Boost를 이해하기 위해서는 앙상블(Ensemble)이 무엇인지 알아야 합니다. 앙상블(Ensemble)이란? 앙상블(Ensemble)은 여러 개의 Decison Tree를 결합하여 학습하는 머신러닝 기법입니다. 더 정확히 말하자면 여러 개의 약 분류기(Weak Classifier)를 결합하여 강 분류기(Strong Classifier)를 만드는 것입니다. 앙상블을 사용하면 하나의 Decision Tree를 사용할 때보다 더 좋은 성능을 냅니다. 예를 들어, 각각 0.5의 정확도를 가지는 분류기 A, B, C가 있다고 해봅시다. 우리는 더 높은 정확.. 2022. 8. 29. SVM(Support Vector Machine) SVM은 널리 쓰이는 지도 학습 알고리즘입니다. 주로 분류 또는 회귀 문제를 다룰 때 사용합니다. SVM은 마진(margin)이 최대화된 결정 경계(Decision Boundary)을 찾아 두 범주를 분류해내는 선형 분류 기법입니다. 위 그림에서 결정 경계는 B1과 B2입니다. 한 눈에 보아도 B1이 B2 보다 클래스를 더 여유 있게 분류하고 있습니다. margin은 데이터를 2개의 클래스로 나눈 결정경계에 대한 신뢰구간이라고 할 수 있습니다. 현재의 결정 경계를 최대한 신뢰하되, 동시에 의심의 여지도 최대한 마련해 두는 것이죠. 의심의 여지를 최대한 마련해 둔다는 것은 현재의 결정 경계가 unseen data에 대해서는 완벽하지 않을 수 있음을 인정하고 현 상황에서 마진이 최대가 되는 기준을 택하는 것.. 2022. 8. 14. L1 Regularization & L2 Regularization What is Regularization? 머신러닝에서 Regularization(정규화)는 overfitting을 방지하기 위해 모델의 복잡도를 조정하는 것입니다. 이때의 Regularization(정규화)는 Normalization(정규화)와 다릅니다. 번역은 둘 다 '정규화'로 되지만 Regularization(정규화)와 달리 Normalization(정규화)는 feature scaling의 한 종류로 데이터의 scale이 매우 다를 경우(최댓값과 최솟값의 범위가 너무 큰 경우)에 feature의 데이터 간 다른 특성으로 인해 왜곡이 발생하지 않도록 데이터에 변형을 가하는 것입니다. Regularization(정규화)는 특정 가중치가 너무 과도하게 커지지 않도록 모델의 학습을 방해하는 것이라고 할 .. 2022. 8. 12. 이전 1 2 3 4 다음