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

과적합(Overfitting)이란? 과적합은 기계 학습 모델이 학습 데이터에 대한 정확한 예측을 제공하지만 새 데이터에 대해서는 제공하지 않을 때 발생하는 바람직하지 않은 기계 학습 동작한다. 데이터 과학자는 기계 학습 모델을 사용하여 예측을 수행할 때 먼저 알려진 데이터 세트에 대해 모델을 훈련시킨다. 그런 다음 이 정보를 기반으로 모델은 새 데이터 세트에 대한 결과를 예측하려고 시도한다. 과적합 모형은 부정확한 예측을 제공할 수 있으며 모든 유형의 새 데이터에 대해 제대로 수행되지는 않는다. 과적합을 막는 방법들 1. 데이터 양을 늘리기 모델은 데이터의 양이 적을 경우, 해당 데이터의 특정 패턴이나 노이즈까지 쉽게 암기하기 되므로 과적합 현상이 발생할 확률이 늘어난다. 그렇기 때문에 데이터의 양을 늘..

퍼셉트론 이란? 퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이다. 실제 뇌를 구성하는 신경 세포 뉴런의 동작과 유사하다. 퍼셉트론의 정의에서 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이라고 했다. 왼족의 그림과 같이 다수의 입력 x들에 각각 가중치 W를 곱해 출력값 y를 만들어내는 알고리즘 이다. 이때 가중치W의 값이 클수록 해당 입력 값이 중요하다는것을 의미한다. 가중치가 곱해진 입력값들을 통해 출력값을 변경시키는 함수를 활성화 함수(Activation Finction)이라고 한다 퍼셉트론은 단층 퍼셉트론, 다층 퍼셉트론으로 나눌 수 있다. 단층 퍼셉트론은..

다중 클래스 분류(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..