일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 구름
- 코드트리
- DP
- 완전탐색
- es_java_home
- 카카오클라우드
- 소프티어
- java
- 백엔드 개발
- 동전 퍼즐
- On-Premise
- 자바
- objectstorage
- dockercompose
- BFS
- softeer
- 함수 종속성
- 카카오엔터프라이즈
- 인가인증
- s3
- 정렬
- DFS
- bfs
- MESSAGEBROKER
- bitmask
- sonarqube
- CODETREE
- 알고리즘
- db
- jsonwebtoken
- Today
- Total
목록분류 전체보기 (43)
wooing

다중 클래스 분류(Multi-class Classification) 3개 이상의 선택지 중에서 하나로 분류하는 문제이다. 다중 클래스 분류 문제를 해결하는 방법 중 하나로 소프트맥스 회귀가 있다. 소프트맥스 회귀 X: 입력 W: 가중치 B: 편향 Y^ 또는 H(X) : 출력 결과 소프트맥스 회귀는 선택지의 갯수만큼의 원소를 가지는 벡터를 만들고 모든 원소의 합이 1이 되도록 하며 각 선택지마다 소수의 확률을 할당한다. H(X) = softmax(WX + B) 소프트맥스 함수(Softmax function) z_i : k차원의 벡터에서 i번째 원소 p_i: i번째 클래스가 정답일 확률 각 선택지에 대한 확률을 구하는 공식은 아래와 같다. 즉 softmax(WX+b)를 하게 되면 결과값으로 [특성 갯수, 입..
인코딩이란? 인코딩이란 정보의 형태나 형식을 변환하는 처리나 처리 방식이다. 정수 인코딩 인코딩의 방식으로 데이터를 정수로 표현하는 방법이 있다. {red, green, blue} => {0, 1, 2} 그러나 일반적인 다중 클래스 분류 문제에서는 정수 인코딩 방식이 올바르지 않을 수 있다. 그 이유로는 선형회귀에서 사용된 MSE(평균제곱오차)를 예로 들어보자 실제 값이 red일때 예측값이 green이었다면 제곱 오차는 (0 - 1)^2이 된다. 실제 값이 red일때 예측값이 blue이었다면 제곱 오차는 (0 - 2)^2이 된다. 즉, red - green사이의 오차보다 red-blue사이의 오차가 더 크므로 green이 blue보다 red에 더 가깝다는 정보를 주는 것과 다름이 없다. 원-핫 인코딩 ..

로지스틱 회귀란? 두가지 선택지 중 정답을 고르는 문제를 이진 분류(Binray Classification)이라고 한다. 이진 분류 문제를 풀기 위한 대표적인 알고리즘이 로지스틱 회귀(Logistic Regression)이다. 이진 분류(Binary Classification) 왼쪽의 표와 같은 데이터셋이 있을때 오른쪽과 같이 그래프로 나타낼 수 있다. 로지스틱 회귀는 오른쪽의 그래프와 가장 유사한 S자 모양의 그래프를 만드는 모델이다. S자 모양을 그리는 함수를 찾는 이유로는 함수의 특징을 보면 알 수 있다. 성공과 실패를 구분하는 부분만 경사가 급하고 나머지는 경사가 완만하기 때문이다. S자 모양의 그래프를 그리는것 중 가장 널리 알려져 있는 시그모이드 함수(Sigmoid function)를 사용한다..

회귀(Regression)란? 종속 변수(목표)와 하나 이상의 독립 변수(예측 변수)간의 상관관계를 예측하는 것. 선형 회귀(Linear Regression) Concept 선형 회귀는 훈련 데이터셋을 관통하는 가장 합리적인 직선을 찾아내는 모델이다. 가설(Hypothesis) 분포를 가장 잘 나타내는 그래프, 선형 회귀에서는 직선의 방정식을 가설이라고 한다. 가설 H(x)에서 W는 가중치(기울기) b는 편향(y절편)이다. 비용 함수(Cost function) 위에 사진과 같이 데이터 셋이 분포해 있다고 가정해보자. 우리의 목표는 데이터 분포를 가장 잘 나타내는 직선을 찾는 것이다. 직선을 찾는 데 사용하는 방법으로는 데이터 값과 직선 값의 오차를 이용하는 것인데 이를 비용 함수라고 한다. 비용 함수 =..
문제print()함수를 사용하여도 터미널엔 결과가 나타나지 않아 디버깅을 돌려보았다.디버깅으로 코드를 순차적으로 탐색하면Backend TkAgg is interactive backend. Turning interactive mode on.이런 메세지를 출력한 후 print()함수가 정상적으로 작동한다. 해결import matplotlib.pyplot as pltplt.show()matplotlib라이브러리의 그래프 렌더 함수 호출 후에 print함수를 호출하면 해당 오류가 발생하는 것이었다. 그래프 렌더를 코드 최하단 부분에 위치시키니 해결되었다.

AVL 트리 개념 AVL트리는 이전 바이너리트리의 문제점인 밸런스가 맞지 않을 수 있다는점을 보완한 트리 구조이다. BF(Balance Factor)라는 변수를 가지며 이 변수값을 이용하여 트리 Rotation하여 균형을 맞춘다. BF(Balance Factor) : 균형인수라고도 부르며, (왼쪽 서브트리의 높이) - (오른쪽 서브 트리 높이)값 Rotate 종류 LL Rotate BF가 2일때, 왼쪽으로 치우친 경우에서 자식 노드가 왼쪽 -> 왼쪽순서로 있는 경우 BF가 비대칭인 서브트리를 오른쪽으로 한번 회전한다. 즉 서브트리 루트노드의 왼쪽 자식노드를 루트노드로 지정한다. RR Rotate BF가 -2일때, 오른쪽으로 치우친 경우에서 자식 노드가 오른쪽 -> 오른쪽순서로 있는 경우 BF가 비대칭인 ..

트리의 개념 트리란 그래프의 한 종류로 여러 서로다른 노드들과 그 노드들을 한방향으로 이어놓은 자료구조이다. 노드(Node) : 데이터를 저장해놓은 하나의 공간, 값(Value)와 자식정보를 가진다. 루트노드(Root Node) : 트리의 가장 최상단에 위치한 노드 리프노드(Leaf Node) : 트리의 가장 최하단에 위치한 노드 부모노드(Parent Node) : 트리구조에서 자식노드를 가진 노드를 말하며, 어떤 노드에 대한 상대적인 위치이다. 자식노드(Child Node) : 부모노드의 자식노드 형제노드(Sibling Node) : 동일한 부모노드를 가진 노드들 트리순회(Tree Traversal) 트리순회란? 트리의 모든 노드들을 거쳐가는 방법이다. 전위순회(Preorder Traversal): R..

이진트리의 개념 위의 그림과같이 두개 이하의 자식노드를 가진 트리를 이진트리라고 한다. 이진탐색트리(Binary Search Tree)의 개념 위에서 설명한 이진트리와 바이너리서칭의 개념을 합친 트리 구조이다. 부모노드로부터 값이 큰 노드는 오른쪽, 값이 작은 노드는 왼쪽에 위치한다. 이진탐색트리의 특징으로 맨 오른쪽에 위치한 노드는 가장 큰 값을 가진 노드이며, 맨 왼쪽에 위치한 노드는 가장 작은 값을 가진 노드이다. 또한 값을 찾을때 바이너리서칭으로 찾을수 있기 때문에 평균적으로 O(log N)의 속도를 가진다. 하지만 그림과같이 트리가 구성되어있다면 이진탐색트리의 기능을 하지 못하게 된다. 이진탐색트리의 구현 public class BinarySearchTree { Integer data; priv..