본문 바로가기
728x90

분류 전체보기426

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.
Baekjoon Training #2675/#1157 #2675 t=int(input()) for i in range(t): r,s=input().split() word = "" for i in s: word += int(r)*i print(word) 우선 케이스의 개수를 integer변수인 t로 입력받고 for문을 이용하여 t만큼 반복한다. for문의 내용은 반복횟수 r과 문자열 s를 입력받는다. 이때 .split()을 이용하여 한칸띄어서 입력받는다. 다음으로 word = ""로 빈문자열을 형성하고 이중 for문을 이용하여 각 문자마다 r만큼 곱하여 출력해주는 과정을 for문을 이용하여 반복한다. #1157 word = input().upper() word_list = list(set(word)) cnt = [] for i in word_list: cou.. 2022. 7. 20.
객체지향프로그래밍응용-(1) C++의 특징 1. 객체지향적인 프로그래밍 언어 2. 캡슐화 3. 상속성 4. 다형성 객체지향프로그래밍응용 강의의 주목적은 class활용과 c++만의 특징을 이용해보는 것이다. 이 모든 내용을 친구관리프로그램을 점진적으로 업그레이드 시키며 학습하였다. #ifndef Friend_H #define Friend_H #include #include #include #include #include using namespace std; class Friend//class선언 { public://생성자 및 함수는 public영역에 선언해준다. Friend() {//생성자를 통해 값을 초기화한다. name = ""; age = 0; gpa = 0.0; mobile = ""; } void t_text();//t_tex.. 2022. 7. 19.
728x90