최단경로 알고리즘에는 다익스트라, 벨만포드, 플로이드 워셜 ... 이 가장 대표적인 알고리즘이다. 이번 포스팅은 벨만포드에 대해 알아보도록 하겠다. 이미 다익스트라 알고리즘을 알고있는 상태에서 왜 벨만포드 알고리즘이 따로 존재하고, 사용되는 것일까? 다익스트라 알고리즘와 벨만포드 알고리즘은 둘다 최단거리를 구할 수 있는 알고리즘임에 분명하다. 하지만 두 알고리즘에는 차이점이 존재한다. 다익스트라 알고리즘의 단점을 생각해보면 알 수 있다. 다익스트라 알고리즘은, 모든 간선의 길이가 양수(+)일때 최단거리를 보장한다. 혹여나 음수(-)의 간선이 존재한다면.. 최단거리를 구할 수 있지 못할 수도 있다. 벨만포드는 이러한 다익스트라의 단점을 해결할 수 있는 최단거리 알고리즘이다. 즉, 간선이 어떤 형태 ( 양수..
https://www.youtube.com/watch?v=VHky3d_qZ_E&t=212s [해당 영상으로 공부하였습니다.] XGBoost > GBM의 성능, 스케일, 속도를 최적화하기 위해서 극한으로 빠르게. > 단, 약간의 성능 저하가 발생할 수 있음.(근사기법때문에 ,approximation) 데이터를 더 많이 사용할 수 있고, 병렬처리 가능하기때문에 근사기법의 단점을 극복할 수 있다. XGBoost는 GBM이지만, 보다 빠르게 해를 찾아감, 스케일링?(무슨뜻?) 1. Split finding algorithm 기본 tree - best split를 찾기위해 모든 구역 전수조사 ( 항상 최적의 구간을 찾을 수 있음. Greedy) - 메모리에 데이터 자체가 다 들어가지 않을 정도로 많은 데이터라면 ..
해당 강의를 참고하여 공부하였습니다. https://www.youtube.com/watch?v=4C8SUZJPlMY 기존 GBM은 모든 feature, 모든 객체(row)에 대해 Scan을 진행하여 imformation gain을 측정해야 하기때문에, 시간적으로 오래 걸리며, sequential함. ( parallel 하지못함.) 위와같은 시간적 문제점을 해결하기 위해 XGBoost는 Bucket이라 부르는 단위로 쪼갠 후 Bucket안에 있는 데이터의 information gain을 측정하여 최적의 split을 approximate하는 방식을 사용하여 parallel할 수 있도록 만듬. > 모든 data instance을 스캔하는 것을 완하시켜 속도를 빠르게 함. Bucket = HistoGram-ba..
이전 포스팅에서는 마할라노비스 거리가 무엇인지 알아보았다. 마할라노비스 거리를 모른다면 해당 링크를 참고하여 공부하고 오길 바란다. https://angeloyeo.github.io/2022/09/28/Mahalanobis_distance.html 마할라노비스 거리 - 공돌이의 수학정리노트 angeloyeo.github.io MCD모델에 들어가기 앞서, 기본적으로 몇가지 알고 넘어가야 할 것이 존재한다. 1) 공분산 2개의 확률변수의 상관'관계' 만을 나타내는 값 ( Positive- 양수, Negative- 음수, None- 0 인지 관계만 나타내줌. 강도 X) 관계만 알 수 있는 이유는... X와 Y 두 변수가 있을때, 어느 한쪽의 단위 (e.g.) 몸무게를 Kg 으로 표시하던 걸 g으로 표시하게 되..
container docker run -it --gpus all --name - 컨테이너 생성 docker container ls/ docker ps - 실행중인 container 확인 docker ps -a - 모든 컨테이너 확인(실행 , 종료된) docker start - 종료된 Container를 시작 docker attach - command안에서 aws command 들어가듯 접속 Ctrl + P / Q - container command 탈출 ( -it 옵션이 없다면, 나가는 순간 컨테이너 종료 / 있다면 종료 안됨) docker rm - 컨테이너 삭제 docker cp :// images docker pull : - 이미지 받아오기 docker images - 현재 있는 이미지 확인 dock..
백준 1450번 (냅색문제)를 풀기위해 학습한 Meet in the middle 알고리즘을 정리하고자 한다. https://www.acmicpc.net/problem/1450 1450번: 냅색문제 첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수, C는 109보다 작거나 같은 음이 아닌 정수이다. 둘째 줄에 물건의 무게가 주어진다. 무게도 109보다 작거나 같은 자연수이다. www.acmicpc.net Meet in the middle, 말 그대로 중간에서 만나자! 그럼 왜 중간에서 만나야 하며, 어떻게 중간에서 만날까? 위 문제를 바탕으로 한번 소개해 보겠다. 위 냅색 문제는 세준이는 N개의 물건을 가지고 있고, 최대 C만큼의 무게를 넣을 수 있는 가방을 하나 가지고 있다. N개의 물건..
머신러닝중에 이상치 탐지 머신러닝을 찾다보니 MCD( Minimum Covariance Determinent ) 모델을 알게되었다. MCD모델을 공부하여 정리하는 글을 작성해보고자 한다. MCD는 최소 공분산 행렬을 만드는 데이터셋을 구축하고, 해당 데이터 셋의 피쳐들을 고려하여 데이터셋을 정규화시켜 유클리드 거리를 구하게 된다. 즉, 피쳐간 관계(맥락)을 고려 + 유클리드 거리 = 마할노비스 거리 가 되는 것이다. 마할라노비스 거리를 기준으로 이상치라 판단하기 때문에 마할라노비스 거리에 대해 정리해보고자 한다. https://angeloyeo.github.io/2022/09/28/Mahalanobis_distance.html 마할라노비스 거리 - 공돌이의 수학정리노트 angeloyeo.github.io..
이번 포스팅에서는 GBM Regressor 안에 Decision Tree(DT)가 어떤 식으로 split하는지 알아보고자 한다. 이미 DT포스팅에서 어떻게 Split 하는지 포스팅을 했다. 그런데 왜 같은 내용을 또 하냐면... DT에서는 split 기준(criterion)공식을 squared_error로 사용한다. 하지만, GBM속 안 DT는 Friedman mse를 사용한다고 한다. 이 차이점 때문에 다시 한번 손으로 직접 구하는 포스팅을 하는 것이다. * 참고로, 기준(criteriion)의 의미는 IG(Information Gain)을 구할때 어떤 방식으로 구할지에 대한 기준이라 보면 된다. 혹시, 기존 DT에서 IG(Information Gain)을 구하는 방식을 모른다면, 한번쯤 보고 오는 것..
- Total
- Today
- Yesterday
- github
- 이미지
- Flask
- 도커
- Tree
- 자바
- 설치
- docker
- 깃
- torch
- 계산
- python
- gbm
- 입력
- GIT
- 오류
- CNN
- java
- 뜯어보기
- 삭제
- DeepLearning
- GPU
- 파이썬
- 정리
- 입출력
- 딥러닝
- DT
- 초보자
- GNN
- boosting
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |