목록전체 글 (252)
Joonas' Note
이번 글에서 사용되는 데이터셋은 Kaggle의 한 Competition인 house-prices-advanced-regression-techniques이다. 개와 고양이 분류 이후로, 회귀(Regression) 모델을 연습하기 위해서 적당한 주제를 잡던 중에 먼저 ML 모델로 데이터 전처리(preprocessing)부터 연습하기로 했다. Regression 모델로 LinearRegression, Ridge, Lasso 이렇게 3개로 학습하면서 튜닝해봤는데, LightGBM이 가장 loss가 낮아서 그걸로 제출했더니 가장 순위가 좋았다. 그래도 RMSE 0.17812(상위 77%)로 매우 낮은 예측을 보였다. https://www.kaggle.com/code/joonasyoon/ml-practice-on-..
Pandas는 기본값이 64비트 타입임에 유의해야한다. ╔══════════════════════════╦════════════════╦════════════════════╦═════════════════════════╦═════════╦═════════╗ ║ Data type ║ dtype ║ CPU tensor ║ GPU tensor ║ NumPy ║ Pandas ║ ╠══════════════════════════╬════════════════╬════════════════════╬═════════════════════════╬═════════╣═════════╣ ║ Boolean ║ torch.bool ║ torch.BoolTensor ║ torch.cuda.BoolTensor ║ bool_ ║ ..
/* */ 주석을 이용해서 JavaDoc을 자동으로 만들 수 있는데, @Override 한 함수도 똑같이 적어주는 건 귀찮고 불필요한 일이다. 그때마다 @see {#link ClassABC} 처럼 작성해서 오버라이드한 함수를 직접 링크했는데, 그럴 필요가 없었다. /** * * @author Hari Krishna * * @since 1.0 */ public class ABCOrg { /** * Print welcome message to employee. * * @param empName * Employee Name */ public void welcomeEmployee(String empName) { System.out.println("Hello " + empName); } } public class..
작년쯤에 Devlog에 정리한 적이 있지만, GitBook 에디터의 한글 타이핑 버그가 너무 심각해서 옮길 겸 다시 정리한다. Singleton Pattern - Today Joonas Learned Config 클래스의 생성자를 직접 호출하지 못하도록 하여, 인스턴스가 한번만 생성되도록 한다. 대신 getInstace 등의 함수로 인스턴스를 가져다 쓸 수만 있도록 제한한다. devlog.joonas.io 싱글톤 패턴 싱글턴 패턴은 인스턴스를 하나만 생성하여 사용하는 패턴이다. 개인적으로 가장 쉬우면서 흔하게 볼 수 있는 디자인 패턴이다. 예시 프로그램(또는 어플리케이션)의 설정 클래스가 있다고 치자. 그럼 이것은 프로그램 전체에서 마치 하나의 파일처럼 동작해야할것이다. 특히, 데이터베이스를 사용하는 클..
ROC(Receiver Operating Characteristic) curve는 TPR(True Positive Rate)와 FPR(False Positive Rate)의 변화값을 보는 데 이용한다. 분류가 잘 되었는 지 확인할 수 있는 성능 지표 중 하나이다. sklearn에서는 이것을 차트로 그려주는 RocCurveDisplay 모듈이 있다. 3가지 방법이 있는데, 직접 TPR과 FPR을 넘겨서 그리는 방법은 문서에서 권장하지 않고, 모델로부터 그리는 from_estimator와, 정답 레이블과 예측 레이블을 넘겨서 그리는 from_predictions를 권장하고 있다. import matplotlib.pyplot as plt from sklearn.datasets import make_classi..
https://stackoverflow.com/questions/11103683/euler-angle-to-quaternion-then-quaternion-to-euler-angle Euler angle to Quaternion then Quaternion to euler angle I'm using lib glm (http://glm.g-truc.net/) for test quaternion but I've a problem; when I convert euler angle to quaternion then immediatly quaternion to euler angles, my result are totally different stackoverflow.com http://marc-b-reynold..
우연히 발견해서 오랜만에 적어보는 코딩으로 풀어보기 게시글이다. 이번에는 코드 없이 풀어본 풀이도 있다. 문제 문제는 간단하다. 1부터 9까지의 숫자를 한 번씩만 사용해서, 수식이 올바르도록 비어있는 9개의 칸을 채우는 문제이다. 코딩 풀이 숫자를 한 번씩만 사용한다는 조건때문에, 전체 경우의 수를 탐색하면 \(9! = 362,880\)개 밖에 안된다. 그래서 모든 경우를 전탐색해도 여유롭게 풀만하다. 답을 찾는 데 10ms도 안 걸릴 것 같다. 코드 import itertools numbers = [i for i in range(1, 10)] count = 0 for p in itertools.permutations(numbers): a1, a2, a3 = p[:3] a4 = p[3] * 10 + p[..
이전 글 - [딥러닝 일지] 오프라인에서 파이토치 모델 불러오기 MNIST 공부한 CNN을 토대로 참가해볼만한 competition이 없을까 찾아보다가 계속 Ongoing 중인 것을 찾았다. https://www.kaggle.com/competitions/digit-recognizer 데이터가 예상과 다르게 생겨서 당황했었다. jpg나 png 이미지 파일로 있을 줄 알았는데 csv 형태였고, (28, 28) 사이즈의 픽셀을 전부 column으로 들고 있었다. VGG16 실패 이전의 글에서 했던 것 처럼, VGG16 뒤에 FC 레이어를 붙여서 학습해봤는데 18+시간이 걸렸다. 가지고 있던 gpu 할당 시간을 초과해서 학습이 그대로 끝나있었다. VGG16은 (3, 224, 224) 크기의 이미지를 입력으로 ..