반응형 전체 글184 matplotlib 산점도 그리기 이번 포스팅에서는 Matplotlib 라이브러리를 활용해서 산점도(scatterplot)를 그려 볼게요. 앞선 포스팅에서와 마찬가지로 기본적인 환경 세팅을 하겠습니다. ① matplotlib 라이브러리 사용 정의 ② 그래프에서 환경설정이 가능하도록 폰트 설정 ③ 한글 사용이 (-) 부호가 깨지는 현상 방지 import matplotlib.pyplot as plt # matplotlib 라이브러리 load ## 한글 사용 가능하도독 폰트 설정 import matplotlib matplotlib.rcParams['font.family'] = 'Malgun Gothic' # os: window matplotlib.rcParams['axes.unicode_minus'] = False # 한글 폰트 사용 시 (-.. 2022. 2. 27. matplotlib 파이 차트 그리기 Matplotlib 라이브러리는 파이썬에서 그래프를 그릴 때, 가장 많이 사용하는 대표 라이브러리입니다. 기본이 되는 여러 그래프 중 이번 포스팅에서는 파이 차트를 실습해 볼게요. 앞선 포스팅과 마찬가지로 아래 2가지 기본적인 환경 세팅을 하겠습니다. ① matplotlib 라이브러리 사용 정의 ② 그래프에서 환경설정이 가능하도록 폰트 설정 ③ 한글 사용이 (-) 부호가 깨지는 현상 방지 import matplotlib.pyplot as plt # matplotlib 라이브러리 load ## 한글 사용 가능하도독 폰트 설정 import matplotlib matplotlib.rcParams['font.family'] = 'Malgun Gothic' # os: window matplotlib.rcParam.. 2022. 2. 26. matplotlib 막대그래프 그리기 이번 포스팅에서는 Matplotlib 라이브러리의 기본 그래프 중에서 막대그래프를 그려 볼게요. 지난번 포스팅과 마찬가지로 본격적인 작업에 앞서 기본적인 환경 세팅을 하겠습니다. ① matplotlib 라이브러리 사용 정의 ② 그래프에서 환경설정이 가능하도록 폰트 설정 ③ 한글 사용이 (-) 부호가 깨지는 현상 방지 import matplotlib.pyplot as plt # matplotlib 라이브러리 load ## 한글 사용 가능하도독 폰트 설정 import matplotlib matplotlib.rcParams['font.family'] = 'Malgun Gothic' # os: window matplotlib.rcParams['axes.unicode_minus'] = False # 한글 폰트 사.. 2022. 2. 25. matplotlib 선 그래프 그리기 Matplotlib 라이브러리는 파이썬에서 그래프를 그릴 때, 가장 많이 사용하는 대표 라이브러리입니다. 이와 관련된 내용이 너무나 많아서, 기본적이고, 핵심적인 내용만 정리하겠습니다. 본격적인 작업에 앞서 몇 가지 아래 2가지 기본적인 환경 세팅을 하겠습니다. ① matplotlib 라이브러리 사용 정의 ② 그래프에서 환경설정이 가능하도록 폰트 설정 ③ 한글 사용이 (-) 부호가 깨지는 현상 방지 import matplotlib.pyplot as plt # matplotlib 라이브러리 load ## 한글 사용 가능하도독 폰트 설정 import matplotlib matplotlib.rcParams['font.family'] = 'Malgun Gothic' # os: window matplotlib.r.. 2022. 2. 20. 하이퍼파라미터 Serching (with 파이썬) - GridSearchCV() 함수 Lightgbm 알고리즘뿐만 아니라 여러 기계학습 알고리즘을 활용하여 모델링을 수행할 때, 가장 중요하면서도 쉽지 않은 영역이 최적을 하이퍼파라미터를 찾는 일입니다. 실제로 기계학습 알고리즘의 최종 목표 역시, 좋은 성능을 보이면서, 과적합(overfitting)이 상대적으로 낮은 하이퍼 파라미터를 찾는 일이라고 할 수 있습니다. 하지만, 이런 일련의 업무는 복잡하고 지루하고 장시간 소요될 수 있는데요. 파이썬에서는 이 부분을 해결해 주는 함수가 있어요. 바로 싸이킷런 래퍼에서 제공해 주는 GridSearchCV() 함수입니다. GridSearchCV() 함수의 주요 인수 GridSearchCV(estimator, param_grid, scoring=None, n_jobs=None, refit=True,.. 2022. 2. 14. pandas 문자열 메서드 str. Series 및 Index에는 배열의 각 요소에 대해 쉽게 작동할 수 있도록 하는 일련의 문자열 처리 방법이 있습니다. 아마도 가장 중요한 것은 이러한 방법이 누락/NA 값을 자동으로 제외한다는 것입니다. 이것들은 str 속성을 통해 액세스 되며 일반적으로 동등한(스칼라) 내장 문자열 메서드와 일치하는 이름을 갖습니다. 주요 문자열 함수에 대한 리스트 str.lower(): 모든 문자열을 소문자로 변환 str.upper(): 모든 문자열을 대문자로 변환 str.len(): 문자열의 길이를 반환 str.strip(): 문자열에 포함되어 있는 좌/우 공백 제거 str.lstrip(): 문자열에 포함되어 있는 왼쪽 공백 제거 str.rstrip(): 문자열에 포함되어 있는 오른쪽 공백 제거 str.replac.. 2022. 2. 13. pandas 데이터 결합 함수 merge() pandas 라이브러리 원문을 기반으로 하여 작성하였습니다. pandas는 SQL과 같은 관계형 데이터베이스와 매우 유사한 모든 기능을 갖춘 고성능 인메모리 조인 작업을 제공합니다. 이러한 방법은 다른 오픈 소스 구현(예: R의 base::merge.data.frame) 보다 훨씬 더 나은 성능을 보입니다(어떤 경우에는 10배 이상). 그 이유는 신중한 알고리즘 설계와 DataFrame의 데이터 내부 레이아웃 때문입니다. 데이터 결합에 가장 익숙한 도구인 SQL에 익숙하신 분들은 pandas의 merge 문법이 생소해 보일 수도 있어요. 2개의 도구를 비교해 가며 학습하시면 매우 흥미로울 거라고 생각합니다. pandas는 DataFrame 또는 명명된 Series 객체 간의 모든 표준 데이터베이스 조인 .. 2022. 2. 13. lightgbm 알고리즘을 사용한 이진분류예측모델 적합(with 파이썬) lightgbm은 GBM계열의 알고리즘으로 기계학습 알고리즘 중 XGBoost와 함께 가장 많이 사용되는 알고리즘 중의 하나예요. 알고리즘에 대한 자세한 설명은 아래 포스팅을 참고하시면 됩니다. LightGBM 개요 LightGBM은 트리 기반 학습 알고리즘을 사용하는 그래디언트 부스팅 프레임워크입니다. 다음과 같은 이점이 있는 효율적이고 잘 분산되도록 설계된 알고리즘입니다. 더 빠른 훈련 속도와 더 높은 zzinnam.tistory.com 본 포스팅에서는 파이썬에서 제공하는 lightgbm 알고리즘을 활용하여 간단한 이진 분류 예측모델 적합 예시를 보여드리도록 하겠습니다. 사용할 데이터는 XGBoost 알고리즘(해당 내용은 여기를 참조)을 설명했을 때와 동일한 데이터를 사용하고, 유사한 하이퍼 파라미터.. 2022. 2. 12. lightgbm 주요 하이퍼파라미터 (with 파이썬) 이번 포스팅에서는 파이썬에서 제공하는 lightgbm 패키지의 주요 하이퍼파라미터에 대해 설명하겠습니다. lightgbm 알고리즘에 대한 일반적인 설명은 아래 포스팅 글을 참고하세요. LightGBM 개요 LightGBM은 트리 기반 학습 알고리즘을 사용하는 그래디언트 부스팅 프레임워크입니다. 다음과 같은 이점이 있는 효율적이고 잘 분산되도록 설계된 알고리즘입니다. 더 빠른 훈련 속도와 더 높은 zzinnam.tistory.com lightgbm 주요 하이퍼파라미터 (with 파이썬 래퍼) No 파라미터 인수명 설명 1 num_iterations (기본값 100) - 학습에 활용될 weak learner의 반복 수 2 learning_rate (기본값 0.1) - 일반적으로 확습률(learning rat.. 2022. 2. 8. XGboost 주요 하이퍼파라미터 (with 파이썬) 본 포스팅에서는 파이썬의 XGBoost 알고리즘의 주요 하이퍼파라미터에 대해 설명하겠습니다. 해당 알고리즘에 대한 설명은 아래 포스팅을 참고하시면 됩니다. R에서 XGBoost 알고리즘을 사용한 분류예측모델 적합 예시 Overview R의 강력한 기계 학습 알고리즘인 xgboost를 사용하는 방법 알아보기 예시 데이터의 사용과 xgboost 기계 학습 모델을 구축함으로서, R에서 xgboost의 응용 프로그램 확인하기 Introduction XGB zzinnam.tistory.com XGboost 주요 하이퍼파라미터 (파이썬 래퍼 기준) XGBoost의 파라미터는 크게 3가지 구분합니다. nthreadgeneral parameter 기본값을 거의 변경할 일이 없음 booster parameter (매우 .. 2022. 2. 7. XGBoost 알고리즘을 사용한 이진분류예측모델 적합(with 파이썬) XGBoost는 GBM계열의 알고리즘으로 기계학습 알고리즘 중 가장 많이 사용되는 알고리즘 중의 하나예요. 알고리즘에 대한 자세한 설명은 아래 포스팅을 참고하시면 됩니다. R에서 XGBoost 알고리즘을 사용한 분류예측모델 적합 예시 Overview R의 강력한 기계 학습 알고리즘인 xgboost를 사용하는 방법 알아보기 예시 데이터의 사용과 xgboost 기계 학습 모델을 구축함으로서, R에서 xgboost의 응용 프로그램 확인하기 Introduction XGB zzinnam.tistory.com 본 포스팅에서는 파이썬에서 제공하는 XGBoost 알고리즘을 활용하여 간단한 이진 분류 예측모델 적합 예시를 보여드리도록 하겠습니다. 사용할 데이터는 lightgbm(with) 예시에서 사용했던 것과 동일한 .. 2022. 2. 6. pandas 데이터 구조 소개(DataFrame) 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. DataFrame은 잠재적으로 다른 유형의 열이 있는 2차원 레이블 데이터 구조입니다. 스프레드시트나 SQL 테이블 또는 Series 개체의 딕셔너리처럼 생각할 수 있습니다. 일반적으로 가장 일반적으로 사용되는 pandas 개체입니다. Series와 마찬가지로 DataFrame은 다양한 종류의 입력을 허용합니다. Dict of 1D ndarrays, lists, dicts, or Series 2-D numpy.ndarray Structured or record ndarray A Series Another DataFrame 데이터와 함께 인덱스(행 레이블) 및 열(열 레이블) 인수를 선택적으로 전달할 수 있습니다. 인덱스 및/.. 2022. 1. 29. 오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: json) with Python 지난 포스팅에서는 R을 활용한 공공데이터 불러오기를 알아보았는데요. 혹시라도 R을 활용한 방법이 궁금하신 분들은 아래 2개의 포스팅 글을 참고하시면 됩니다. 오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: xml) 공공데이터 홈페이지 가입 및 데이터 추출 준비 정부가 개방한 공공데이터를 오픈 API를 활용해서 추출하는 방법에 대해서 설명드릴게요. 우선, 공공데이터 홈페이지에 접속해 볼게요. 공공데이 zzinnam.tistory.com 오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: json) 오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: json)에 이어서 json 형태의 데이터 포맷을 불러오는 R 프로그래밍을 알아보도록 할게요. 공공데이터를 활용하기 위한 준비 단계는 여기를 참 .. 2022. 1. 29. 오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: json) 오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: json)에 이어서 json 형태의 데이터 포맷을 불러오는 R 프로그래밍을 알아보도록 할게요. 공공데이터를 활용하기 위한 준비 단계는 여기를 참고하시면 됩니다. 비교를 위해서 지난번 포스팅에서와 같은 데이터를 불러와 보도록 할게요. 데이터 형식을 확인하기 위한 샘플데이터 확인하기 결과 형식을 json으로 변경한 후에 미리 보기 버튼을 클릭하시면, 아래와 같은 샘플데이터를 볼 수 있어요. 이를 참고해서 원하는 데이터를 추출해 보도록 할게요. 오픈 API URL구조에 대해서는 지난번 포스팅에서 설명해서 넘어가도록 할게요. 데이터 추출을 위한 R code(with jsonlite 패키지) install.packages('jsonlite') # json 형.. 2022. 1. 27. R에서 XGBoost 알고리즘을 사용한 분류예측모델 적합 예시 Overview R의 강력한 기계 학습 알고리즘인 xgboost를 사용하는 방법 알아보기 예시 데이터의 사용과 xgboost 기계 학습 모델을 구축함으로서, R에서 xgboost의 응용 프로그램 확인하기 Introduction XGBoost 알고리즘이 캐글 등 데이터 과학 대회에서 우승을 차지하는 가장 인기 있는 방법 중 하나라는 사실은 누구나 다 알고 계실 거예요. 기존의 기계 학습 알고리즘(ex. Random Forest, Neural Network 등) 보다 강력한 이유는 무엇일까요? 아마, 넓은 의미에서 알고리즘의 효율성, 정확성 및 실행 가능성이라고 생각합니다. 지난 몇 년 동안 예측 모델링은 훨씬 빠르고 정확해졌습니다. 소수의 소수로 모델을 개선하기 위해 feature engineering에 .. 2022. 1. 24. [R 그래픽스] 제목(Title) 달기 R Graphics Cookbook을 기반으로 하여 작성하였습니다. 그래프에 제목(Title)을 달고 싶으면, 어떻게 해야 할까요? 우선, 제목이 없는 그래프의 예시입니다. library(ggplot2) bp 2022. 1. 23. [R 그래픽스] Scatterplots 그리기 R Graphics Cookbook을 기반으로 하여 작성하였습니다. Scatterplot을 그리고 싶어요. 어떻게 하면 될까요? 일단, 가상의 데이터를 생성하고 만들어 볼게요. set.seed(955) # Seed값 세팅 # 가상의 데이터 생성 dat 2022. 1. 22. [R 그래픽스] 분포 그리기 R Graphics Cookbook을 기반으로 하여 작성하였습니다. 데이터 분포를 그래프로 표현하려고 합니다. 어떻게 하면 될까요? 아래 샘플 데이터를 활용해서 그래프로 표현해 보도록 할게요. set.seed(1234) # seed값 부여 dat 2022. 1. 16. LightGBM 모델 해석(with R Machine Learning (LightGBM) 코드 예제(with R)를 먼저 수행해야 함!! lgb.get.eval.result(): 부스터로부터 평가 결과 얻기 lgb.Booster가 주어지면 특정 데이터세트의 특정 메트릭에 대한 평가 결과를 반환합니다. # 코드 형식 lgb.get.eval.result( booster, data_name, eval_name, iters = NULL, is_err = FALSE ) Arguments booster: lgb.Booster 클래스의 객체 data_name: 평가 결과를 반환할 데이터 세트 이름 eval_name: 결과를 반환할 평가 측정항목의 이름 iters: 평가 결과를 얻으려는 반복의 정수 벡터입니다. NULL(기본값)이면 모든 반복에 대한 평가 .. 2022. 1. 15. LightGBM 모델 결과 저장 및 불러오기(with R) # Machine Learning (LightGBM) 코드 예제(with R) 포스트에 있는 실습을 먼저 수행해야 함!! LightGBM 모델을 json으로 덤프 # 코드 예시 lgb.dump(booster, num_iteration = NULL) Arguments booster: lgb.Booster 클래스의 객체 num_iteration: 예측할 반복 횟수, NULL 또는 2022. 1. 14. Machine Learning (LightGBM)코드 예제(with R) LightGBM으로 모델을 훈련시킨 다음 이를 사용하여 새로운 데이터에 대한 예측 수행 lightgbm() # 코드 형식 lightgbm( data, label = NULL, weight = NULL, params = list(), nrounds = 100L, verbose = 1L, eval_freq = 1L, early_stopping_rounds = NULL, save_name = "lightgbm.model", init_model = NULL, callbacks = list(), serializable = TRUE, ... ) Arguments data: 훈련에 사용되는 lgb.Dataset 객체. lgb.cv와 같은 일부 함수를 사용하면 매트릭스와 같은 다른 유형의 데이터를 전달한 다음 키워드 .. 2022. 1. 13. Data I/O for LightGBM (with R) LightGBM에 필요한 데이터 I/O 함수 lgb.Dataset(): lgb.Dataset 객체 생성 조밀한 행렬, 희소 행렬 또는 로컬 파일(이전에 lgb.Dataset을 저장하여 생성)에서 lgb.Dataset 객체를 구성합니다. lgb.Dataset( data, params = list(), reference = NULL, colnames = NULL, categorical_feature = NULL, free_raw_data = TRUE, label = NULL, weight = NULL, group = NULL, init_score = NULL ) Arguments data: matrix 객체, dgCMatrix 객체, 텍스트 파일(CSV, TSV 또는 LibSVM)의 경로를 나타내는 문자, .. 2022. 1. 12. 이진분류모델 예측 기초 예제 실습(with R) Introduction LightGBM 알고리즘 활용(Ke et al. 2017) # LightGBM 알고리즘 활용을 위해 패키지 lightgbm 설치 install.packages('lightgbm') # lightgbm 패키지 로드 library(lightgbm) 본 예제는 기본 사용법에 대한 안내 수준이에요. bank 데이터 세트 중 일부를 기반으로 간단한 이진 분류 모델을 구축하는 방법을 보도록 할게요(Moro, Cortez, Rita 2014). "age"와 "balance"이라는 두 가지 input feature를 사용하여 고객이 정기 예금에 가입했는지 여부를 예측할게요. The dataset data(bank, package = "lightgbm") # lightgbm 패키지에 있는 bank.. 2022. 1. 11. LightGBM 개요 LightGBM은 트리 기반 학습 알고리즘을 사용하는 그래디언트 부스팅 프레임워크입니다. 다음과 같은 이점이 있는 효율적이고 잘 분산되도록 설계된 알고리즘입니다. 더 빠른 훈련 속도와 더 높은 효율성 메모리 사용량 감소 더 좋은 정확도 병렬, 분산 및 GPU 학습 지원 대규모 데이터 처리 가능 LightGBM 특징 LightGBM의 작동 방식에 대해 개념적으로 간단히 설명드릴게요. 다른 부스팅 패키지와 다를 수 있는 LightGBM의 측면에 초점을 맞추기 위해 의사결정 트리 부스팅 알고리즘에 익숙하다고 가정할게요. 자세한 알고리즘은 인용 또는 소스 코드를 참고하시면 돼요. 많은 부스팅 도구는 의사 결정 트리 학습을 위해 사전 정렬 기반 알고리즘(예: xgboost의 기본 알고리즘)을 사용합니다. 간단한 .. 2022. 1. 10. 데이터 프레임의 열 이름 바꾸기 Cookbook for R을 기반으로 하여 작성하였습니다. 데이터 프레임의 열 이름을 바꾸려고 합니다. 어떻게 처리하면 될까요? 3개의 열이 있는 샘플 데이터 프레임으로 시작해 볼게요. d 2022. 1. 9. [R 그래픽스] 평균(means)과 오차(error) 막대그래프 그리기 본 포스팅은 R Graphics Cookbook을 기반으로 하여 작성하였습니다. ggplot2로 그래프를 만들려면 데이터가 데이터 프레임으로 존재해야 하며, 데이터 형식이 "long format"이어야 합니다. 데이터를 재구성해야 하는 경우 자세한 내용은 여기를 참조하세요. 샘플 데이터 아래 예는 ToothGrowth 데이터 세트예요. 복용량(dose)은 숫자 형식의 열이기 때문에 그것을 factor로 변환하는 것이 유용할 수 있어요. tg 2022. 1. 8. 오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: xml) 공공데이터 홈페이지 가입 및 데이터 추출 준비 정부가 개방한 공공데이터를 오픈 API를 활용해서 추출하는 방법에 대해서 설명드릴게요. 우선, 공공데이터 홈페이지에 접속해 볼게요. 공공데이터 url 주소는 https://www.data.go.kr/index.do입니다. 여기를 클릭해서 들어가시면 아래와 같은 화면이 보입니다. 좌측 상단에 회원가입 탭을 클릭하셔서, 회원 가입을 하시면 로그인됩니다. 로그인하신 후 마이페이지에서 인증키를 받으셔야 공공 API를 활용하실 수 있어요. 아래 화면은 제가 발급한 인증키 발급현황입니다. 다시 홈페이지 첫 화면에서 "금융"이라고 검색하고, 오픈 API탭을 클릭하시면 아래 화면이 보이는 데요. 제일 위에 있는 데이터 금융위원회_금융회사기본정보를 오픈 API를 활용해서 추.. 2022. 1. 7. factor level 이름 변경하기 Cookbook for R을 기반으로 하여 작성하였습니다. factor level의 이름을 변경하려면 어떻게 할까요? # 간단한 factor 생성 x 2022. 1. 6. 정렬(sorting)하기 Cookbook for R을 기반으로 하여 작성하였습니다. 벡터, 행렬 또는 데이터 프레임을 정렬하려고 합니다. 어떻게 하면 될까요? 하나씩 살펴보도록 할게요. 벡터(Vector) # 랜덤 하게 정렬된 예시 벡터 생성 v 2022. 1. 5. SHAP value에 대한 간단한 소개(with Python) SHAP(SHapley Additive exPlanations)는 모든 기계 학습 모델의 결과(출력)를 설명하기 위한 게임 이론적인 접근 방식입니다. 게임 이론 및 이와 관련하여 확장된 고전적인 Shapley value를 사용하여 최적의 신뢰할 만한 내용을 로컬 설명과 연결하려고 합니다. INSTALL SHAP는 PyPI 또는 conda-forge에서 설치할 수 있습니다. pip install shap # or conda install -c conda-forge shap XGBoost를 활용한 SHAP 예시 import xgboost import shap # XGBoost model 학습 X, y = shap.datasets.boston() model = xgboost.XGBRegressor().fit(.. 2022. 1. 2. 이전 1 2 3 4 5 6 7 다음 반응형