본문 바로가기
728x90

분류 전체보기431

Coursera-Supervised Machine Learning: Regression and Classification (4) Cost function formula 이전 시간까지 공부했듯 features와 그와 매칭되는 target을 통해 model을 만든다. 그러한 model의 function은 다음과 같이 작성할 수 있다. w와 b의 값을 추정값과 실제값이 가깝도록 결정해야한다. 이러한 결정을 돕기위해 cost function fomula를 이용한다. Cost function은 다음과 같다. Cost function intuition 우선 그래프의 경향성과는 관계없는 b를 0으로 가정하여 단순화를 해본다. 우선 (x,y) data set이 (1,1), (2,2), (3,3)인 단순한 경우를 보면 w=1을 통해 cost function 식을 만들고 모든 경우에 오차가 0임을 알 수 있다. 이를 식과 그래프를 통해 관찰한다. .. 2022. 8. 7.
Baekjoon Training #14425 #14425 import sys N, M = map(int, input().split()) words = dict() cnt = 0 for i in range(N): a = sys.stdin.readline() words[a] = True for j in range(M): b = sys.stdin.readline() if b in words.keys(): cnt+=1 print(cnt) sys.stdin.readline() 함수를 이용하기 위해 sys모듈을 import해왔다. dictionary 자료형을 이용하여 문자열을 비교한다. for문을 이용해 문자를 입력받고 if문에서 dict.keys()를 이용하여 비교를 진행하여 counting을 하였다. 2022. 8. 6.
Baekjoon Training #2798 #2798 n, m = map(int, input().split()) a = list(map(int, input().split())) b = len(a) sum = 0 for i in range(0, b - 2): for j in range(i + 1, b - 1): for k in range(j + 1, b): if a[i] + a[j] + a[k] > m: continue else: sum = max(sum, a[i] + a[j] + a[k]) print(sum) 우선 map을 이용하여 두개의 수와 숫자 리스트를 받는다. list a의 길이를 b에 넣어주고 3중 for문을 이용하여 3개의 숫자 세트를 전수조사한다. 마지막 for문 에서 if else문을 이용하여 지정된 숫자를 넘으면 for문을 이어서.. 2022. 7. 30.
Baekjoon Training #10870 #10870 a = int(input()) num_list = [0,1] for i in range(2, a+1): num = num_list[i-1] + num_list[i-2] num_list.append(num) print(num_list[num]) 우선 친숙한 for문을 이용하여 코드를 작성해 보았다. 0,1이 들어있는 num_list를 만들고 for문을 이용하여 입력한 번호 a에 따라 a-2인덱스의 숫자와 a-1인덱스의 숫자를 더하여 num을 num_list에 append해주어 피보나치 수열을 구현하였다. 하지만 이 문제의 의도는 재귀함수를 이용하는 것이어서 다른 방법을 고안하였다. def fibonacci(a): if a 2022. 7. 29.
Coursera-Supervised Machine Learning: Regression and Classification (3) Linear regression model 주어진 data를 직선적으로 분석하여 예측을 진행하는 model이다. 위와같이 data들의 경향성을 선형적으로 분석하여 분석하는 방법이다. Terminology Training set: Data used to train the model Notation: x = "input" variable feature y = "output" variable, "target" variable m = number of training example features와 targets이 매칭이 되어있는 training set을 통해 학습하여 model f를 만들어내고 해당 model에 x라는 feature을 입력하면 예측값인 y-hat이 출력이 된다. Univariate linear.. 2022. 7. 29.
Baekjoon Training #1978 #1978 n = int(input()) nums = map(int, input().split()) prime_num = 0 for num in nums: cnt = 0 if num > 1 : for i in range(2, num): if num % i == 0: cnt = 1 if cnt == 0: prime_num += 1 print(prime_num) 첫째줄에서 수들의 개수 n을 입력받았다. 처음에는 이를 이용하여 for문의 반복 횟수를 정하려 했으나 for num in nums 꼴을 이용하여 굳이 n을 이용하지 않고 nums의 숫자들을 순차적으로 이용하여 더 쉽게 풀어냈다. cnt는 for문이 시작할때마다 0으로 초기화를 해주고 nums의 모든 숫자들을 2부터 각 숫자까지 (nums가 4, 7,.. 2022. 7. 24.
Google ML crash course (3) Reducing Loss Loss를 줄이기위해 Gradient descent 과정을 통해 algorithm을 수정한다. 이때 learning rate가 너무 작으면 loss가 최소인점을 찾는데까지 너무 많은 step을 밟아야한고 learning rate가 너무 크면 정확도가 떨어져서 overshooting되어 loss가 최소인점을 크게 벗어날 수 있다. Course에서 제공된 프로그램을 통하여 Learning rate가 0.05일때, 0.6일때, 0.1일때를 각각 실행시켜보면서 직접확인해 보았다. 2022. 7. 23.
Coursera-Supervised Machine Learning: Regression and Classification (2) Unsupervised learning Find something interesting in unlabeled data. Right examples를 통해 훈련을 시키는 것이아니라 unlabeled data를 자체적으로 clustering하는 것이다. Clustering algorithm Clustering algorithm은 말그대로 정보들을 군집화하여 의미있는 data를 구해내는 것이다. 다음과 같이 구글 뉴스에서 연관성이 있는 기사들을 찾아내는 것도 같은 원리이다. 또한 DNA microarray 기술에서도 각각의 개체와 그들의 특징을 나타내는 유전자를 군집화하여 표현하였음을 알 수 있다. 소비자 분석에서도 흔히 쓰인다. 어떤 물건을 구매하는지 어떤 뉴스를 읽는지와 같은 다양한 성향을 토대로 소비자.. 2022. 7. 23.
Google ML Crash Course (2) Linear Regression 귀뚜라미는 더울수록 우는 횟수가 많아지는 경향이 있다고 한다. 이를 예시로 linear regression의 예시를 보면 다음과 같다. 예상한대로 온도와 우는 빈도가 비례함을 알 수 있고 이 관계가 linear한지 보면 물론 한직선이 모든 점이 통과되지는 않지만 경향성을 본다면 충분히 linear하다고 할 수 있다. 위와 같은 linear한 관계를 식으로 표현하면 다음과 같다. 이는 보통 우리가 아는 y=mx+b 또는 y=ax+b라는 일차식을 machine learning model의 표현방식으로 조금 바꾼것이다. 이때 y'은 label(예측되는 output) b는 bias(y절편, w0로 표현되기도한다) w1은 weight of feature1 (Weight는 기울기와 .. 2022. 7. 23.
728x90