본문 바로가기

Data Visualization/Python Lib26

[Statsmodels] 로지스틱 회귀분석, 칼럼별 오즈비(odds ratio) 구하는 방법 statsmodels를 활용하여 로지스틱 회귀분석 하는 방법을 알아봅니다. [ Contents ] 1. 로지스틱 회귀 (Logistic Regression) 로지스틱 회귀변수는 이진 분류 학습에 주로 사용됩니다. True와 False로 나뉘는 boolean 값을 예측합니다. 예를 들어 스팸메일 여부, 질병 여부 등을 판별합니다. 범주가 여러 개인 분류학습에는 적합하지 않습니다. 물론 로지스틱을 확장해서 A 클래스 여부, B 클래스 여부, C 클래스 여부 ... 등으로 나눠서 각각 진행 후 앙상블 모델처럼 평가할 수도 있겠지만 잘 사용하진 않습니다. 아래에서 실제 데이터를 가지고 알아보겠습니다. 2. 적용 예시import pandas as pd# 1. 데이터 생성data = pd.DataFrame({ .. 2025. 6. 8.
[Statsmodels] 다중선형 회귀분석 OLS, 개념 및 활용 예시 알아보기 statsmodels는 회귀 분석 및 통계 모델링할 때 이용되는 파이썬 라이브러리입니다. statsmodels를 써서 다중선형 회귀분석을 하는 방법을 알아봅니다. [ Contents ] 1. 다중선형 회귀분석(Multiple Linear Regression) 이름이 조금 난해하지만, 일반적인 회귀 방정식 형태입니다. 머신러닝 학습 예시를 들 때는 시각화가 가능한 1차식 형태의 선형 회귀방정식을 주로 예로 들지만, 실제 모델에서는 위와 같이 2개 이상의 독립변수를 갖는 다항식 형태를 띠게 됩니다. 2025.03.30 - [AI (Artificial Intelligence)/ML (Machine Learning)] - [AI/ML] 회귀 분석의 개념과 유형, 그리고 회귀 모형의 가정 [선형성, 독립성, 등.. 2025. 6. 8.
[Pandas] pivot table 피벗테이블 활용해서 행열 기준으로 그룹화 및 집계하기 엑셀에서 행, 열, 값으로 데이터를 옮기며 집계표를 작성할 수 있는 피벗테이블이라는 기능이 있습니다. 그 기능과 유사하게 판다스의 pivot_table 함수를 이용해서 데이터프레임을 행열 기준으로 그룹화하여 집계하는 방법을 알아봅니다. [ Contents ] 1. 피벗테이블 (pivot_table)pd.pivot_table( data, # 원본 DataFrame values=None, # 집계할 값 (열 이름) index=None, # 행 기준 그룹화할 열 columns=None, # 열 기준 그룹화할 열 aggfunc='mean', # 집계함수 (mean, sum, count, max, min 등) fill_value=None, # NaN 대체 값 margin.. 2025. 6. 8.
[Pandas] 행 인덱스와 열 인덱스 변환하는 unstack, stack 함수 데이터프레임이나 시리즈 데이터의 행과 열 인덱스를 변환하는 unstack, stack 함수에 대해서 알아봅니다. [ Contents ] 1. unstackDataFrame.unstack(level=-1, fill_value=None) level은 열로 옮길 인덱스를 지정하며, 기본값은 가장 안쪽 행 인덱스를 옮깁니다. 옮길 인덱스 행을 넣는 파라미터이기 때문에, 행 인덱스 이름을 그대로 넣어줘도 됩니다. 사실 설명으로는 이해하기 어려운 함수이니, 아래 예제를 통해 알아보겠습니다. 2. 활용 예제import pandas as pddf = pd.DataFrame({ '지역': ['서울', '서울', '부산', '부산'], '연도': [2020, 2021, 2020, 2021], '인구.. 2025. 6. 8.
[Pandas] 데이터셋 그룹 집계함수 groupby 사용법 (평균, 합계, 개수, 최대, 최소) 판다스에서 groupby 집계함수를 사용해서 평균, 합계, 개수, 최대, 최소, 표준편차, 중앙값을 구하는 방법을 알아봅니다. [ Contents ] 1. 집계함수 groupbydf.groupby('컬럼명')['대상컬럼'].집계함수() 판다스에서 그룹 통계가 필요할 때 groupby를 사용합니다. 기존 데이터 분석에는 SQL을 사용했으므로 판다스에도 SQL과 유사한 문법들이 많습니다. groupby도 그중 하나죠. 2. 집계함수import pandas as pddf = pd.DataFrame({ 'team': ['A', 'A', 'B', 'B', 'C'], 'score': [10, 20, 30, 40, 50], 'grade': ['high', 'low', 'low', 'high', '.. 2025. 6. 7.
[Pandas] 날짜 형식 데이터 정제하는 방법, datetime 관련 문법 알아보기 판다스에서 날짜 형식 데이터는 datetime 형을 따릅니다. datetime은 날짜와 시분초로 나타내지는 timestamp형식으로, 이를 다루는 방법을 알아봅니다. [ Contents ] 1. pd.to_datetime()import pandas as pddf = pd.DataFrame({'date': ['2023-01-01', '2023-03-15', '2023-06-01']})df['date'] = pd.to_datetime(df['date']) 날짜형식의 문자열 데이터를 pd.to_datetime()으로 날짜 데이터로 만들 수 있습니다. pd.to_datetime(df['data'], format='%Y-%m-%d')와 같이 형식을 지정해줄 수도 있지만, 자동으로 알맞은 형식을 찾아서 변환해.. 2025. 6. 7.
[Pandas] 숫자와 소수점만 남기고 문자 제거하는 법 (extract 정규표현식 활용) 판다스에서 정규표현식을 활용하여 숫자와 소수점을 남기고 문자를 제거하는 방법을 알아봅니다. [ Contents ] 1. extract 정규표현식df['컬럼명'].str.extract(r'(정규표현식)') DataFrame에서 str 문자열 함수 중 extract를 사용합니다. extract 안에는 정규표현식이 들어가며, 정규표현식은 주로 DB 쿼리에서 데이터 정제를 위해 사용하는 표현식입니다. 2. 정규표현식문법의미사용 예시.임의의 한 문자 (줄바꿈 제외)a.cabc, acc^문자열의 시작^abcabc로 시작$문자열의 끝xyz$xyz로 끝남*앞 문자 0회 이상 반복ab*a, ab, abb, abbbb+앞 문자 1회 이상 반복ab+ab, abb, abbb?앞 문자 0 또는 1회ab?a, ab{n}n번.. 2025. 6. 7.
[Pandas] 데이터의 분위수를 구하는 quantile (4분위수 구하기) 데이터를 백분위로 나눈 지점을 뜻하는 분위수를 구하는 판다스 함수 quantile을 알아봅니다. [ Contents ] 1. DataFrame.quantile()DataFrame.quantile(q=0.5, axis=0, numeric_only=False, interpolation='linear') 데이터프레임의 사분위수를 구하는 판다스 함수입니다. q는 분위수를 뜻하며 0~1 사이의 값을 갖습니다. (0.25 = 1분위수, 0.5 = 2분위수, 0.75 = 3분위수) axis는 0(열 방향)을 기본값으로 가지며, 1은 행 방향입니다. numeric_only는 숫자형 열만 사용할지 여부를 뜻하며, 대체로 q 파라미터만 사용합니다. 2. 활용 예시import pandas as pddata = { .. 2025. 6. 7.
[Pandas] 데이터프레임 칼럼 타입 변경 astype 판다스에서는 칼럼의 타입을 바꿀 때 astype를 사용합니다. 그 예제를 살펴봅니다. [ Contents ] 1. astype df['col'].astype astype로 자료형을 바꿀 수 있습니다. 다만 바꿀 수 없는 타입일 경우에는 오류가 뜹니다. 예를 들어 문자열을 숫자형으로 바꿀 수는 없겠죠. 2023. 6. 18.