코딩(39)
-
[BOJ_2805 | Binrary Search] 나무 자르기
풀이 이분 탐색을 통해 문제를 해결하면 주어진 시간 안에 문제를 해결하는 알고리즘을 구현할 수 있다.먼저 주어진 나무들의 길이를 배열에 저장하고 Arrays.sort를 통해 빠르게 길이순으로 정렬한다.이분탐색의 탐색범위는 0부터 길이가 가장 긴 나무의 길이까지이며(left = 0, right = arr[arr.length-])mid 는 0부터 시작해 반복문의 매번 마지막에는 (left+right)/2 로 재설정해준다.각각의 반복문이 돌아갈 때마다또 다른 반복문을 통해 mid의 길이에 따른 잘린 나무들의 길이의 합을 구해준다.이 길이가 m과 같으면 mid의 값을 출력하고, 아닌 경우 각각 mid의 값을 갱신하여 반복문을 돌게 한다. 하지만 한 가지 주의해야 할 점이 있는데문제의 조건을 잘 살펴보면, 높이가..
2019.02.05 -
Logistic Regression with Octave
Programming Exercise 2 : Logistic Regression 이번 프로그래밍 과제에서는 Octave를 이용하여 Logistic Regression을 모델링하고실제 데이터를 이용해서 결과를 분석해야 했다. 구현해야 할 함수들은 다음과 같았다. ex2.m - Octave/MATLAB script that steps you through the exercise ex2 reg.m - Octave/MATLAB script for the later parts of the exercise ex2data1.txt - Training set for the first half of the exercise ex2data2.txt - Training set for the second half of the ..
2019.02.04 -
MachineLearning - The Problem of OverFitting
Machine Learning - The Problem of OverFitting 지금까지 Machine Learning을 학습하면서 배운 알고리즘들을 간단하게 복습해보자.우선, 기계학습이라는 것은 컴퓨터에게 무엇을 어떻게 하라고 명확하게 지시하지 않은 상태에서 데이터와 결과 Set을 제공하면, 컴퓨터가 그에 따른 분석모델을 적용해서 가설 함수를 세우고, 새로운 데이터가 제공되었을 때 가설 함수를 바탕으로 결과를 예측하여 출력하는 것을 의미한다. 이 가설 함수는 데이터와 결과 Set이 제공될 때마다 전체 오차가 적어지는 방향으로 정확성을 높여간다. 데이터와 결과 Set을 분석하는 방법은 학습한 바로는 크게 두 가지가 있었다.Linear Regression 모델과 Classification 모델이었다. L..
2019.02.03 -
MachineLearning - Classification(3)
Machine Learning - Classification(3)MultiClass Classification : One - vs - All 지금까지 Classification에서는 One vs One 모델을 주로 다루었다. Linear Regression 모델과는 다르게 결과값이 연속적인 값이 아니라 이산적인 값으로 분포하기 때문에, 기계학습을 통해 Decision Boundary를 구하고, 그 Boundary를 기준으로 y = 0 인지, 1인지를 판단하는 과정을 거쳤다. 하지만 실생활에서는 One vs One 모델 보다는 One vs All 모델을 통해서 결정해야 하는 경우가 더 많다. One - vs - All 모델은 위의 그림처럼 y = 0 ~ n 까지의 값을 가진다. y값을 결정하는 기본적인 아..
2019.02.03 -
[BOJ_14501 | DFS] 퇴사
풀이 맨 처음에는 Dynamic Programming 방법으로 문제를 풀려고 시도했으나, 문제를 읽고 예제 몇개를 그림으로 그려가면서 시도를 해보니 DFS로 문제를 푸는 편이 더 간편할 것 같다는 생각이 들었다. DFS로 문제를 푸는 방법은 비교적 간단하다.큰 틀에서 보면 이중 For 문을 돌리는 것인데, 제시된 문제 예제를 기준으로 설명해보자면,1일부터 7일까지 반복문을 돌리면서 각각의 날짜를 시작으로 하는 경로를 찾는다.그리고 각각의 날짜에서 상담을 수행한 후에, 도달하게 되는 날짜를 다시 DFS에 집어넣어 반복한다. 예를 들어 1로 시작했다면, 1로 시작할 수 있는 경로는1 -> 4 ....1 -> 5 ....1 -> 6 ....등이 될 것이다. 이 모든 경로를 탐색하면서 경로에 놓여있는 Pi값을 ..
2019.02.02 -
MachineLearning - Classification(2)
Machine Learning - Classification(2) 앞서 Classification에서 사용하는 가설함수 h의 식이 Linear Regression Model에서 사용하는 가설함수의 식과는 다르기 때문에 비용함수도 조금은 수정을 가할 필요가 있다. 기존의 Linear Regression Model에서 사용하는 비용함수의 식을 그대로 사용하게 되면 "Non - Convex" 한 함수가 도출될 가능성이 높아지게 되는데, 이 "Non - Convex" 한 함수란, 볼록함수와는 달리 극점이 굉장히 많을 수 있는 함수(아래 그림 참조) 이기 때문에, Gradient Descent를 통해 구한 최솟값이 Local Minimum일 뿐, Global Minimum값은 아닐 수 있는 가능성이 생긴다. 따라..
2019.02.01