전체 글 189

Python으로 CSV파일 읽기

엑셀의 확장자로 흔하게 볼 수 있는 형식인 , 콤마를 구분자로 하여 파일을 구성하는 CSV 파일을 파이썬에서 다룰 수 있는 라이브러리를 공부해보자. (CSV : Comma-separated values) 파이썬에서는 csv라는 라이브러리를 지원한다. 우선, csv 라이브러리를 임포트해준다. import csv 그 이후는 아주 쉽다. # 불러올 파일 변수 path = "class-descriptions-boxable.csv" # 파일을 python으로 로드하기 boxable_f = open(path, 'r', encoding='utf-8') print(type(boxable_f)) # # csv형태로 파일을 읽어준다. boxable_desc = csv.reader(boxable_f) # 불러온 파일 확인해..

Programming/python 2022.09.22

torch.view (파이토치 뷰) 함수 설명

# Manual -> https://pytorch.org/docs/stable/generated/torch.Tensor.view.html torch.Tensor.view — PyTorch 1.12 documentation Shortcuts pytorch.org 파이토치 함수 중 view 함수는 tensor형태의 데이터의 shape을 바꿔주는 함수이다. 원본데이터도 같고, 성분의 수도 같지만 이를 구성하는 shape만 다르게 만들어주는 함수이다. 예시는 아래와 같다. # make the random tensor input = torch.randn(1, 28, 28) - 랜덤한 값으로 tensor를 만들어준다. # reshape the tensor using torch.view n = 1 output1 = ..

[메타코드] 머신러닝 기초를 위한 무료강의 (4) : 오버피팅(Overfitting), 언더피팅(Underfitting) 해결방법

https://youtu.be/oyzIT1g1Z3U 1. 검증 데이터셋을 활용한 머신러닝 모델 학습 - 기존의 학습, 평가 데이터셋으로만 진행하던 것에서 검증데이터셋을 추가하여 학습의 정확도를 높히는 방법 - 학습된 모델을 중간점검하는 느낌 # LOOCV (Leave One Out Cross Validation) 방법론 - 모든 학습 데이터 샘플 1개마다 검증하는 방법 - (오직 한개의 데이터 샘플로만 검증하는 것은 편향된 결과를 주기 때문) - 모든 데이터로 검증하기 때문에 계산량이 매우 높아짐 # K-fold cross validation(교차검증) 방법론 - 계산량이 많은 LOOCV의 단점을 보완하기 위한 목적 - (사람이 입력) 학습데이터를 K개로 쪼개서 순서대로 검증하는 방식 - K값이 커질수록..

AI/lectures 2022.09.20

[칸아카데미] 모두를 위한 선형대수학 - (8) 벡터의 내적(Dot product)과 벡터의 길이(Length), 내적의 성질 (분배법칙, 교환법칙, 결합법칙)

벡터의 내적 - 각 벡터의 동일 항을 곱해서 모두 더해준 값 벡터의 길이 - 벡터 내 성분들의 제곱값을 모두 더한 후, 루트를 씌워준(제곱근) 값 벡터의 길이는 같은 벡터끼리의 내적에 제곱한 값이다. 벡터의 내적의 성질 3가지 - 교환법칙 (Commutative Property) : 내적 곱의 순서가 상관없는 특징 - 분배법칙 (Distributive Property) : 값을 각각 곱하고 더할 수 있는 특징 - 결합법칙 (Associative Property) : 앞쪽의 연산을 먼저하든 뒷쪽의 연산을 먼저하든 상관없는 특징

[메타코드] 머신러닝 기초를 위한 무료강의 (3) : 편차와 분산 (오차/에러), 오버피팅(Overfitting), 언더피팅(Underfitting)

https://youtu.be/oyzIT1g1Z3U * 간단한 모델은 파라미터 수가 낮고, 복잡한 모델은 파라미터 수가 많다. * 예측값에 대한 MSE는 예측값에 대한 분산(Variance)과 편차(Bias)의 합이다. - 편향과 분산은 모델을 평가할 때 아주 중요한 요소이다. # 편차/편향(Bias) : [실제값]과 [예측값(들의 평균값)]의 차이 # 분산(Variance) : 예측값들간의 차이 ([예측값1]과 또 다른 [예측값2,,,,n]의 차이들) # Trade-off : 분산과 편향이 모두 낮은 지점 - 이 순간의 파라미터값을 찾는 것이 머신러닝의 목표 * 오버피팅 (Overfitting) - 데이터수는 부족하고 모델은 복잡할 때에 발생할 수 있는 과적합 현상 - 여러 예측값들 사이의 차이 = 분..

AI/lectures 2022.09.18

[메타코드] 머신러닝 기초를 위한 무료강의 (2) : 머신러닝 기초수학개념, Optimmization 최적화

https://youtu.be/oyzIT1g1Z3U * 편미분 : 원하는 변수에 대해서만 미분하는 것 (원하는 변수 이외에는 상수 취급) * 연쇄 법칙 (chain rule) : 상쇄되는 현상을 이용해 새로운 u를 대입하여 미분값을 구하는 방법 * 손실함수(Loss Function) - 머신러닝 모델을 평가하기 위함 - ex. MSE (Mean Square Error) : 회귀모델의 대표 손실함수 # 최소 제곱법 (Least Square Method) - MSE 방법을 활용하여 풀이할 수 있음 - 최적의 파라미터를 구하기 위한 방법 중 하나 - 데이터에 대한 오차를 최소화하도록 함 - 단순한 선형회귀의 경우, (오차가 존재하지만) 최적의 해를 구할 수 있지만, 복잡한 모델의 경우, 최소 제곱법으로 해결하..

AI/lectures 2022.09.18

[칸아카데미] 모두를 위한 선형대수학 - (7) 부분공간의 기저(a basis of subspace)

V를 부분공간이라고 했을 때, 모든 벡터가 선형독립인 집합S에 대한 생성(span)이 V가 된다. 이를 S는 V(부분공간)의 기저라고 한다. = S is a basis for V. * V의 기저인 집합 S는 하나뿐만이 아니라 여러개가 될 수 있다. (=multiple valid basis) * 단위벡터(unit vector)의 집합으로 부분 공간의 기저(basis)를 만들 때, 이를 표준기저(Standard Basis)라고 한다.

[메타코드] 머신러닝 기초를 위한 무료강의 (1) : 머신러닝 필수기본개념, 지도학습(Supervised Learning)

https://youtu.be/oyzIT1g1Z3U * 인공지능(AI) > 머신러닝(ML) > 딥러닝(DL) * 머신러닝 - 통계적 기법 활용하여 모델이 가볍다 - 딥러닝이 머신러닝에 속하는 개념이기 때문에 딥러닝을 하기 위해서는 머신러닝도 기초적으로 알아야 한다. * 머신러닝의 종류 - 비지도 학습 : 차원축소(PCA, SVD, LDA, t-SNE, UMAP 등), 군집화(K-Means, Mean Shift, Gaussian Mixture Model, DBSCAN) - 지도 학습 : 회귀, 분류, 앙상블 방법이 있음 - 강화 학습 # 지도학습 - 회귀(Regression) - 연속형 데이터 - 단순 선형 회귀, 다중 선형 회귀, 다항 회귀 - 최적화 방법(loss function) : MSE(Mean ..

AI/lectures 2022.09.14

Jupyter lab 실행 시, 에러(Error) 설명 - NumExpr detected 12 cores but "NUMEXPR_MAX_THREADS" not set, so enforcing safe limit of 8.

# NumExpr User Guide - Threadpool Configuration https://numexpr.readthedocs.io/projects/NumExpr3/en/latest/user_guide.html#threadpool-configuration NumExpr 2.0 User Guide — numexpr 2.6.3.dev0 documentation The numexpr package supplies routines for the fast evaluation of array expressions elementwise by using a vector-based virtual machine. Enabling Intel VML support Starting from release 1.2 on,..

Programming/errors 2022.09.07