본문 바로가기
728x90

전체 글422

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.
Baekjoon Training #1712/#2675 #1712 a,b,c=map(int,input().split()) cnt = 0 while True: cnt += 1 if b>=c: print(-1) break if a+(b*cnt) =c인 경우 비용이 판매가와 같거나 크기 때문에 손익분기점이 존재하지 않는다. while문을 통해 계속 counting을 진행하고 cnt에 따라 손익분기점을 넘는 순간에 cnt값을 출력하고 break문을 통해 while문을 끝냈다. 이는 visual studio에서는 문제없이 실행이 되었으나 백준 제출란에서는 시간초과로 오답철가 되었다. 이는 수학적인 계산을 통해 실행시간을 줄이라는 의미로 받아드렸다. 이를 보완하여 아래와.. 2022. 7. 21.
Coursera-Supervised Machine Learning: Regression and Classification (1) Supervised learning Learns from being given "right answers" 여기서 옳은 정답은 input과 그에 맞는 output label로 이루어져있다. Regression algorithm(회귀 분석) House price prediction 회귀 분석을 진행하였더라도 알고리즘에 따라 직선으로 분석할 수도 있고 곡선으로 분석할 수도 있다. Classification algorithm(분류) Classification predict categories 카테고리화 시키는 과정이므로 regression algorithm과 달리 불연속적이다. Breast cancer detection 실제 classification algorithm은 수 많은 input을 output과 연.. 2022. 7. 21.
Google ML Crash Course (1) 머신러닝이란? 머신러닝은 다양한 input 데이터들을 종합하여 의미있고 유용한 결과와 예측을 이끌어내는 시스템입니다. 기본적인 머신러닝 용어 Label - 예측하고자 하는 정보로 simple linear regression 변수이다. Feature - 다양한 input 데이터로 label을 결정지을 수 있는 특징들이다. Label과 같이 simple linear regression 변수이다. Example - 말그대로 예시로 시스템이 학습할 수 있는 데이터의 특정한 인스턴스로 Labeled example과 Unlabeled example로 분류할 수 있다. 위와 같이 labeled examples는 추정하고자 하는 결과값인 label이 포함된 시스템이 학습할 수 있는 dataset이다. 위와 같이 unl.. 2022. 7. 20.
728x90