본문 바로가기

프로그래밍167

Python map 함수 사용법 알아보기. 이번 포스팅에서는 파이썬(Python) 내장 함수 map 사용 방법을 알아보자. map 사용법 1) 필요성 먼저 map 함수가 왜 필요한지 예를 통하여 살펴보자. 숫자를 담고 있는 리스트에 원소별로 제곱을 한다고 해보자. 가장 먼저 떠오르는 방법은 다음과 같을 것이다. def f(x): return x**2 li = [1,3,5,6,7,8] res = [] for v in li: res.append(f(v)) print(res) 하지만 이는 빈 리스트와 for 문을 사용하고 append까지 해주는 등 코딩해야 할 것이 많다. 2) map 사용법 이제 같은 작업을 map을 이용하여 수행해보자. map은 첫 번째 인자로 리스트 원소에 적용할 함수, 두 번째 인자로 대상 리스트(또는 순회 가능한 객체)를 받는.. 2022. 8. 29.
[SciPy] 2. 적분 계산하기 (feat. quad, dblquad, tplquad) SciPy는 적분 계산 관련된 기능을 제공하고 있다. 이번 포스팅에서는 Scipy에서 제공하는 적분 관련 기능인 quad, dblquad, tplquad 사용 방법에 대해서 알아본다. - 목차 - 1. 일반 적분 계산하기 with quad 2. 이중 적분(Double Integral) 계산하기 with dblquad 3. 삼중 적분(Triple Integral) 계산하기 with tplquad 1. 일반 적분 계산하기 with quad 1) 기본 quad를 사용하면 일반적인 적분 계산이 가능하다. quad는 첫 번째 인자로 적분하고자 할 함수를 넣고, 두 번째, 세 번째 인자의 각각 적분 구간의 시작 값과 끝 값을 넣어준다. quad는 적분 값과 오차를 튜플로 리턴하게 된다. 아래 코드는 $$\int_{.. 2022. 8. 28.
[SciPy] 1. 확률 분포와 확률 변수 (feat. scipy.stat) Scipy에서는 여러가지 확률 분포에 대한 확률 밀도 함수 값, 누적 분포 값 및 확률 변수를 생성할 수 있는 강력한 기능을 제공한다. 이번 포스팅에서는 실제로 통계에서 자주 활용되는 여러 분포(정규 분포, 카이 제곱 분포, 이항 분포 등)에 대해서 확률 밀도 함수 값(pdf, pmf), 누적 분포(cdf), 분위수(ppq) 그리고 확률 변수(난수) 생성 방법(rvs)을 알아보려고 한다. - 목차 - 1. 연속형 확률 변수 2. 이산형 확률 변수 1. 연속형 확률 변수 여기서는 정규분포, 유니폼(균등)분포, t 분포, 카이 제곱 분포, F 분포를 다룬다. 1) 확률 분포 정의 먼저 필요한 모듈을 불러오고 확률 분포를 먼저 정의한다. from scipy.stats import norm, uniform, t.. 2022. 8. 28.
[Scikit-Learn] 14. Permutation Importance 계산 해보기 (feat. permutation_importance) 변수 중요도 방법론 중에서 Permutation Importance 이 많이 사용되는데 Scikit-Learn (sklearn)에서는 permutation_importance를 이용하여 Permutation Importance 를 계산할 수 있다. 이번 포스팅에서는 Scikit-Learn (sklearn) 에서 제공하는 permutation_importance 사용 방법을 알아보자. Permutation Importance의 대한 아이디어와 알고리즘에 대한 내용은 여기를 참고하면 된다. permutation_importance 사용법 먼저 필요한 모듈을 임포트하고 데이터를 받아준다. 여기서는 보스턴 집값을 사용했다. 그러고 나서 Permutation Importance를 비교를 위해 의사결정나무와 Ada.. 2022. 8. 28.
[Scikit-Learn] 13. 교차 검증(Cross-Validation)을 통한 최적 파라미터 찾기 (feat. GridSearchCV) Scikit-Learn에서 제공하는 GridSearchCV를 이용하여 예측 모형의 파라미터 최적값을 Grid Search 교차 검증으로 찾을 수 있다. 이번 포스팅에서는 GridSearchCV 사용법을 살펴본다. GridSearchCV 기본 사용법 GridSearchCV 클래스는 기본적으로 예측 모형 클래스(estimator), 최적화할 파라미터와 grid 값을 담고 있는 딕셔너리(param_grid) 그리고 교차 검증시 데이터 분할 개수(cv) 인자를 지정한다. 더 자세한 설명은 여기를 참고하기 바란다. GridSearchCV( estimator, param_grid, cv) 기본 사용법을 알았으니 예제를 통해 구체적인 사용법을 알아보자. GridSearchCV 예제 여기서 살펴볼 예제는 서포트벡터머신.. 2022. 8. 9.
[Scikit-Learn] 12. 파이프라인(Pipeline) 사용하기 (feat. Pipeline, make_pipeline) 이번 포스팅에서는 Scikit-Learn(sklearn)에서 Pipeline의 개념과 이를 사용하는 방법에 대해서 알아보려고 한다. - 목차 - 1. Pipeline 개념 2. Pipeline 사용법 Pipeline 개념 Pipeline은 데이터 전처리에서 학습까지의 과정을 하나로 연결해주는 것이라고 보면 된다. Pipeline이라는 단어도 각 과정을 파이프로 연결된 모습을 묘사한 것 같다. 아래 그림은 변수 선택에서부터 학습까지의 과정을 Pipeline을 사용하지 않은 경우와 사용하는 경우를 나타낸 것이다. 왼쪽 그림은 Pipeline을 사용하지 않는 경우 즉, 기존 방식의 모형 학습 과정이다. 기존 방식은 변수 선택 과정을 코딩하고 선택된 변수를 다시 표준화 한 다음 이를 가지고 모형을 학습하게 된다.. 2022. 8. 7.
[Scikit-Learn] 11. 랜덤포레스트(Random Forest) 모형 학습하기 (feat. RandomForestClassifier, RandomForestRegressor) Scikit-Learn(sklearn)에서는 RandomForestClassifier, RandomForestRegressor를 이용하여 랜덤포레스트(Random Forest) 모형을 학습할 수 있다. 이번 포스팅에서는 Scikit-Learn(sklearn)을 이용하여 랜덤포레스트를 학습하는 방법을 알아본다. 랜덤포레스트는 분류 문제, 회귀 문제에 모두 적용할 수 있으므로 각각에 대해서 알아보자. - 목차 - 1. 분류 문제(RandomForestClassifier) 2. 회귀 문제(RandomForestRegressor) 랜덤포레스트(Random Forest)에 대한 개념은 아래에 포스팅해두었으니 궁금하신 분들은 읽어보면 좋다. 24. 랜덤포레스트(Random Forest)에 대해서 알아보자 24. 랜.. 2022. 8. 7.
[Scikit-Learn] 10. 배깅(Bagging) 모형 학습하기 (feat. BaggingClassifier, BaggingRegressor) Scikit-Learn(sklearn)에서는 BaggingClassifier, BaggingRegressor를 이용하여 Bagging 예측 모형을 학습할 수 있다 알아보려고 한다. 이번 포스팅에서는 Bagging 예측 모형을 분류 문제와 회귀 문제로 나누어 학습 방법을 알아본다. - 목차 - 1. 분류 문제(BaggingClassifier) 2. 회귀 문제(BaggingRegressor) 배깅에 대한 개념은 아래 포스팅에 소개했다. 읽어 보면 좋은 내용이 많다. 23. 배깅(Bagging)에 대해서 알아보자 23. 배깅(Bagging)에 대해서 알아보자 이번 포스팅에서는 앙상블 기법의 하나인 배깅(Bagging)에 대해서 알아보고자 한다. 여기서 다루는 내용은 다음과 같다. - 목차 - 1. 배깅(Bag.. 2022. 8. 7.
[오류 해결] module 'distutils' has no attribute 'version' 얼마 전 Pandas에서 read_excel을 사용하다가 다음과 같은 에러가 발생했다. module 'distutils' has no attribute 'version' 이유는 잘 모르겠지만 setuptools를 최신 버전으로 업그레이드하니까 잘되었다. 업그레이드의 경우 아래와 같이 기존 setuptools를 제거를 먼저 했다. 이때 액세스 거부 오류가 발생하면 pip을 실행시키고자 하는 명령 프롬프트를 '관리자 권한'으로 실행한 후 아래 명령어를 실행하면 된다. pip uninstall setuptools 그러고 나서 아래 명령을 통해 최신 버전으로 setuptools를 설치한다. pip install setuptools 이렇게 하니까 해당 오류가 없어지는 신기한 현상을 두눈으로 목격하게 되었다. 2022. 8. 4.
[Scikit-Learn] 9. 로지스틱회귀(Logistic Regression) 모형 학습하기(feat. LogisticRegression) 이번 포스팅에서는 Scikit-Learn(sklearn)을 이용하여 로지스틱 회귀 모형을 학습하고 결과를 확인하는 방법을 알아보려고 한다. 로지스틱 회귀에 대한 개념은 아래에 포스팅해두었으니 참고하자. 22. 로지스틱 회귀(Logistic Regression)에 대해서 알아보자. 22. 로지스틱 회귀(Logistic Regression)에 대해서 알아보자. 이번 포스팅에서는 로지스틱 회귀에 대한 개념과 적합 알고리즘에 대해서 소개한다. - 목차 - 1. 로지스틱 회귀(Logistic Regression)란 무엇인가? 2. 로지스틱 회귀 적합 알고리즘 3. 장단점 본 포스팅 zephyrus1111.tistory.com Scikit-Learn으로 학습하기 로지스틱 회귀는 Scikit-Learn에서 제공하는 .. 2022. 8. 1.

맨 위로