Data Park/Python9 [Python/ML] SVR (Support Vector Regression) 안녕하세요, 박성호입니다. 오늘은 저번 SVM으로 분류를 해보았는데요, 이번엔 회귀 SVM인 SVR (Support Vector Regression)을 공부해보겠습니다! □ SVR이란 앞서 이야기한 것처럼 SVM 알고리즘은 다목적으로 사용할 수 있습니다. 선형, 비선형 회귀에서도 사용할 수 있습니다. SVM 분류가 아니라 회귀에서 적용하는 방법은 목표를 반대로 하는 것입니다. 일정한 마진 오류안에서 두 클래스 간의 도로 폭이 가능한 한 최대가 되도록 하는 대신, SVM회귀는 제한된 마진 오류 (즉, 도로밖의 샘플) 안에서 도로 안에 가능한 한 많은 샘플이 들어가도록 학습합니다. 사이킷런의 LinearSVR을 사용해 선형 SVR 회귀를 적용해보겠습니다. import numpy as np np.rando.. 2023. 2. 8. [Python/ML] DBSCAN Clustering 안녕하세요~ 박성호입니다! 저번글에서 예고한 바와 같이 DBSCAN 개념과 실습 코드를 갖고 왔습니다. □ DBSCAN이란? DBSCAN (Density-Based Spatial Clustering of Application with Noise)은 아주 유용한 군집 알고리즘입니다. DBSCAN의 주요 장점은 클러스터의 개수를 미리 지정할 필욕 없다는 점입니다. DBSCAN은 특성 공간에서 가까이 있는 데이터가 많아 붐비는 지역의 포인트를 찾습니다. 이런 지역을 특성 공간의 밀집 지역(Dense Region)이라고 합니다. DBSCAN의 아이디어는 데이터의 밀집 지역이 한 클러스터를 구성하며 비교적 비어있는 지역을 경계로 다른 클러스터와 구분된다는 것입니다. 밀집 지역에 있는 포인트를 핵심 .. 2023. 2. 3. [Python/ML] Agglomerative Hierarchical Clustering (계층적 군집화) 안녕하세요, 원주 기술코치 박성호입니다. 오늘은 K-MEANS에 이어 계층적 군집화, Agglomerative Hierarchical Clustering에 대해서 글을 쓰게 되었네요. 바로 들어가보도록 하죠! □ Agglomerative Hierarchical Clustering(계층적 군집화) 개념 계층적 군집화는 말 그대로 데이터 하나하나를 계층에 따라 순차적으로 클러스터링 하는 기법입니다. 이 알고리즘은 각 데이터가 모두 나눠져있는 상태에서, 작은 단위로부터 클러스터링을 시작하여 모든 데이터를 묶을 때까지 반복하여 군집화를 진행합니다. 다음과 같이 12개의 index가 부여된 데이터가 있다고 가정하고, # 군집할 데이터 생성 from sklearn.dataset import make_blobs X,.. 2023. 1. 28. [Python/ML] K-MEANS Clustering 안녕하세요, '데 박' 입니다. 이 글은 군집화(Clustering)에서 핫하게 자주 쓰인다는 K-Means 군집화에 대한 글입니다. import mglearn mglearn.plots.plot_kmeans_algorithm() □ K-MEANS 개념 주어진 데이터를 K개의 클러스터 중심(Cluster centroid)을 찾아서 데이터를 묶는 알고리즘으로, 각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 동작합니다. 1. [Input data] : 데이터 입력 2. [Initialization] : 삼각형은 클러스터 중심이고 원은 데이터 포인트, 클러스터는 색으로 구분하고, 3개의 클러스터를 찾도록 지정했으니 알고리즘이 클러스터 중심으로 삼을 데이터 포인트 3개를 무작위로 초기화 3. [Assign.. 2023. 1. 27. [Python/ML] K-NN (K-Nearest Neighbors) 안녕하십니까, '데 박' 입니다. 비전공자들도 쉽게 시작할 수 있는 머신러닝 알고리즘인 K-Nearest Neighbors(K-NN)에 대해 공부해보도록 하겠습니다. □ K-NN이란 K-NN알고리즘은 분류와 회귀, 모두에서 쓰일 수 있는 간단한 머신러닝 알고리즘입니다. 왜냐하면 K-NN의 모델링 과정은 훈련데이터셋을 그냥 저장하는 것이 과정의 전부입니다. K-NN은 새로운 데이터 포인트에 대해 예측할 땐 알고리즘이 훈련 데이터셋에서 가장 가까운 데이터 포인트, 즉 "최근접 이웃" 을 찾습니다. SVM은 훈련 데이터를 기반으로 최대 마진을 찾고 결정 경계(Decision Boundary)를 만들어, 이 결정 경계를 통해 테스트 데이터를 분류합니다. 따라서 SVM과 비교하여 K-NN은 사전 모델링이 필요.. 2023. 1. 10. [Python/ML] SVM (Support Vector Machine) 안녕하세요, 데 박입니다. 오늘은 머신러닝을 배운다면 꼭 알아야할 머신러닝 모델, SVM (Support Vector Machine)에 대해서 공부해보도록 하겠습니다. □ SVM (Support Vector Machine) SVM은 매우강력한 선형, 비선형 분류, 회귀 이상치 탐색에도 사용할 수 있는 다목적 머신러닝 모델입니다. 머신러닝에서 인기있는 모델에 속하고 SVM은 특히 복잡한 분류 문제에 잘 들어맞으며 작거나 중간 크기의 데이터셋에 적합합니다. 또한 이 글에서는 선형, 비선형 분류를 다루었으니 이 점 참고해주시길 바라겠습니다. □ 라지마진분류 from sklearn.svm import SVC from sklearn import datasets iris = datasets.load_iris().. 2023. 1. 4. [Python/ML] Ada Boosting, Gradient Boosting 안녕하십니까! 데 박입니다! 저번 기술자료 Random Forest에 이어 Boosting 알고리즘도 다루게 되었네요,,ㅎㅎ Bagging을 사용한 Random Forest도 강력하지만 최근 머신러닝 알고리즘 트렌드는 Boosting 알고리즘이 훌륭한 성능을 나타내는데요. Random Forest를 이해하셨다면 Boosting을 이해하시는 것도 큰 어려움없이 잘 따라오실 겁니다! 그럼 가볼까요? □ Boosting이란? bagging은 병렬 , boosting은 직렬 부스팅은 약한 학습기를 여러 개 연결하여 강한 학습기를 만드는 앙상블 방법을 말합니다. 부스팅 밥법의 아이디어는 앞의 모델을 보완해나가면서 일련의 예측기를 학습시키는 것입니다. 부스팅방법에는 여러가지가 있지만 가장 인기있는 것은 에이다.. 2022. 12. 11. [Python/ML] Random Forest (랜덤 포레스트) 안녕하십니까 데 박 입니다!! 저번 Decision Tree 기술자료에 이어 Random Forest 기술자료를 업로드합니다^^ □ 앙상블 학습과 랜덤포레스트 의사결정나무가 "하나의 거대한 나무" 라고 한다면, 랜덤포레스트는 보다 "작은 나무로 이루어진 숲" 이라고 이해하면 됩니다! 무작위로 선택된 수천명의 사람에게 복잡한 질문을 하고 대답을 모은다고 가정합니다, 많은 경우 이렇게 모은 답이 전문가의 답보다 낫습니다. 이를 대중의 지혜라고 합니다. 이와 비슷하게 일련의 예측기 (분류, 회귀 모델)로부터 예측을 수집하면 가장 좋은 모델 하나보다 더 좋은 예측을 얻을 수 있을 것입니다 이를 '앙상블(ensemble)' 이라고 합니다! 앙상블 방법의 예를 들면 훈련 세트로부터 무작위로 각기 다른 서브셋을.. 2022. 12. 10. [Python/ML] Decision Tree (의사결정나무) 안녕하십니까 데 박 입니다!! SVM처럼 Decision Tree는 분류와 회귀 작업 그리고 다중출력 작업도 가능한 다재다능한 머신러닝 알고리즘입니다. 또한 작동 방식도 비전공자들이 이해하기 쉽게 학습할 수 있는 간편하고 빠른 알고리즘입니다. Decision Tree 는 최근에 자주 사용하는 강력한 머신러닝 '앙상블' 알고리즘 중 랜덤포레스트, LightGBM, XGboost의 기본 구성요소이기도 한데요!! 나중에 머신러닝 위주인 실무형 프로젝트를 위해서는 Decision Tree는 "필수"라고 확신합니다!! □ Decision Tree는 무엇인가 Decision Tree는 분류와 회귀 문제에 널리 사용하는 모델입니다. 기본적으로 결정 트리는 결정에 다다르기 위해 예/아니오 질문을 이어 .. 2022. 12. 10. 이전 1 다음