분류 전체보기(289)
-
Spam Classifier - Theory
* 첨부된 자료의 저작권은 CORSERA에 있음을 미리 밝힙니다. Building A Spam Classifier 이번 시간에는 그동안 배운 Machine Learning의 지식을 응용해서 스팸 메일을 걸러내는 Spam Classifier를 모델링해보았다.우선은 모델링을 하기 위해 어떤 방식으로 문제를 설정하고 Feature들을 설정해야할지를 고민해야 한다.이때, 초기 모델은 단순하며 빠르게 구현할 수 있는 것으로 설정하는 것이 좋다. Spam Classifier는 Supervised Learning(지도학습)으로 학습을 시키는 것이 좋다.지도학습이란, 데이터를 주고 그 데이터가 가져와야할 바람직한 결과까지 입력하여 학습을 시키는 것이다.이 문제의 경우 스팸 메일 데이터를 넘겨주면서 이것이 스팸메일이라는..
2019.02.14 -
[BOJ_14889 | DFS & BackTracking] 스타트와 링크
풀이 이 문제 역시 삼성 SW 역량테스트 기출문제 였다. DFS 백트래킹에 관한 간단한 문제였는데, 백트래킹이란, 모든 경우의 수를 모두 고려하는 알고리즘으로써,위 주어진 문제와 같이 팀을 나눌 수 있는 모든 경우의 수를 고려하는 데에 적합하다. 우선 DFS함수를 0~n/2 - 1 에 해당하는 Vertex에서 실행한다. 절반만 돌리는 이유는 순열이 아니라 조합을 구하는 문제이기 때문에 어차피 한 팀을 구하면 나머지 팀이 자동으로 결정되기 때문에 시간낭비를 막기 위한 처리였다. 예를 들어0에서 시작한 DFS는 우선 점을 하나 방문했으므로 isVisit[0] = true로 바꿔주고 방문한 점의 개수를 나타내는 len의 길이를 1 증가시켜 준다.len == n/2인 경우 하나의 조가 짜여진 경우이므로 팀을 나..
2019.02.14 -
[BOJ_14503 | DFS] 로봇 청소기
풀이 삼성 SW 역량 테스트 기출문제로, DFS의 간단한 응용 능력을 물어보는 문제였던 것 같다. DFS를 수행하는 방법이야 재귀를 이용해서 처리하면 되지만, 이 문제의 경우에는 DFS를 실행하는 순서를 처리하는 방식이 살짝 까다로운 부분이 있었다. 우선, 문제에서 제시한 방향에 따라 direction변수를 설정해 주었다. 0 - North1 - East2 - South3 - West 그리고 LeftRotate의 경우 direction변수가 들어왔을 때 그 방향의 왼쪽으로 회전한 방향을 출력하도록 처리하였다.예를 들어, 0이 들어오면 북쪽의 좌회전 방향인 서쪽을 가리키는 3을 출력하는 식이다. 그리고 dx[], dy[] 배열을 선언하고, 제시한 방향에 맞게 x, y를 변화시키는 값을 저장하였다.예를 들어..
2019.02.14 -
[BOJ_1927 | Heap] 최소 힙
풀이 최소 힙(MIn Heap)을 직접 구현하는 문제였다.Heap은 연결 리스트로 구현하는 것 보다는 배열(Array)을 이용해서 구하는 것이 정신건강에도 좋고 구현하기 편리하다. 배열로 힙을 구현하면, 물론 데이터의 수를 알 수 없는 경우에는 저장 공간의 낭비가 생길 수 있겠지만그 경우에도 추가적인 메소드 구현을 통해 공간을 줄여주거나 공간을 늘려주면 되므로 큰 무리는 없다.가장 좋은 점은 Left Child, Right Child, Parent의 데이터를 index만으로 접근할 수 있다는 점이다. index 0부터 시작하는 경우에는Left Child = i*2+1Right Child = i*2+2Parent = (i-1)/2로 접근할 수 있다. 소스 코드 1234567891011121314151617..
2019.02.13 -
[BOJ_14502 | DFS] 연구소
풀이 설마 이렇게 벽을 3개 세울 수 있는 모든 경우의 수를 다 확인해 봐야하는 건가? 라고 생각하면서 문제를 풀었던 것 같다. 하나의 벽을 세우기 위해서 행과 열을 세는 n*m반복문을 세워야하고 벽을 3개 세워야 하므로벽을 세우는 데만 반복문을 6개를 사용했고, 또 DFS를 위해 반복문을 두개 또 집어넣어야 해서결과적으로는 반복문을 8개나 집어넣는 어마무시한 일이 발생해버렸다. 하지만 애초에 n
2019.02.12 -
Bias & Variance
* 첨부자료의 모든 저작권은 COURSERA에 있음을 미리 밝힙니다. Bias & Variance 이번 포스팅에서 살펴볼 내용은 우리가 Machine Learning 을 통해 구현한 알고리즘의 성능을 진단하고, 오류를 수정하는 방법과 절차에 대한 것이다. 우리가 예측한 알고리즘을 검증하는 방법은 다음과 같았다.1. 알고리즘을 학습시킬 데이터를 더 모은다. 2. 비슷한 류의 Parameter set으로 알고리즘을 수행해본다.3. 추가적인 Parameter를 알고리즘에 집어넣는다.4. Polynomial 한 Parameter를 추가한다.5. Regularization parameter lambda의 값을 증가시키거나 감소시킨다. (즉, 각 항의 영향력을 감소시키거나 증가시켜본다.) 하지만 여전히, 위의 방법..
2019.02.12