전체 글 111

[Deep한 머신러닝] Boosting 부스팅 2편(GradientBoosting Regression)

1. Boosting 부스팅 핸즈온 머신러닝의 앙상블 (https://eumgill98.tistory.com/20)을 공부하다 보니 다른 앙상블 기법들은 이해하기 쉬웠으나 Boosting 부스팅이 조금 더 자세히 살펴볼 필요가 있다고 생각되어서 (수식적인 이해를 할 식들이 많다) Deep한 머신러닝의첫 번째 주제로 선택하게 되었다 이번 글에서는 Boosting 깊이 있게 살펴 보려고 한다 포괄적인 이해를 원한다면 위의 앙상블 포스팅 링크를 참조해주기를 바란다 1.2.1 Gradient Boosting - Regression 오늘 알아볼 Boosting 기법은 Gradient Boosting 그중에서도 Regression이다 Classfication과 Regression의 수식이 조금 다르기 때문에 비교적..

[백준] 2667번 단지 번호 붙이기 파이썬(Python) 풀이

2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net [문제] [코드] DFS (깊이 우선 탐색) 풀이 import sys from collections import deque input = sys.stdin.readline N = int(input()) graph = [] result = [] count = 0 for _ in range(N): graph.append(list(map(int, input().rstrip()))) dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] def dfs(x, ..

[Deep한 머신 러닝] Boosting 부스팅 1편(Ada boosting)

1. Boosting 부스팅 핸즈온 머신러닝의 앙상블 (https://eumgill98.tistory.com/20)을 공부하다 보니 다른 앙상블 기법들은 이해하기 쉬웠으나 Boosting 부스팅이 조금 더 자세히 살펴볼 필요가 있다고 생각되어서 (수식적인 이해를 할 식들이 많다) Deep한 머신러닝의첫 번째 주제로 선택하게 되었다 이번 글에서는 Boosting 깊이 있게 살펴 보려고 한다 포괄적인 이해를 원한다면 위의 앙상블 포스팅 링크를 참조해주기를 바란다 1.1 AdaBoosting 오늘 알아볼 부스팅은 AdaBoosting이다 참고한 동영상 강의 : https://youtu.be/HZg8_wZPZGU AdaBoosting은 Adaptive + Boosting으로 만들어진 단어로 약한 분류기(weak..

[백준] 1654번 랜선 자르기 파이썬 풀이

1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline k, n = map(int, input().split()) LAN_LIST = [] for _ in range(k): LAN_LIST.append(int(input())) start = 1 end = max(LAN_LIST) while start = n: result = mid start = mid + 1 else: end = mid - 1 prin..

[논문 구현] 근본을 찾아서... 0. LeNet-5 (GradientBased Learning Applied to DocumentRecognition)

오늘은 "특별히" CNN 모델의 근본인 LeNet5를 Pytorch를 활용해서 구현해볼려고 합니다 최근 머신러닝을 sklearn없이 구현하고 있는 개인만의 프로젝트를 하고 있는데 추가 적인 개인 프로젝트로 DL 모델들로 직접 구현해보려고 한다 논문 링크 : http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf 오늘 구현해볼 논문은 98년도에 나온 CNN의 아버지 LeNet-5이다 (근본 중에 근본) LeNet- 5 기본 구조 (LeNet-5 Architecture) 98년도에 나온 모델이므로 구조는 상당히 단순하다 *전체적인 구조* 3개의 Convolutions layer - 2개의 Subsampling layer - 1개의 fc레이어 [활성화 함수..

[핸즈온머신러닝] 앙상블(Ensemble) 학습 (2) [부스팅 ~ 스태킹]

목차 앙상블 기법이란? 앙상블 기법의 종류 보팅 배깅, 페이스팅 랜덤 포레스트 부스팅 스태킹 2. 앙상블 기법의 종류 2.4 부스팅 (Boosting) 여러 모델을 연결하여 강한 모델을 만드는 앙상블 기법을 말한다 즉, 앞의 모델을 뒤의 모델이 보완하면서 더 좋은 모델을 만들어 내는 것이다 이러한 부스팅에는 에이다 부스트 AdaBoost와 그레이디언트 부스팅 Gradient boosting이 있다 2.4.1 에이다 부스트 AdaBoost 에이다 부스트는 앞의 모델이 (이전모델) '과소적합' 했던 훈련 샘플의 가중치를 높여 학습해 나가는 앙상블 기법이다 예를들어 설명하면 모델을 만들 때 먼저 알고리즘이 기반이 되는 첫 번째 모델을 훈련세트로 훈련하고 예측을 만들어낸다. 그런 다음 알고리즘이 잘못 분류된 훈..

[백준] 1326 폴짝폴짝 파이썬 풀이

1326번: 폴짝폴짝 첫째 줄에 징검다리의 개수 N(1≤N≤10,000)이 주어지고, 이어서 각 징검다리에 쓰여 있는 N개의 정수가 주어진다. 그 다음 줄에는 N보다 작거나 같은 자연수 a, b가 주어지는 데, 이는 개구리가 a번 www.acmicpc.net [문제] [코드] from collections import deque def bfs(start, finish, stone, n): q = deque() q.append(start - 1) visited = [-1] * n visited[start-1] = 0 while q: node = q.popleft() for i in range(n): if (i-node) % stone[node] == 0 and visited[i] == -1: q.appen..

[핸즈온머신러닝] 앙상블(Ensemble) 학습 (1) [보팅 ~ 랜덤 포레스트]

목차 앙상블 기법이란? 앙상블 기법의 종류 보팅 배깅, 페이스팅 랜덤 포레스트 부스팅 스태킹 1. 앙상블 기법이란? 여러개의 학습 모델(분류, 회귀 ...) 을 학습하여 학습된 각 모델에서 예측을 만들어 낸 후 그 예측들을 결합하여 보다 정확도가 높은 예측을 만들어 내는 기법이다 이러한 앙상블기법에는 보팅 (하드, 소프트), 배깅, 페이스팅, 부스팅 등 다양한 기법들이 존재하고 있 2. 앙상블 기법의 종류 2.1 Voting 보팅 (투표 기반 분류기) 보팅은 말 그대로 같은 데이터셋을 통해서 각 모델들을 학습시키고 이들의 예측을 투표를 통해서 최적의 예측으로 만들어 내는 방법으로 하드 보팅과 소프트 보팅이 있다. 2.1.1 하드 보팅(Hard voting)과 소프트 보팅(Soft voting) 하드 보팅..

[백준] 12018번 Yonsei TOTO 파이썬 풀이

12018번: Yonsei TOTO 연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배 www.acmicpc.net [문제] [코드] import sys input = sys.stdin.readline n,m = map(int, input().split()) result =[] for _ in range(n): p, l = map(int, input().split()) l_list = list(map(int,input().split())) l_list.sort(reverse=True) if p < l : result.append(1) else: result.append..