본문 바로가기

2017/0572

머신러닝(Machine Learning) 5장 - Logistic (Regression) Classification - 머신러닝(Machine Learning) 5장- Logistic (Regression) Classification - Logistic Classification은 Classification 알고리즘들 중에서 굉장히 정확도가 높은 알고리즘으로 알려져 있다. 따라서 실제 문제에도 바로 적용해볼 수 있을 정도로 좋은 알고리즘이다. 또한 머신러닝의 Neural Network과 Deep Learning의 중요한 요소로 작용하기 때문에 자세히 알아놓아야 한다. 이번 시간에는 Classification 중에서 Binary Classification으로 둘 중에 무엇에 속하는지를 판별하는 알고리즘을 생각할 것이다. 예를 들면 스팸 감시가 될 수 있다. 특정 메일이 왔을 때 그 메일이 스팸인지 아닌지에 대한 판별이 필요.. 2017. 5. 24.
[백준 알고리즘] 1149번 RGB거리 RGB 거리 RGB거리에 사는 사람들은 집을 빨강, 초록, 파랑중에 하나로 칠하려고 한다. 또한, 그들은 모든 이웃은 같은 색으로 칠할 수 없다는 규칙도 정했다. 집 i의 이웃은 집 i-1과 집 i+1이다. 처음 집과 마지막 집은 이웃이 아니다.각 집을 빨강으로 칠할 때 드는 비용, 초록으로 칠할 때 드는 비용, 파랑으로 드는 비용이 주어질 때, 모든 집을 칠할 때 드는 비용의 최솟값을 구하는 프로그램을 작성하시오. 첫째 줄에 집의 수 N이 주어진다. N은 1,000보다 작거나 같다. 둘째 줄부터 N개의 줄에 각 집을 빨강으로 칠할 때, 초록으로 칠할 때, 파랑으로 칠할 때 드는 비용이 주어진다. #include using namespace std; int arr[1001][3];int dp[1001][.. 2017. 5. 23.
파이썬(python) 강의 8장 - 모듈(module) - 파이썬(python) 강의 8장- 모듈(module) - 컴퓨터를 사용할 때 파일이 한 두 개만 있다면 우리는 나누거나 할 필요 없이 그냥 사용하면 된다. 하지만 파일의 수가 엄청나게 많아지게 된다면 어떻게 해야 할까? 이런 파일 중에서는 같은 이름을 가진 파일이 있을 수도 있고 언제 만들었는지 무엇을 의미하는지에 따라 구분을 하고 싶을 것이다. 이 때 폴더인 디렉토리라는 것을 사용하여 성격이 비슷한 파일들을 하나의 디렉토리에 넣어준다. 이렇게 되면 양이 많아짐에 따라 늘어나는 복잡도를 명확하게 나타나게 해줄 수 있는 방법이다. 이런 방법을 파이썬에도 적용할 수 있다. 파이썬을 만들 때에도 엄청나게 많은 코드들을 가지고 만드는데 이럴 때 많은 문제가 발생한다. 이럴 때 사람들이 사용하는 많은 코드들 중에.. 2017. 5. 23.
컴퓨터 네트워크 42장 - 파일 전송 - 컴퓨터 네트워크 42장- 파일 전송 - 파일 전송을 위한 사용자 환경으로 대표적인 예시가 FTP 프로그램이다. FTP는 인터넷에 연결된 호스트 간의 파일 복사 기능을 제공하여 원격 시스템과의 파일 송수신 기능을 지원한다. FTP는 File Transfer Protocol의 약자로 사용자는 클라이언트 프로그램을 이용하여 ftp 서버에 접속을 하여 파일을 다운로드 또는 파일 업로드 과정을 수행할 수 있다. FTP 프로그램을 사용하기 위해서는 서버에 등록된 계정과 암호로 로그인을 할 필요가 있다. 일반적으로 다중 사용자에게 파일 서비스를 제공하려고 불특정 다수에게 로그인 계정을 일일이 부여하는 것은 현실적으로 불가능하므로 익명 FTP를 이용하여 공개 소프트웨어 배포와 같은 기능을 수행할 수 있다. UNIX 환.. 2017. 5. 23.
머신러닝(Machine Learning) 4장 - Multi-variable Linear regression - 머신러닝(Machine Learning) 4장- Multi-variable Linear regression - 앞의 과정을 잠깐 정리를 해보자. Linear Regression은 선형적으로 값을 예측하는 방법으로 우선 가설로 H(x) = Wx + b라는 형태의 식을 사용하였다. 이를 통해 실제 결과 값과의 차이인 cost function을 정의할 수 있었고 cost function을 최소화시키는 Gradient descent algorithm에 의해 가장 최적화된 예측 형태를 만들어 낼 수 있었다. 그런데 우리는 여기서 입력 값으로 x라는 값을 하나만 사용하였다. 그런데 하나가 아니라 여러 개의 입력 값을 가지게 되면 어떻게 될까? 특정한 예시로 기말고사의 성적을 예측하는데 중간고사와 2번의 퀴즈를 본 .. 2017. 5. 23.
머신러닝(Machine Learning) 3장 - Linear Regression의 cost 최소화 알고리즘 - 머신러닝(Machine Learning) 3장- Linear Regression의 cost 최소화 알고리즘 - Regression은 우선 Supervised Learning의 종류로 연속적인 데이터로 결과 값을 도출하는 머신러닝의 기법이다. 그 중 Linear Regression은 선형적인 예측을 하는 방법인데 H(x) = Wx + b 와 같은 형태로 예측의 가설을 만들 수 있었다. 가설을 바탕으로 실제 결과 값과 차이를 비교하여 cost function의 값을 만들었다. 그리고 예측을 최적화하는 방법은 바로 cost function의 값을 최소화로 만드는 작업이 될 것이다. 쉽게 이해하기 위해 b라는 값을 0이라고 생각하고 가설을 H(x) = Wx 라는 형태로 먼저 살펴볼 것이다. 그러면 cost fu.. 2017. 5. 23.
[백준 알고리즘] 1463번 1로 만들기 1로 만들기 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최소값을 출력하시오. #include using namespace std; int dp[1000001]; int make_one(int num){ if (num == 1){return 0;} if (dp[num] > 0){return dp[num];} dp[num] = make_one(num - 1) + 1; if (num % 3 == 0){int k = make_one(num/3) + 1;if (dp[num] > k){dp[n.. 2017. 5. 22.
파이썬(python) 강의 7장 - 함수 - 파이썬(python) 강의 7장- 함수 - 프로그래밍하기 위해서 앞의 장에서 다룬 것과 같이 단순한 형태로 작성하게 되면 엄청나게 많은 코드를 작성해야한다. 간단하게 aaa라는 문자열을 출력할 때에도 aaa라는 문자열을 출력하는 print문을 계속 사용해서 작성해야한다. 이렇게 되면 코드의 길이가 길어지게 되고 가독성, 즉 코드가 무엇을 의미하는지를 알기 어렵다. 이를 위해 함수라는 개념을 도입해서 중복을 줄이고자 한다. 함수는 수학에서 사용하는 함수를 생각하면 되는데 수학에서 특정 입력하는 값에 따라 결과 값을 나타나게 해주는 것이 함수이다. 보편적으로 x와 y를 사용하는데 특정 규칙을 가지고 x를 y라는 결과 값으로 바꾸어준다. 이와 똑같게 파이썬에서 사용하는 함수도 특정한 입력 값으로 특정 결과 값.. 2017. 5. 22.
컴퓨터 네트워크 41장 - 전자 메일 - 컴퓨터 네트워크 41장- 전자 메일 - 전자 메일은 인터넷이 보급되던 초기부터 제공된 서비스로 현재 가장 널리 사용되는 인터넷 서비스 중 하나이다. 전자 메일을 이용한 작업은 크게 메일 내용 편집, 수신한 메일 내용 보기, 메일 박스에 보관된 수신 메일 관리 등으로 나뉜다. 메일 편집은 메일 생성, 회신, 제 3자에게 전달을 하고 메시지 내용 외에도 주소, 작성일자, 참조 수신자 등 다양한 정보 작성이 필요하다. 메일 내용 읽기는 본문 읽기, 첨부 파일 읽기 기능을 수행한다. 수신 메일 관리는 메일 박스로 메일을 삭제, 저장을 한다. 전달 여부 통지는 송신자에게 수신 여부 통보를 하고 메일 시스템의 하부 기능에 의해 메일 오류의 통지로 구형 가능하고 자체 기능으로 구형하면 옵션으로 수신 여부를 확인할 수.. 2017. 5. 22.
머신러닝(Machine Learning) 2장 - Linear Regression의 Hypothesis와 cost - 머신러닝(Machine Learning) 2장- Linear Regression의 Hypothesis와 cost - 1장에서 예시로 사용한 투자한 시간에 대비하는 성적에 대한 예측을 하는 머신러닝을 통해 regression에 대해 다시 생각해보자. training data set는 투자한 시간과 이에 대한 결과 값인 점수가 연속적인 숫자로 나타나게 된다. Regression의 기법을 통해 학습이 되고 난 후에 특정 시간을 입력하게 되면 이에 따른 결과 값을 내보내 준다. 예를 들면 7시간을 넣을 경우 65점 정도의 값을 나타나게 해주는 것이다. Regression을 적용시키기 위해 간단한 데이터를 적용시켜보자. 입력 값인 x에 1, 2, 3을 주어주고 이에 해당하는 결과 값인 y값으로 1, 2, 3을 각.. 2017. 5. 22.