목록분류 전체보기 (139)
배고픈 개발자 이야기
Light Gradient Boosting Machine (LGBM) 1. 왜 LGBM에 대해 관심을 갖게 되었을까요? kaggle에서도 많은 인기를 끌고 있지만, 인포섹 아카데미 교육 중 진행하는 모듈 프로젝트에서 사용할 머신러닝 알고리즘 중 하나를 조사해보기로 하면서 알아보게 되었습니다. 저에게는 생소한 알고리즘으로 LGBM 관련글을 보고 이해한것을 토대로 작성하였습니다. 2. LGBM이란 무엇일까요? LGBM은 다양한 머신러닝 알고리즘 모델 중 베이직한 Decision Tree를 기반으로 만들어 졌으며, Ranking(순위 지정) 또는 Classification(분류) 및 다른 머신러닝 학습에 사용되는 알고리즘입니다. LGBM은 Performence(성능) 및 Scalability(확장성)을 목적으..
import numpy as np X = np.array([1,2,3], dtype="float32") y = np.array([2, 2.5, 3.5], dtype="float32") w, b = 2, 1 hypothesis = X*w + b w_gred = 1/3*np.dot((hypothesis-y), X.T) w = w - w_gred b_gred = 1/3*np.sum(hypothesis-y) b = b - b_gred print("w, b") print(w_gred, b_gred) print(w, b) print() # 오차제곱합이 최소화 되는 w, b를 100회에 걸쳐서 찾음 for i in range(100): hypothesis = X*w+b print("hyp[othesis:",hypot..
Exponential Moving Average 다음과 같이 주단위로 8주의 데이터를 생성한다. 아래 myEWMA는 지수이동평균값을 df.ewm(span=3).mean()과 같이 계산해주도록 정의한 메소드이다. import pandas as pd import numpy as np df = pd.DataFrame({ "week":pd.date_range(start="2020-08", periods=8, freq="W"), "sales":[39,44,40,45,38,43,39,np.nan], "3EMA":[0]*8 }) # 지수 이동 평균을 계산할 함수 # data: 지수 이동 평균을 계산할 데이터 # span: 지수 이동 평균의 거리 (강의 자료에서는 3주마다의 지수 이동 평균이므로 3) def myEWM..
Simple Moving Average 다음과 같이 pandas 메소드를 쓰면 일요일이 주단위로 8개 출력된다. import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import datetime %matplotlib inline # 2020년 8월 부터 일요일 8개를 조회 # start : 시작일, periods : 생성할 날짜의 개수, freq : 생성할 날짜의 주기 pd.date_range(start="2020-08", periods=8, freq="W") 다음은 데이터 프레임 컬럼으로 사용했을 때와 3주치 평균 컬럼을 추가한것이다. df = pd.DataFrame({ "week":pd.date_rang..
XGBoost를 이용한 유방암 데이터 분류 - 캐글 대회에 나왔었음 XGBoost라는 객체를 사용하여 유방암 분류 머신러닝 기법을 적용시켜 볼것이다. import xgboost as xgb from xgboost import plot_importance from xgboost import XGBClassifier import pandas as pd import numpy as np from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.metrics import confusion_matrix, accuracy_score from sk..
사용할 모듈추가 from sklearn.datasets import load_iris from sklearn.metrics import accuracy_score, classification_report from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split import numpy as np import pandas as pd 데이터 로드 및 쪼개기 iris = load_iris() x_train = iris.data[:-30] y_train = iris.target[:-30] x_test = iris.data[-30:] y_test = iris.target[-30:] 쪼갠..
연습 사용하는 모듈 from sklearn.metrics import classification_report, confusion_matrix from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn import tree from sklearn.metrics import accuracy_score from IPython.display import Image import pandas as pd import numpy as np import pydotplus import os 전처리 tennis_data = pd.read_csv('playtennis.csv') te..
괄호 맞추기 문제로 stack 개념을 사용하여 풀었다 요점은 다음 함수 2개를 잘 구현하면된다. 1. 올바른 괄호쌍을 검사하는 함수 2. u, v로 나누어 규칙에 맞게 처리하는 함수 def compact(p): stack = [] for x in p: if x == '(': stack.append('(') else: if not stack: return False stack.pop() return True def seperate(p): if not p: return p l, r = '', '' if p[0] == '(': l, r = '(', ')' else: l, r = ')', '(' stack = [] idx = 0 for i, x in enumerate(p): if x == l: stack.app..