본문 바로가기

분류 전체보기26

Polars 라이브러리 문법 정리 [1] pandas 이용해서 데이터 분석, 전처리 진행하면서 답답함을 느껴 Polars 라이브러리 공부하면서 작업을 진행한 문법들을 Pandas 와 비교하며 정리해보겠습니다. Polars 라이브러리 특징 1. Index 존재하지 않음. - pandas에서 이용하는 index 사용하는 문법 사용 불가 ex) iloc, set_index, reset_index 2. 절대적인 컬럼 타입의 통일 - 파일 read 시 컬럼내 여러 타입의 Value 존재시 바로 read 할 수 없음 3. df.col_name 과 같은 도트 연산자 사용 불가 - 항상 df["col_name"] 같은 방법으로 접근해야함 Polars VS Pandas 문법 비교 제가 이용한 Polars 버전은 0.18.15 입니다. (pandas 1.4.1).. 2023. 8. 22.
[Docker] 도커 명령어 정리 도커 기본 명령어 컨테이너 삭제 $ docker rm [컨테이너] # docker rm 컨테이너1, 컨테이너2, 컨테이너3 가능 $ docker rm -f [컨테이너] # 실행중인 컨테이너 강제 삭제 실행 중인 컨테이너 확인 $ docker ps $ docker ps -a # 중지된 도커 컨테이너 포함 확인 로컬 ps 저장된 이미지 확인 $ docker images 컨테이너 만들고 실행하기 $ docker run [이미지] $ docker run -it [이미지] # interactive(stidin, stdout, stderr 하게 해주는 명령어), pseudo-TTY 실행(터미널환경 제공) 실행 중인 컨테이너 접속 혹은 명령 $ docker exec -it [컨테이너명] /bin/bash $ dock.. 2023. 6. 24.
Optimization 최적화 방법 optimization이란 머신러닝에서 Y = θ1X + θ0라는 식에서 X라는 input 이 들어왔을 때 Y을 예측하는 Bias, Variance를 고려하여 최적의 θ0, θ1를 구하는 방법론을 말합니다. 1. Derivative 도함수 y = f(x)라는 식에서 f(x) 도함수의 해가 0이 되는 해를 구하게 되면 y = f(x)를 만족하는 최적의 기울기를 구할 수 있습니다. 하지만, 이는 함수의 차수가 높아지거나 다변수 함수가 될 경우 계산복잡도가 무한대로 늘어날 수 있다 점 때문에 복잡한 함수인 경우 사용되지 않습니다.(거의 복잡하기 때문에 사용 안해요..) 2. Gradient Descent 경사하강법 머신러닝의 근간이 되는 Optimization 기법으로 Y = θ1X + θ0 라는 식에서 Y-.. 2022. 9. 12.
[차원축소] EVD, SVD, PCA, LDA 차원 축소는 차원의 저주 문제들을 해결해주며 모델 학습에 있어 주요 특징들만 학습시킬 수 있게되어 머신러닝에 있어서 아주 중요한 기법인데요. 대표적으로 고유값과 고유벡터를 이용한 차원 축소 기법들을 공부해보겠습니다. 알아야 할 수학 정의 1. 고유값과 고유벡터 Ax = Λx x 벡터에 A 행렬 곱하여 선형변환을 했을 때 이때 람다(실수)와 x벡터를 곱한 것이 같다면 이때 A를 고유 값이라고 하고 이를 만족하는 기저들을 고유벡터라고 한다. 이를 통해 얻을 수 있는 것은 기저를 변환 시켜 A를 선형변환시킨 것이 얼마나 실수배 되었는 지 한눈에 파악한다는 이점이 있다. SVD (Sigular Value Decomposition, 특이값 분해) 특이값 분해(Singular Value Decomposition, .. 2022. 9. 6.
차원의 저주(Curse of Dimensionality) 차원의 저주는 데이터의 차원이 증가할 수록 데이터 간의 거리 또한 증가하게되고 희소한 공간을 가지게 된다는 의미로 쓰이는 데 이때 모델 학습 안 좋은 영향을 주어 PCA 같은 차원 축소를 한다는 것은 알겠는데 '정말 그럴까?'라는 생각이 들었습니다. 그 문제들에 대해서 구체적 실험을 바탕으로 작성된 글이 있어 내용을 스크랩 하면서 이해한 만큼 정리해 보고자 합니다. 본 글에서는 차원의 저주의 크게 4가지 특성으로 정리해놓았습니다. 1. 각기 다른 두 점은 높은 차원일 수록 거리가 더 멀어진다. 2. 점은 높은 차원일 수록 중심에서 더 멀어진다. 3. 각기 다른 모든 점들은 거리는 같아진다. 4. 모델이 예측 정확도가 100%에 가까워진다.(과적합) 1. 각기 다른 두 점은 높은 차원일 수록 거리가 더 멀.. 2022. 9. 4.
XGBoost, LightGBM, Catboost XGBoost, LightGBM, Catboost 차이를 알아보도록 하겠습니다. XGBoost (Extreme Gradient Boosting) 기존 Gradient Boost의 한계로 학습 시간이 오래걸린다는 점, 스케일업된 데이터 학습에 취약하다는 점, 과적합되기가 쉽다는 점 등이 있었습니다. 이러한 단점들을 해결하고자 나오게 된 것이 XGBoost 입니다. - residual 을 학습하는 기존 GBM에 추가적으로 similarity score, gamma, gain 학습 방법론이 추가되었습니다. - 병렬 학습이 가능해져 스케일 업 데이터에서도 빠른 학습이 가능해졌습니다. - 적절한 규제를 하이퍼파라미터로 줄 수 있게 되어 과적합을 막는데 효율적이게 되었습니다.(lambda(L2), alpha(L1).. 2022. 8. 29.
GradientBoosting 하이퍼 파라미터 Skit-learn GradientBoosting 공식 문서를 바탕으로 주요한 하이퍼 파라미터들을 정리해보았습니다. Loss : squared_error, absolute_error, huber, quantile, default= squared_error GBM 에서 사용되는 목적함수를 의미한다. - squared_error 은 (타겟-예측값)의 제곱을 한 loss function 이다. - absolute_error 는 (타겟-예측값)의 절대값을 씌운 loss function 이다. 동일한 타겟, 예측값이였을 경우 squared_error 보다 적은 loss 값이 생성되어 학습되게 된다. - huber 는 squared_error(L1)와 absolute_error(L2)를 합친 형태로 L1은 상대적으.. 2022. 8. 27.
Gradient Boosting Gradient Boosting은 앙상블에 이전까지의 오차를 보정하도록 예측기를 순차적으로 추가합니다. 그리고 이전 예측기가 만든 Residual Error에 새로운 예측기를 학습시킵니다. Gradient Boost 모델이 학습하는 원리를 파악한 뒤 정리해 보세요. 또한, 여기서 말하는 Residual Error가 무엇인지 찾아보고, 서술하시길 바랍니다. Ada boosting은 Gradient Boosting과는 다르게 못 맞춘 데이터에 대해서 가중치를 주며 이를 더 잘뽑히도록 하는 앙상블 모델이였습니다. 이와 다르게 Gradient Boosting은 전체 데이터에 대해서 계속해서 학습한다는 점이 큰 차이점입니다. Gradinet Boosting으로 파생된 모델로 XGBoost, LightGBM, Ca.. 2022. 8. 22.
벡터와 벡터 유사성측정 벡터 벡터 유사성 측정 방법 3가지 L1,L2, 코사인 유사도 다른 많은 방법 존재 코사인 유사도 벡터의 내적을 이용해 두 벡터의 코사인 값을 구하는 것 x*y/|x|*|y| =cos 인것을 이용 1. 유클리드 거리 계산 1-1 def euclidean_distance(v1,v2): distance = np.sqrt(np.sum((v1-v2)**2)) #distance = np.linalg.norm(v1,v2) 이거 norm함수의 문제가 있음 위에꺼 쓰자 return distance 1-2 f = lambda x,y : np.sqrt(np.sum(np.square(x,y))) 2. 코사인 유사도 def cosine_similarity(v1,v2): # distance = np.sum(v1*v2)/((np.. 2022. 5. 14.
[통계학] 3. 공분산과 상관계수 및 시각화 ※ 인공지능 회귀분석 강의 통계와 확률을 바탕으로 정리하였습니다. 2차원 데이터 분석은 크게 2가지 방법으로 볼 수 있다. 1. 수치 지표: 상관계수, 공분산 2. 시각화 그래프: 산점도, 회귀직선 등 공분산 두 변수의 상관관계를 수치화 하기 위한 지표 두 변수의 각각 편차의 곱의 합과 길이 만큼 나눈 것 # 공분산 구하기 np.cov(수학점수, 영어점수, ddof=0) 아래와 같이 매트릭스로 나옴 자기 자신과 자기 자신의 공분산은 분산으로써 결과값이 나옴 array([ [86, 65], [65,68] ]) 하지만, 공분산으로 우리는 상관관계를 파악하기는 쉽지 않다. 왜냐하면 변수의 단위가 변수마다 다르기 때문이다. ex) (키: cm, 몸무게: kg) 각 두 값은 하나로 공분산을 표현할 때 어느 정도 .. 2022. 5. 14.
[통계학] 4. 확률 및 통계 ※ 인공지능 회귀분석 강의 통계와 확률을 바탕으로 정리하였습니다. 통계 큰 흐름 두가지 1. 추측 통계 일부 데이터로부터 전체의 통계적 성질을 추측하는 방식 관측 대상 전체의 통계쩍 성질을, 그 관측 대상의 일부분만 사용하여 추측 ex) 표본을 뽑고 표본으로 모집단의 성질(평균, 분산 등등)을 추측하는 것 2. 기술통계 전체 데이터의 통계 지표를 계산하는 방식 ex) 모집단을 가지고 모집단의 성질()을 계산하는 방식 통계 및 확률 용어 정리 모집단(population) 추측하고 싶은 관측 대상 전체 -모수 : 모집단의 평균(모평균),분산(모분산), 상관계수 등과 같은 모집단의 통계지표 표본(sample) 추측에 사용되는 모집단의 일부분 표본 추출(sampling): 모집단에서 표본을 골라내는 일 표본 크.. 2022. 5. 14.
[통계학] 1. 산포도 (분산, 표준편차, 사분위) ※ 인공지능 회귀분석 강의 통계와 확률을 바탕으로 정리하였습니다. 산포도 대표값(보통 평균)을 중심으로 자료들이 흩어져 있는 정도 하나의 수치로 표현됨 따라서 수치가 낮을 수록 평균에서 분포가 밀집 수치가 높을 수록 평균에서 분포가 퍼짐을 나타냄 ex) 분산, 표준편차, 사분위 편차 각 데이터가 평균으로부터 어느 정도 떨어져 있는지를 나타내는 지표 ex) 전체 학생 국어 성적 평균 50일때 본인은 100맞았다면 편차는 100-50으로 50이 된다. 편차 값들의 합과 평균은 0이다. 따라서 편차 평균으로는 산포도를 계산할 수 없다.(그래서 분산 나옴) 분산 편차의 제곱을 합산하여 평균을 계산한 값 # pandas df_score.var() df_socre.var(ddof=0) ddof는 자유도를 의미하며 .. 2022. 5. 11.
[통계학] 0. 대표값(평균값, 중앙값, 최빈값) 대표값이란 주어진 데이터를 대표하는 특정 값 데이터를 하나의 값으로 요약한 지표 ex) 평균값, 중앙값, 최빈값 등 평균값(mean,average) # pandas 평균 구하는 두가지 방법 sum(df['age'])/len(df['age']) df['age'].mean() # numpy 평균 구하는 법 np.mean(df['age']) 중앙값(median) 데이터를 크기 순서대로 나열하였을 때, 정확하게 중앙에 위치한 값 ※짝수일 때와 홀 수 일때 계산 방법이 다름 짝수일 경우 중앙에 가까운 두개 수를 평균낸 값을 중앙값으로 함 ex) 데이터 개수 n, 홀수라면 (n+1)/2번째 데이터가 중앙값 홀수일 경우 중앙에 있는 값을 중앙값으로 함 ex) 데이터 개수 n, 짝수라면 n/2,(n/2)+1 번째 데이.. 2022. 5. 11.
git Conventional Commits 1. commit의 제목은 commit을 설명하는 하나의 구나 절로 완성 2. 영어로 작성하며 단어 첫글자는 대문자 ex) Importance of Capitalize 3. prefix를 꼭 앞에 달아야 함 feat: 기능 개발 관련 fix: 오류 개선 혹은 버그 패치 docs: 문서화 작업 test: test 관련 conf: 환경설정 관련 build: 빌드 관련 ci: Continuous Integration 관련 활용 예 feat: Add server.py fix: Fix Typo server.py docs: Add README.md, LICENSE conf: Create .env, .gitignore, dockerfile BREAKING CHANGE: Drop Support /api/v1 refac.. 2022. 5. 6.
git 설치 후 유용한 도구 소개 git 설치 후 유용한 도구 소개 1. git 설치 2. vim 과 cat $ git config --global user.name "your git name" $ git config --global user.email "your git email" $ git config --global core.editor "vim" #git commit시 vim으로 commit message설정 가능 $ git config --global core.pager "cat" #git 파일 cat으로 읽음 $ git config --list # 정상으로 설정 되어있는 지 확인 $ vi ~/.gitconfig #수정 필요시 이용 vim과 cat을 설정해주어 commit할 때와 파일 확인 할 때 유용하게 쓰일 수 있다. 3. .. 2022. 5. 6.
Git과 Github 개념 Git 형상 관리(버전관리) 시스템 -VCS(version control system) ==SCM(source code management) 이를 더 넓게 이야기하면 SCM(source configuration management 형상관리) 특징 - 빠른속도, 단순한 구조 - 분산형 저장소 지원 (같은 repo 지만 branch들로 다르게 저장관리 가능) - 비선형적 개발(수천개의 브랜치) 가능 Github cloud remote(저장 공간) repository services 즉, 형상관리를 위한 대표적 저장 공간 중 하나 (현재 microsoft가 인수) github 이외에 Bitbucket, gitlab 이 있음 - Bitbucket: Atlassian이 서비스하며 jira,confluence 등 .. 2022. 5. 6.
shell 및 Vim command Shell command $ cd Documents/ #경로 이동 $ mkdir dev #폴더 만들기 $ cd .. #상위 경로 이동 $ pwd #현재 위치 $ touch readme.md #파일만들기 $ mv readme.md bin/ #파일 경로 이동 $ cp readme.md bin/ #파일 복사 $ mv readme.md ./README.txt #파일 이동 및 파일 이름 변경 $ rm README.txt #remove 삭제 $ rm -rf bin/ #remove -real force 파일 삭제하는데 강제적으로 삭제(확인 없이 삭제) $ chmod 750 readme.md #디렉토리 권한 변경 (750은 root, 동일 그룹 사용자만 디렉토리를 열 수 있게 변경) $ cat readme.md #파일.. 2022. 5. 6.
벡터 연산 및 가중치 행렬 스칼라Scaler 숫자 하나 ex)1,2,3 벡터Vector 숫자 여러개 v=(1,2,3) 벡터 표기 함수의 종류 다변수 스칼라 함수 표현 f(x,y)는 그릴 수 있다. 오른쪽 그림 f(x,y)=c 그래프로 c의 개수만큼 등고선이 그려진 것(c=200,30,600) 총 3개의 선이 그려진 것 f(x,y,z)는 그림으로 표현할 수 없음 3차원부터는 그릴 수 없다 f(x,y,z)=c(상수)같은 그래프는 c에 대한 등고선을 그을 수 있음 하지만 이해하기는 어려움 가중치 행렬 가중치 행렬(w)은 노드의 그래프 표기로 생성된 가중치 그래프이다. 그래프 정의 정점(vertex)의 집합 V와 서로 다른 정점쌍(vi,vj)를 연결하는 모서리(edge)의 집합E로 구성된 구조 그래프 형태 단순 그래프(simple gra.. 2022. 4. 14.
머신러닝을 위한 이산수학 집합의 개념 집합 어떤 조건에 의해 대상을 분명하게 정할 수 있을 때, 그 대상들의 모임 원소 집합을 이루는 개별 대상 집합의 표현 2가지 원소 나열법 ex) {1,2,3,4,5}: 순서 상관 없음 조건 제시법 ex) {x|x는 5이하의 자연수} 집합을 그림으로 표현 벤다이어그램 ex) A={2,3,5,7} 원소의 개수 n(A)로 표현하며 다음 A집합의 부분집합의 개수는 2**n이다. n은 2,3,5,7이므로 총 4개이므로 부분집합의 개수는 2**4이다. 공집합 원소가 없는 집합 ex)∅, {} 부분집합 집합 A의 모든 원소가 집합 B에 속할 때, A가 집합 B의 부분집합 A⊂B 공집합과 자기 자신에 대해서 부분집합임 A⊂A, ∅⊂A 공집합은 {}이므로 무조건 부분집합일 수밖에 없음 ※진부분집합 부분집합.. 2022. 4. 14.
데이터베이스 Database -체계화된 데이터의 모임 -여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음 DBMS(DataBase Management System) -데이터의 모임인 Database를 만들고, 저장, 관리 할 수 있는 기능을 제공하는 응용프로 그램 -Oracle, Mysql, MariaDB, DB2, MS SQL Server 등등 DBMS의 특징 -데이터의 무결성 -데이터의 중복 방지 -보안(추상화, 접근권한) -성능 향상 -프로그램 수정과 유지 보수 용이 자기기술성이란 특정 프로그램으로만 수정 될 수 있는가를 뜻한다. 즉, file system은 자기기술성이 없고 db는 자기기술성이 있음 ex) csv파일을 word로 못 읽음 하지만, db는 rdms끼리 공유 가능.. 2022. 4. 6.