파이썬
-
LightGBM 데이터 분류머신러닝(MACHINE LEARNING) 2021. 4. 14. 17:25
LightGMB 의 장점¶ LightGBM 은 XGB보다 더빠른 학습과 에측 수행시간을 가지고 있고, 더작은 메모리 사용이 가능하다. 또한 카테고리형 피처의 자동 변환과 최적변환이 가능하다는 것이 장점이다. LightGBM 의 파라미터¶ LightGBM 은 XGB 와 다르게 리프노드가 계속 분할 되면서, 트리의 깊이가 깊어지므로 이러한 트리 특성에 맞느 하이퍼 파라미터가 필요하다, 주요 파라미터는 다음과 같다. num_iterations : default 값은 100 이며, 반복 수행하려는 트리의 개수를 지정한다. learning rate : default 값은 0.1 이며, 작을 수 록 예측 성능이 좋아지나, 학습이 길어진다는 것도 고려해야 한다. max_depth : 트리 기반의 max_depth 와..
-
XGboost (Ensemble 학습법)머신러닝(MACHINE LEARNING) 2021. 4. 14. 14:46
XGBoost¶ XGBoost 는 트리 기반의 ensemble 알고리즘 학습법에서 가장 각광받고 있는 알고리즘 중 하나입니다. 기존의 GBM 을 기반으로 하고 있지만, 느린 수행시간, 과적합 규제등을 해결한 알고리즘 이다. 뛰어난 예측 성능 GBM 대비 빠른 수행 시간 과적합 규제(Overfitting Regularization) Tree pruning(트리 가지치기) : 긍정 이득이 없는 분할을 가지치기해서 분할 수를 줄임 자체 내장된 교차 검증 반복 수행시마다 내부적으로 교차검증을 수행해 최적회된 반복 수행횟수를 가질 수 있음 지정된 반복횟수가 아니라 교차검증을 통해 평가 데이트세트의 평가 값이 최적화되면 반복을 중간에 멈출 수 있는 기능이 있음 결손값 자체 처리 In [5]: # 주요 파라매터에 관..
-
GridSearchCV () - 파라매터 와 교차검증을 동시에 하는 API머신러닝(MACHINE LEARNING) 2021. 4. 13. 23:08
GridSearchCV 를 알아보자¶ -GridSearchCV 는 교차 검증(여러가지 기법들이 존재한다.) 과 하이퍼 파라미터 튜닝(weight)값을 둘다 할 수 있는 API 이며, 순차적으로 파라미터를 입력시켜, 최적의 파라미터를 도출 할 수 있도록 도와준다. GridSearchCV 는 class sklearn.model_selection.GridSearchCV(estimator, param_grid, , scoring=None, n_jobs=None, refit=True, cv=None, verbose=0, pre_dispatch='2n_jobs', error_score=nan, return_train_score=False) 로 구성이 되있다. GridSearchCV 는 Grid 에 포함된 여러 pa..
-
교차 검증을 위한 Cross_val_score() 함수 사용법머신러닝(MACHINE LEARNING) 2021. 4. 13. 22:23
사이킷 런(Scikit-Learn) 에서 보다 쉬운 교차검증 API - cross_val_score()¶ -사이킷 런에서는 교차검증(K-Fold or StratifiedKFold) 를 더 쉽게 할 수 있는 API를 제공하는 데 그것은 cross_val_score 이다. cross_val_score 에는 여러가지 변수 값들이 있지만 중요한 몇가지만 알아보자. estimator = > 분류 알고리즘(Classifier) 또는 회귀 (Regressor) 인지 구분 인자 X => feature 데이터 세트 Y => 레이블 데이터 세트 scoring => 예측 성능 평가 지표( 'accuracy', 'neg_brier_score' , 'top_k_accuracy'등등 겁나많다...) cv => 교차 검증 폴드 수..
-
백준 _ 3111알고리즘/백준(BOJ) 2021. 4. 13. 11:12
https://www.acmicpc.net/problem/3111 3111번: 검열 첫째 줄에 단어 A가, 둘째 줄에 텍스트 T가 주어진다. A와 T는 알파벳 소문자로만 이루어져 있고, A는 최대 25자, T는 최대 300,000자이다. www.acmicpc.net 문제 김상근은 창영마을에서의 권력을 유지하기 위해 신문을 검열하려고 한다. 상근이는 텍스트 T에서 A라는 단어를 다음과 같은 알고리즘을 이용해서 모두 없애려고 한다. T에 A가 없으면 알고리즘을 종료한다. T에서 처음 등장하는 A를 찾은 뒤, 삭제한다. T에 A가 없으면 알고리즘을 종료한다. T에서 마지막으로 등장하는 A를 찾은 뒤, 삭제한다. 1번으로 돌아간다. 상근이는 마을을 지배해야하기 때문에, 검열을 할 시간이 없다. 상근이의 검열을 ..
-
백준 7785 _ Python알고리즘/백준(BOJ) 2021. 4. 13. 01:09
https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 문제 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지, 나갔..
-
이진 트리 (전방순회)_BST _ Python알고리즘/알고리즘 (여러가지) 2021. 4. 13. 00:55
- Python 으로 이진트리를 구현하는 방법이다. - 우선 큰 BST라는 나무를 만들기 전에 작은 잎가지 (Node) 클래스를 구현해주자.(하나 하나씩 따라가자.) class Node: def __init__(self,data): self.data=data self.left = None self.right =None - 그 다음, BST를 구현해줄 건데, BST 클래스를 구현해준다음. __init__ data 에 root값을 지정해주자. 이 root 값을 기준으로 값들이 insert 혹은 remove 될 것이다. - insert 함수를 구현해보자. # __insert 함수에서는 어떤 node 에다가 더해줄 것인지를 말해준다. def __insert(self,node,data): # node == Non..
-
백준 11279_Python알고리즘/백준(BOJ) 2021. 4. 12. 20:59
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 문제 널리 잘 알려진 자료구조 중 최대 힙이 있다. 최대 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 큰 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를..