목록전체 글 (222)
꺼내먹는지식 준
groupby 메소드 자체는 그룹을 생성하기만 하고, 실제로 어떤 연산을 수행하지는 않는다. 그래서 groupby만 단독으로 사용하면 그 자체로는 큰 의미가 없다. 일반적으로 groupby 뒤에 다른 연산 메소드(예: sum, mean, size, max, min 등)를 붙여서 그룹별로 어떤 계산을 할지 지정한다. 예를 들어, df.groupby(['date', 'positive']).size(). data_df.groupby(['date', 'positive', 'free']).size() size() 를 붙여서 지정한 각 그룹에 대한 개수를 얻어올 수 있다. free 라는 column 이 추가 되자 더 세분화된 것을 알 수 있다. data_df.groupby(['date', 'positive']).s..
Vue 찍먹 NodeJS 를 설치하는 이유는 Terminal CLI 에서 npm 을 이용하기 위함이다. npm은 각종 웹 개발 라이브러리 설치 도우미이다. App.vue 파일에 메인 화면을 작성하면 된다. App.vue 파일을 html 파일로 컴파일해주기에 가능한 것이다. 컴파일은 main.js가 한다. node modules 프로젝트를 위한 모든 라이브러리 src 실제로 소스 코드 짜는 공간 public html, 기타 파일 보관 package.json 라이브러리 버전 기록 DOM 이란? Document Object Model 즉, 웹 문서(페이지)를 객체화한 개념 문서 객체란? 이나 같은 html문서의 태그들을 JavaScript가 이용할 수 있는 객체(object)로 만든 것 좀 더 쉽게 설명하자면..
다음의 과정을 걸친다. WSL 설치, ubuntu 설치, Docker, Cuda toolkit 설치 WSL, ubuntu, Docker 관련 내용은 WSL, Docker 글을 살펴보자. WSL 설치 https://www.lainyzine.com/ko/article/how-to-install-wsl2-and-use-linux-on-windows-10/ [Windows 10] WSL2 설치 및 사용법 Microsoft에서는 2020년 5월 리눅스를 윈도우와 통합해서 사용할 수 있는 WSL2를 발표했습니다. 이 글에서는 WSL2를 설치하고 사용하는 방법을 소개합니다 www.lainyzine.com 위 글이 워낙 내용을 잘 정리하고 있어, 실전 설치 내용만 간략하게 아래 정리한다. WSL 설치를 위한 사전 진행..
Linux, Window Linux와 Window 는 다양한 차이가 있지만, 결정적으로 몇가지 구조적 차이가 있고, 그 중 kernel에 대해 정리해보자. kernel 이란? 간단하게 예를 들어보자. MS word 에서 프린트 icon을 클릭하면 프린터기에서 인쇄가 된다. 사실, 프린터기는 프린트를 위한 특별한 언어도 있고, 컴퓨터와 소통하기 위한 protocol이 존재하나 우리는 그런걸 몰라도 된다. 이는 kernel 이 하드웨어와 os 간에 추상적인 layer를 놓아 소통할 수 있도록 하기 때문이다. 즉, kernel은 os의 brain 이다. Window kernel Window의 kernel은 hybrid형이다. 즉, 두가지 다른 kernel architectures을 결합해서 만들었다 Monol..
파이썬에는 두가지 sequence 가 존재한다. Container 는 objects 의 reference 를 hold 하는 반면, flat sequence 는 실제 값을 저장한다. Container sequences: list: a mutable sequence that can hold any type of object tuple: an immutable sequence that can hold any type of object collections.deque: a mutable sequence optimized for adding and removing items from both ends Flat sequences: str: an immutable sequence of Unicode character..
XGBoost * 영상 출처: https://www.youtube.com/watch?v=OtD8wVaFm6E XGBoost 는 EXTREME Gradient Boost의 약자이다. 즉, Gradient Boost와 굉장히 유사하다. 관련 내용이 상당히 많으나, Regression 관련 어떻게 동작하는지만 간단하게 살펴보자. (02:44) 초기값은 아주 간단하게 0.5로 보통 설정한다. 초기값을 average로 설정했던 Gradient Boost와 다르다. (03:40) 또다른 다른 점으로, Gradient Boost는 MSE Regression Tree를 사용하여 RSS(예측과 실제의 오차의 제곱합) 기반으로 분기점을 선택한 반면 XGBoost는 Similarity Score 이라는 것을 사용한다. Si..
본 글은 https://angeloyeo.github.io/2019/08/01/SVD.html 특이값 분해(SVD) - 공돌이의 수학정리노트 angeloyeo.github.io 내용을 이해하되, 중간중간 기본적 개념을 조금 더 추가한 글입니다. 특이값 분해(Singular Value Decomposition, SVD)는 임의로 $m /times n$ 차원의 행렬 $A$에 대하여 다음과 같이 행렬을 분해할 수 있다는 '행렬 분해' 방법 중 하나이다. 차원 축소 기법 PCA 에 대해 살펴보았었는데, SVD 도 차원 축소 기법 중 하나이다. (차원 추출) 추천 시스템 관련 글에서 SVD 즉 특이값 분해를 다뤘었기에 그 글만 참고해도 좋다. $$A = U \Sigma V^T$$ A 라는 행렬을 다음과 같이 $U..
들어가며 feature의 개수가 1, 2개인 경우에는 시각적으로 표현하기가 쉽다. 하지만 feature 개수가 많아지면 시각적으로 표현이 불가능하다. 또한 feature 개수가 많아지면, 데이터를 학습의 sparsity 도 높아지고, 이로 인해 저장 공간, 학습 속도 이슈를 마주한다. 직관적으로 생각해도 feature간 중요도 차이가 있다. 이로 인해 차원 축소를 하게 되는데, 차원 축소는 feature 선택과 feature 추출 두가지 방식이 있다. 이 중 feature 선택에 해당하는 PCA 를 간단하게 설명해본다. 본 내용은 StatQuest 의 https://www.youtube.com/watch?v=FgakZw6K1QQ 영상을 직접적으로 참고하여 작성하였다. 본문 결과를 미리 보자면 다음과 같이..
Gradient Boost는 굉장히 다양한 분야에 적용 가능하도록 디자인 된 알고리즘이다. 하지만 주로 continous value를 예측하는 모델로 사용되고, 나머지도 분류 모델 정도로 사용된다. 본 글에서는 먼저 회귀 모델로의 Gradient Boost를 다루고 분류 모델로의 Gradient Boost를 다뤄본다. 회귀 모델로의 Gradient Boost AdaBoost 와 Gradient Boost의 차이 AdaBoost를 잘 모르면 이 글을 읽고오자. 위와 같은 데이터 샘플들이 주어졌다고 가정해보자. AdaBoost 는 여러개의 stump의 결합으로 의사결정을 하는 머신러닝 기법이다. 선행 stump가 잘 분류하지 못했던 샘플들에 대하여 후행 stump가 얼마나 잘 분류했는가에 따라 각자 다른 A..
Adaboost 를 만드는 방법이 몇가지 존재하지만, 그 중 Decision Tree를 사용하는 것이 가장 일반적이다. Decision Tree를 기반으로 하는 Adaboost 를 살펴보자. 랜덤 포레스트 내용이 필수적으로 등장하니, 잘 모르는 분들은 먼저 이 글을 읽고 오면 좋다. 랜덤 포레스트는 트리를 만들 때 마다 full-sized tree를 만든다. 그리고 max sample 개수나 특정 조건에 따라 각각의 트리의 깊이가 다르다. 반면, Adaboost는 주로 깊이가 1인, 즉 루트 노드에 두개의 leaves 만 존재한다. 이러한 형태의 Tree를 Stump 라 한다. 아래 이미지와같이 stump 들의 모임은 주로 Forest of Stumps 라 부른다. 당연히 Stumps는 feature 하..