목록분류 전체보기 (42)
이것저것 잡동사니
hyperopt를 사용해 bayesian optimization으로 classification을 수행하는 LightGBM 트리 모델의 hyperparameter의 최적값을 찾는 코드. def objective_func(_params): params = { 'objective': 'multiclass', 'num_class': 3, 'num_iterations': 4000, 'feature_pre_filter': False, 'verbosity': -1, 'device': 'gpu', # cpu인 경우 이 라인 생략하면 됨 'n_estimators': int(_params['n_estimators']), 'max_depth': int(_params['max_depth']), 'min_child_sample..
1. 결정 트리란? 결정 트리(decision tree)는 학습된 규칙에 따라 데이터를 분류(classification)하거나 회귀(regression)하는 지도학습(supervised learning)모델 중 하나다. 예를 들어, 다음의 결정 트리는 타이타닉호 탑승객의 생존 여부를 예측한다. 여러 입력 데이터에 대해 위의 결정 트리는 다음과 같은 예측을 할 것이다. 결정 트리가 예측을 수행할 때 입력 데이터의 모든 feature를 사용할 필요는 없다. ※ feature : 성별, 나이, 객실 등급 등... , threshold : 분류 시 사용하는 경계값 (9.5세, 2.5명 등...) 2. 기본적인 트리 생성 원리 각 분류 규칙에 사용되는 feature와 임계치(threshold)는 가장 불순도(im..
커널밀도추정(KDE)은 이산적인 데이터를 사용해 연속적인 밀도함수(density function)를 추정하는 것이다. 간단하게는 히스토그램을 매끄러운 곡선으로 근사한 그래프를 만드는 것이다. 신호 처리나 경제 분야에서는 Parzen-Rosenblatt window method라고 부르기도 한다. 히스토그램과 동일한 값(데이터) 분포에서 랜덤한 값을 뽑아냈을 때, 특정 값이 나올 확률을 추정한 것이다. 히스토그램과 형태는 비슷하지만 \(y\)축 스케일이 다른 것을 확인할 수 있다. (확률은 0~1 사이의 값이기 때문) 이산적인 데이터로 밀도함수를 추정하는 방법에는 parametric 방법과 non-parametric 방법이 있다. Parametric 밀도 추정 방법은 밀도 함수의 기본적인 틀이 이미 정해진..
아래의 모든 코드에는 예측 클래스와 실제 클래스를 랜덤으로 각각 100개씩 생성하는 다음 코드를 생략하고 작성했다. import numpy as np y_pred = np.random.randint(2, size=100) # 100 Predictions (0 or 1) y_true = np.random.randint(2, size=100) # 100 True Classes (0 or 1) 1. 정확도(Accuracy) from sklearn.metrics import accuracy_score print(accuracy_score(y_true, y_pred)) 2. 오차 행렬(Confusion Matrix) from sklearn.metrics import confusion_matrix print(con..
이전 글 1. [리뷰/알바] CJ 대한통운 옥천HUB 택배 상하차 알바 후기 2. [리뷰/알바] CJ 대한통운 옥천HUB 택배 상하차 알바 후기 - 두 번째 ※ 본 글에는 정말 어쩔 수 없이 약간(?)의 비속어가 포함되어 있습니다. 이번엔 비속어 없음! 다음 달에 3학년 하계 군사훈련을 들어가야 하는데 한 2주 정도가 남아서 자고 있는 근육이나 깨워볼까 싶어 상하차를 다녀왔다. 원래는 이번에도 옥천HUB로 가려고 했는데 알바천국에 구미에서 출발하는 청원HUB 공고가 보이길래 신청해봤다. 힘든 곳은 악명이 높아 유명할텐데 청원HUB는 들어 본 적이 없어서 비교적 쉽지 않을까 싶어서였다. 옥천에 처음 갔을 때 잠 때문에 힘들었던 경험 덕분에 이번에는 밤낮도 바꾸고 통근버스로 왔다갔다 하는 시간에도 잠을 잤다..
1. 수치형 데이터 (Numerical Data) 1.1 히스토그램 (Histogram) 하나의 수치형 데이터 feature에 대해 데이터의 구간별 빈도수를 나타내는 그래프다. 가변 구간 너비(varying-width bins)를 사용하는 히스토그램도 있다. 즉, 하나의 히스토그램 내에서 구간의 너비가 일정하지 않을 수 있다. 데이터의 밀도가 높은 곳에는 좁은 구간을 사용해 밀도 추정의 정확도를 높이고 데이터의 밀도가 낮은 곳에서는 넓은 구간을 사용해 무작위 추출에 의한 노이즈를 줄일 수 있다 (밀도가 너무 낮으면 무작위로 표본을 추출할 시 대부분의 경우 해당 구간에는 데이터가 없는 것으로 간주 될 것이다). 하지만 구간의 너비를 일정하게 하는 것(equal-width bins)이 일반적이다. 이때, 구..
1. 코드블럭 테마 적용하기 https://highlightjs.org/static/demo/ 에서 원하는 스타일을 하나 고른다. 그리고 다음 HTML 코드의 default를 스타일 이름으로 바꿔준다. 이때, 대문자는 소문자로, 공백은 하이픈(-)으로 바꿔주어야 한다. 예) Github Dark → github-dark.min.css 블로그 관리 > 스킨 편집 > html 편집에 들어가서 사이에 위의 코드를 넣어 준다. 2. 라인 넘버 적용하기 아래 코드를 사이에 넣어준다. 코드블럭 테마를 적용하는 코드 뒤쪽에 넣어주어야 한다. 그리고 상단의 CSS 탭으로 이동해 다음을 추가해 준다. 맨 앞에 넣지 말고 중간 즈음에 툭 끼워넣어주자. .hljs-ln-numbers { user-select: none; t..
1.1.3 Triple Products (i) Scalar triple product(스칼라 삼중곱) $$\mathbf{A\cdot\left(B\times C\right)}=\mathbf{B\cdot\left(C\times A\right)}=\mathbf{C\cdot\left(A\times B\right)}$$ 다음이 성립한다. $$\mathbf{A\cdot\left(B\times C\right)=\left(A\times B\right)\cdot C}$$ (ii) Vector triple product(벡터 삼중곱) BAC-CAB rule 이라고도 한다. $$\mathbf{A\times\left(B\times C\right)=B\left(A\cdot C\right)-C\left(A\cdot B\right..
수많은 전자기학의 물리량들은 벡터를 사용해 정의된다 (물론 스칼라도 있다). 그러므로 전자기학 정리들의 증명과 이해를 위해서는 벡터를 대상으로 하는 기본적인 연산들에 대해 알아야 한다. 모든 연산 및 공식들을 충분히 손에 익히고 외우면 좋겠지만 그러기에는 첫 장에서 너무 오랜 시간 머무르게 된다. 이러이러한 공식들이 있다는 것만 기억해두고 필요할 때마다 돌아와서 참고하면 된다. 자주 쓰이는 공식들은 굳이 외우려고 노력하지 않아도 자연스럽게 익숙해질 것이다. 전자기학에 관한 글이므로 대부분의 공식에 대한 증명은 하지 않을 것이다. 증명이 필요하면 벡터 미적분학 교재를 참고하거나 구글링을 통해 찾아보길 바란다. 나중에 벡터미적분학이나 벡터해석학을 따로 공부해서 정리글을 올리게 되면 링크를 걸어놓겠다. 1.1..
전자기학을 고3 때 잠깐 공부했다가 다 까먹어서 대학교 2학년 때 '전기자기학1' 과목을 들으면서 다시 공부했다. 그런데 또 슬슬 머릿속에서 지워져 가는 중이라 복습 겸 블로그에 정리 글을 올려보고자 한다. 아직 3학년 1학기 기말고사가 끝나지 않아 사용할 책만 올려놓고 시험이 끝나는 대로 조금씩 글을 올려보도록 하겠다. 사용할 교재는 'Introduction To Electrodynamics 4th Edition - David J. Griffiths'다. 고등학생 때 페이스북 물리학 그룹에서 괜찮은 교재라는 말을 주워듣고 이 책으로 공부를 시작했었다. 대학에 와서 수강했던 전자기학 강의에서는 Hayt 전자기학 교재를 사용했는데 Griffiths 전자기학 교재의 표기와 유도 과정에 익숙해져서인지 수업을 ..