본문 바로가기
728x90

우공이산253

동일한 플롯에 스케일이 다른 그래프를 그리고 싶을 때 twinx() 오늘은 회사에서 스케일 차이가 많이 나는 수치형 데이터의 추이를 비교해 볼 일이 있었습니다. 한 개의 플롯에 두 개의 그래프(차트)를 그려 넣는 방법을 찾아보고 정리합니다. matplotlib.axes.Axes.twinx matplotlib에서 제공하는 twinx를 사용하면, 동일한 플롯 내에서 x축을 공유하는 또 다른 y축을 생성할 수 있습니다. 아래는 간단한 예제입니다. 이 예에서는 'y1'의 기본 y축으로 'ax1'을 사용하고 'y2'의 보조 y축으로 'ax2'를 사용합니다. twinx() 함수는 동일한 x축을 공유하는 두 번째 y축을 생성합니다. 각각의 y축에 있는 두 선 그래프를 구별하기 위해 서로 다른 색상과 레이블을 할당합니다. import matplotlib.pyplot as plt # S.. 2023. 7. 13.
최적화란 무엇일까? - 두 가지 최적화의 의미 업무 지식보다는 약간은 일기에 가까운 생각.. 프로젝트를 하면서 필요한 장비의 수량을 산정할 때, 최적화라는 표현을 쓴다. 보통 우리 회사에서는 위 그림의 (1)처럼 목표 성능(TPS)이 있고, 목표를 달성하기 위한 최소한의 장비(투자)를 할 수 있는 지점을 찾는 것을 최적화라고 한다. 하지만, 어떤 기업들은 (2)처럼 더 이상 성능이 증가하지 않는 지점을 찾는 것을 최적화라고 하기도 한다. 비용을 중시해야할 지, 성능을 중시해야 할지는, 성능이 비즈니스에 미치는 영향도 등 여러 가지 요소를 고려하여 결정을 해야 할 것이다. 어느 것이 옳다 그르다의 문제는 아니지만, 나는 10년 동안 단 한 번도 비용보다 성능을 우선하라는 주문을 받은 적이 없다. 이건 마치 자격증 시험 같다. 평균 60점만 넘으면 합격.. 2023. 7. 11.
[빅데이터분석기사 실기] 제6회 실기 시험 만점(100점) 합격 후기 올해 상반기 내내 준비한 제6회 빅데이터 분석기사 실기시험 결과가 오늘 발표되었습니다. 예상하긴 했지만, 100점이네요.^^ 좋은 결과 얻었던 비결?? 까지는 아니지만, 개인적으로 어떻게 준비했는지 공유드리겠습니다. 1. 시험 준비 전 수준 저는 회사에서 Product Manager로 일하고 있어서, 데이터를 접할 일이 잦고, 그래서, python을 자주 다루는 편입니다. 데이터분석가까지는 아니지만, 엑셀의 한계 때문에 쓰는 거죠. 그래서 통계적인 지식은 거의 없고, 머신러닝은 돌릴 줄은 아는 정도였습니다. (지금도 그렇긴 하지만요) 2. 시험 준비 pandas는 잘 다루는 편이라고 생각했기 때문에, 실기는 크게 걱정할 거 없을 것이라고 생각했고, 새로 생긴 작업형 3 유형만 잘 준비해야지 생각했습니다... 2023. 7. 7.
수치형 데이터를 범주형으로 만드는 비닝(Binning)의 세 가지 방법 feat. Xverse 머신러닝 전처리를 하다 보면, 수치형 데이터를 범주형 데이터로 변경하는 경우가 있습니다. 연령을 구간별로 나누거나, 소득 수준을 구간별로 나누거나 하는 것인데요. 이런 작업을 비닝(Binning)이라고 합니다. 종종 이런 작업을 통해 모델의 성능이 개선되곤 합니다. 비닝에는 동일 너비 비닝(Equal-Width Binning), 동일 빈도 비닝(Equal-Frequency Binning), 모노토닉 비닝(Monotonic Binning)이 있습니다. 이 3가지에 대해 아래에서 설명드리겠습니다. 1. 동일 너비 비닝(Equal-Width Binning) 동일 너비 비닝에서는 변수의 범위를 동일한 너비의 고정된 수의 빈으로 나눕니다. 이 방법을 적용하려면 Bin의 개수와 각 Bin의 너비를 결정해야 합니다... 2023. 7. 6.
[빅데이터분석기사 실기][작업형3] 회귀분석 (statsmodel 활용) 제6회 빅데이터분석기사 시험에는 작업형 3 유형이 추가되었습니다. 이전에 공지된 바로는 시험환경에 설치되고, 사용 가능한 패키지 중에 scipy만 있고, statsmodels가 없었습니다. 그래서 statsmodels를 사용하는 문제는 출제되지 않을 것이라고 예상했습니다. 그런데, 실제 시험에서는 해당 패키지가 설치되어 있었고, statsmodels를 활용해야 풀 수 있는 문제가 출제되었습니다. statsmodels를 사용하지 않고 python을 계산기처럼 사용해도 풀 수는 있겠지만, 그건 코딩..이라고 하기는 그렇죠. (시험 유의사항에는 정작 계산기는 사용하면 안 된다고..) 결국 전원 정답처리되는 것으로 결정되었습니다. 이번 시험에서는 출제되지 않았지만, 저도 잘 모르는 부분이기도 하고, 향후 시험에.. 2023. 7. 4.
[빅데이터분석기사 실기][작업형1] 시간 데이터 다루기(datetime, timedelta) 제6회 빅데이터분석기사 실기 시험 첫 번째 문제로 datetime과 timedelta를 다루는 문제가 나왔습니다. 후기를 보면 이 문제에서 고생한 사람들이 많고, 저 또한 많은 시간을 소모했기에 정리해 둡니다. 1. datetime과 timedelta의 차이 'datetime' 클래스는 날짜 및 시간 정보를 모두 포함하여 특정 시점을 나타냅니다. 날짜와 시간을 전체적으로 작업하는 데 사용되며 특정 구성 요소(년, 월, 일, 시, 분 등) 추출과 같은 다양한 작업을 수행할 수 있습니다. timedelta 클래스는 두 datetime 개체 간의 기간 또는 차이를 나타냅니다. 특정 시간을 더하거나 빼는 등 'datetime' 객체에 대한 산술 연산을 수행하는 데 사용됩니다. datetime객체 - dateti.. 2023. 7. 3.
cross_val_score 할 때 scoring에 입력 가능한 파라미터 머신러닝 모델을 검증할 때, KFold, StratifiedKFold를 쓰지 않고, cross_val_score를 사용하여 편리하게 교차검증이 가능합니다. 그런데, 'cross_val_score' 함수는 평가지표로 사용할 scoring을 설정하게 되어있습니다. scoring str or callable, default=None A str (see model evaluation documentation) or a scorer callable object / function with signature scorer(estimator, X, y) which should return only a single value. Similar to cross_validate but only a single metric i.. 2023. 7. 2.
[용어] 스토리지? 디스크? 무슨 뜻인지 정확하게 구별하고 쓰자!!! 0. 스토리지? 디스크? 차이가 뭐지? 업무 하다가 보면, 스토리지 또는 디스크라는 용어를 종종 섞어서 사용하고 있는데요. 어렴풋하게는 알고 있지만, 어떤 때 어떤 용어를 사용할지 헷갈릴 때가 있어서 간단하게 정리해 보려고 합니다. 일반적으로 디스크는 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD)와 같은 물리적 저장 매체를 나타냅니다. 이러한 장치는 비휘발성 저장소를 제공하며 컴퓨터 시스템에 데이터를 저장하는 데 사용됩니다. 반면 스토리지는 디스크를 비롯한 다양한 기술을 포괄하는 더 넓은 용어입니다. 스토리지는 컴퓨터 환경에서 데이터를 저장하고 관리하는 데 사용되는 전체 인프라 및 시스템을 의미합니다. 여기에는 디스크와 같은 물리적 스토리지 장치와 스토리지 컨트롤러, 네트워크 연결.. 2023. 7. 1.
데이터분석 초보자가 자주하는 실수- 정확도, 정밀도, 재현율, F1-score 까지 모든 성능지표가 1인 경우 데이터 분석과 머신러닝을 처음 했을 접할 무렵에, 희한하게 모든 성능지표가 1이거나 1에 매우 가까운 경우를 종종 발견합니다. 분명히 무언가 잘못되었을 텐데, 처음에는 성능이 높다고 생각하기 쉽죠. 오류 메시지가 나오지 않지만, 코딩 오류이며, 일종의 과적합입니다. 예시로 두 가지를 들어보겠습니다. 1. 검증 데이터가 학습 데이터의 부분집합이 되면 발생합니다. 예를 들어 train_test_split 안 쓰고 행수 기준 20% 잘라서 쓰면서, 80%, 20%로 안 쓰고, 100%, 20% 쓰는 경우 발생합니다. import pandas as pd #학습데이터에서 검증데이터를 분리하고, 삭제하지 않음 X_train=pd.DataFrame({ 'ID':[1,2,3,4,5,6,7,8,9,10], 'age':[.. 2023. 6. 30.
728x90