본문 바로가기
728x90
반응형

data science42

[Machine Learning] SVM in Python (2) - Margin, Regularization, Non-linear SVM, Kernel Predefined visualization function간단한 시각화를 위한 함수를 정의했다.def plot_svc_decision_boundary(svm_clf, xmin, xmax): w = svm_clf.coef_[0] b = svm_clf.intercept_[0] # At the decision boundary, w0*x0 + w1*x1 + b = 0 # => x1 = -w0/w1 * x0 - b/w1 x0 = np.linspace(xmin, xmax, 200) decision_boundary = -w[0]/w[1] * x0 - b/w[1] margin = 1/w[1] gutter_up = decision_boundary + margin gutt.. 2023. 5. 11.
[Machine Learning] SVM in Python (1) Decision Boundary Synopsissklearn의 iris dataset으로 간단히 binary classification을 해보자.import numpy as npimport matplotlib.pyplot as pltfrom sklearn.svm import SVCfrom sklearn import datasetsfrom sklearn.metrics import confusion_matrix SVC의 defalut kernel은 'rbf'이지만 linear로 먼저 살펴보자# Load Iris datasetiris = datasets.load_iris()X = iris["data"][:, (2, 3)] # petal length, petal widthy = iris["target"]# setosa 와 versicolor.. 2023. 5. 10.
[Machine Learning] SVM (Support Vector Machine) Intuition아래 2차원 평면에 두 개의 클래스(초록색과 흰색)이 있고, 이를 분류하는 가상의 초평면(2차원이므로 여기서는 직선)을 생각해보자. $B_1$과 $B_2$ 두 직선 모두 두 클래스를 완벽히 구분할 수 있다. 그렇다면 어떤 직선(고차원의 경우 초평면)이 더 좋은 것일까?직관적으로 우리는 $B_1$이 더 좋은 직선임을 알 수 있다. 그 이유는 각 클래스와의 거리가 가장 멀기 때문이다. support vector: hyperplane과 가장 가까운 data pointmargin: hyperplane과 support vector와의 거리. 일반적으로 margin이 클수록 좋은 SVM이다. Note: hyperplane은 street로, margin은 street width로 많이 비유된다.SVM.. 2023. 5. 9.
[Data Science] Bayesian Classifier Bayesian Classifierattribute와 class label이 random variable이라 생각하면 attribute tuple이 주어졌을 때 특정 class label일 확률이 최대가 되는 클래스가 정답이라는 접근방법이다. 이때 attribute는 $(A_1, A_2, \dots, A_n)$이고 class label은 $C$라 하면\[ \max P(C | A_1, \dots, A_n) \]이 되는 $C$를 찾는 것이다. 그렇다면 $P(C | A_1, \dots, A_n)$을 어떻게 구할까? 이 때, bayes theorem을 이용하면 다음과 같다.\[ P(C | A_1, \dots, A_n) = \cfrac{P(A_1, \dots, A_n|C) P(C)}{P(A_1, \dots, A_.. 2023. 5. 3.
[Data Science] Decision Tree in Python (with Scikit-learn) Decision Tree in Scikit learn 사이킷런 공식 문서에 따르면, 사이킷런의 Decision Tree는 CART 알고리즘을 바탕으로 최적화되어 구현되어있다. 그러나 categorical variable을 더이상 지원하지 않는다. https://scikit-learn.org/stable/modules/tree.html#tree-algorithms-id3-c4-5-c5-0-and-cart Decision Tree Tutorial with Iris dataset 사이킷런의 붓꽃 데이터셋을 이용하여 간단하게 decision tree를 학습해보자. load dataset and fit the classifier from sklearn.datasets import load_iris from skl.. 2023. 5. 1.
[Data Science] Decision Tree - Model Evaluation (Confusion Matrix, Metric, ROC Curve, AUC Score) Confusion MatrixClassification에 대하여 confusion matrix(혼동행렬)을 이용하여 결과를 볼 수 있다.Positive와 Negative는 각 클래스 이름이다.(이진 분류에서 P와 N을 주로 사용한다)각 분류에 대하여 True는 actual와 predicted가 일치하는 것을, False는 actual와 predicted가 불일치하는 것을 나타낸다.  (분류기) 모델의 정확도(Accuracy)는 Positive와 Negative를 얼마나 정확하게 분류한지에 대한 평가지표이다.\[ \text{Accuracy} = \cfrac{TP + TN}{TP + TN + FP + FN} \] Class Imbalance Problemaccuracy는 imbalanced class에서 모.. 2023. 4. 30.
728x90
반응형