본문 바로가기

전체 글

(263)
[혼공머신] 02-2. 데이터 전처리 도미 데이터 15개, 빙어 데이터 14개를 준비하고 도미와 빙어 데이터를 하나의 데이터로 합친다. 넘파이의 column_stack 함수는 전달받은 리스트를 일렬로 세운 다음 차례대로 나란히 연결하는 함수이다. 예를 들어 np.coloum_stack(([1,2,3], [4,5,6]))이라면 결과는 [[1,4], [2,5], [3,6]]이다. 넘파이의 column_stack 함수를 사용하여 생선 데이터 리스트를 일렬로 세운 다음 차례대로 나란히 연결하여 생선의 길이 데이터와 생선의 무게 데이터를 나란히 붙인다. 넘파이의 ones 함수와 zeros 함수는 각각 원하는 개수의 1과 0을 채운 배열을 만들어주는 함수이다. 넘파이의 concatenate 함수는 배열 2개를 나란히 합치는 함수이다. 넘파이의 ones..
[혼공머신] 02-1. 훈련 세트와 테스트 세트 머신러닝 알고리즘은 크게 지도 학습, 비지도 학습으로 나눌 수 있다. 지도 학습은 인간이 컴퓨터에게 데이터(문제)와 답(타깃)을 넘겨주고 관련된 규칙성을 찾아내도록 하는 학습 방법이다. 비지도 학습은 인간이 컴퓨터에게 데이터(문제)만 넘겨주고 컴퓨터가 알아서 데이터의 특성에 따라 분류하는 학습 방법이다. 지도 학습에서는 데이터와 정답을 입력(input), 타깃(target)이라고 하고, 이 둘을 합쳐 훈련 데이터라고 부른다. 머신러닝 알고리즘의 성능을 제대로 평가하려면 훈련 데이터와 평가에 사용할 데이터가 각각 달라야 한다. 평가를 위해서 다른 데이터를 준비하거나 이미 준비된 데이터 중에서 일부를 떼어 내어 활용하는데 후자의 경우를 더 많이 사용한다. 평가에 사용할 데이터를 테스트 세트, 훈련에 사용되는..
[혼공머신] 01-3. 마켓과 머신러닝 생선 이름을 자동으로 알려주는 머신러닝 프로그램 만들기 먼저 도미 데이터(길이, 무게) 15개를 준비한다.matplotlib의 pylot함수를 사용하여 도미 데이터의 산점도를 그려본다. 다음으로 빙어 데이터(길이, 무게) 14개를 준비한다. 전체적인 데이터의 분포를 알기 위해서 도미와 빙어 데이터의 산점도를 그려본다. 도미와 빙어의 길이 데이터를 리스트 length 변수에, 도미와 빙어의 무게 데이터를 리스트 weight 변수에 넣어준다. 여기서 우리가 사용하는 머신러닝 패키지가 사이킷런인데, 사이킷런은 2차원 리스트로 만들어 데이터를 처리한다. 그러므로 zip 함수와 리스트 내포 구문을 사용하여 length와 weight 리스트를 2차원 배열로 만들어 fish_data를 생성한다. fish_data에 ..
[백준 파이썬] #1934: 최소공배수 www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net [문제] 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있으며, 최소 공배수는 30이다. 두 자연수 A와 B가 주어졌을 때, A와 B의 최소공배수를 구하는 프로그램을 작성하시오. 첫째 줄부터 T개의 줄에 A와 B의 최소공배수를 입..
[백준 파이썬] #2501: 약수 구하기 www.acmicpc.net/problem/2501 2501번: 약수 구하기 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. www.acmicpc.net [문제] 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다. 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오. 첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다. 만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 0을 출력하시오. [문제 접근] for문을 돌면서 약수들을 찾고 그 약수들을 ..
[백준 파이썬] #2548: 대표 자연수 www.acmicpc.net/problem/2548 2548번: 대표 자연수 첫째 줄에는 자연수의 개수 N이 입력된다. N은 1 이상 20,000 이하이다. 둘째 줄에는 N개의 자연수가 빈칸을 사이에 두고 입력되며, 이 수들은 모두 1 이상 10,000 이하이다. www.acmicpc.net [문제] “대표 자연수는 주어진 모든 자연수들에 대하여 그 차이를 계산하여 그 차이들 전체의 합을 최소로 하는 자연수이다.” 예를 들어 주어진 자연수들이 [4, 3, 2, 2, 9, 10]이라 하자. 이때 대표 자연수는 3 혹은 4가 된다. 왜냐하면 (4와 3의 차이) + (3과 3의 차이) + (2와 3의 차이) + (2와 3의 차이) + (9와 3의 차이) + (10과 3의 차이) = 1+0+1+1+6+7 = 1..
[백준 파이썬] #11557: Yangjojang of The Year www.acmicpc.net/problem/11557 11557번: Yangjojang of The Year 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 www.acmicpc.net [문제] 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 궁금해졌다. 학교별로 한 해동안 술 소비량이 주어질 때, 가장 술 소비가 많은 학교 이름을 출력하여라. 같은 테스트 케이스 안에서 소비한 술의 양이 같은 학교는 없다고 가정한다. [문제 접근..
[백준 파이썬] #4592: 중복을 없애자 www.acmicpc.net/problem/4592 4592번: 중복을 없애자 Al의 초콜릿 망고 회사는 방문자들이 2d 단지에 얼마나 많은 초콜릿 망고가 있는지 추측할 수 있는 웹 사이트를 갖고 있다. 방문자들은 1부터 99까지의 수를 추측한 후 "제출" 버튼을 누르는데, 안 www.acmicpc.net [문제] Al의 초콜릿 망고 회사는 방문자들이 2d 단지에 얼마나 많은 초콜릿 망고가 있는지 추측할 수 있는 웹 사이트를 갖고 있다. 방문자들은 1부터 99까지의 수를 추측한 후 "제출" 버튼을 누르는데, 안타깝게도 서버로부터 응답시간이 종종 길어져 방문자들이 이성을 잃은 나머지 "제출"을 연타하는 사태가 발생한다. 이게 우리가 해결해야 할 문제다. ACM의 직원을 도와 연타된 중복을 걸러보자. 마지막..