Python 46

[내일배움캠프] 스파르타코딩클럽 데이터 분석 트랙 수료 후기

2024.11.04 월요일 데이터 분석 부트캠프가 끝났다 이 카톡을 받은 게 엊그제 같은데 벌써..(߹-߹) 1. 내일배움캠프 이전의 삶 나는 심리학을 전공했는데 시간이 지날수록 심리학은 증맬루 나랑 맞지 않는다는 생각을 했다. 글치만 나는 4학년 막학기를 남기고 있는 졸업예정자.. 어떤 분야로 취업을 해야 될지도 모르겠고 밥 벌어먹고 살 수 있을지도 모르겠고 혼자 걱정 파티하고 있는 와중에 행안부랑 NIA에서 주관하는 데이터 분석 청년인재 양성 사업 공지 글을 보게 되었고, 그렇게 빅데이터 분석이라는 분야에 발을 들이게 되었다. 사실 청년인재 양성 사업이라고 해서 처음부터 차근차근 가르쳐줄 거라고 생각했는데.. 전혀 아니었다... 인턴 연계형 사업이라 파이썬, SQL 등 분석 툴을 다룰 수 있어야 하는..

카테고리 없음 2024.11.08

[스탠다드] 데이터 분석 - 3회차, 4회차

1. EDA EDA란 탐색적 데이터 분석(Exploratory Data Analysis)으로 데이터에 대한 기본적인 이해를 돕기 위해 수행되는 분석 단계로 데이터의 구조와 패턴을 파악하고, 변수 간의 관계를 시각화하여 인사이트를 도출하는 과정이다. EDA는 데이터 이해(데이터의 분포, 이상치, 결측값 파악), 모델링 준비(데이터 전처리 및 모델에 적합한 변환을 결정하는 데 도움), 가설 설정(데이터에 기반한 가설을 세우고 이를 검증)이 가능하므로 중요한 과정증 하나이다. 2. 자동 EDA 패키지 활용 타이타닉 데이터를 자동 EDA 패키지를 사용하여 분석할 수 있다.# 1. Pandas Profilingfrom pandas_profiling import ProfileReport# 타이타닉 데이터 프로파일링..

[챌린지] 시계열 기반 머신러닝 모델과 MLops 적용기 - 2회차(2)

4. ARMA 자기회귀(AR)과 이동평균(MA) 모델을 결합한 방식으로 현재값이 과거값과 과거 오차항에 모두 의존한다고 가정한다. ARMA(p, q)에서 p는 AR 모형의 차수(현재 값에 영향을 미치는 과거 시점의 개수), q는 MA 모형의 차수(현재 값에 영향을 미치는 이전 오차항 개수)를 말한다.from statsmodels.tsa.arima.model import ARIMAmodel = ARIMA(data, order=(p, 0, q)) # 데이터에 ARMA(p, q) 모형 적용하기model_fit = model.fit()model_fit.summary() # 모델 출력 5. ARIMA 비정상 시계열에서 차분을 통해 추세와 계절성을 제거해 정상성을 확보한 후 ARMA 모델을 적용하는 방식이다(AR ..

[챌린지] 시계열 기반 머신러닝 모델과 MLops 적용기 - 2회차(1)

1. 정상시계열 검정 AR 모형을 적용하기 전, 시계열 데이터가 정상성을 만족하는지 검정이 필요하다. 정상성은 데이터의 평균과 분산이 시간에 따라 일정한 상태를 의미한다. 시계열이 정상성을 만족하지 않으면 예측 모델의 성능이 저하될 수 있다. ADF(Argumented Dickey Fuller) 검정을 통해 시계열의 정상성 여부를 판단할 수 있다. ADF는 단위근의 존재 여부를 테스트하여 시계열의 정상성 여부를 판단하는 방법이다. 단위근이란 자기 회귀 계수가 1인 경우를 말한다.가설설명H0(대립가설)시계열에 단위근이 존재한다. 즉, 시계열이 비정상적이다H1(귀무가설)데이터에서는 단위근이 존재하지 않는다. 즉, 정상 시계열이다. 2. 이동평균 (Moving Average) 이동평균 모델은 과거의 예측 오류..

[스탠다드] 데이터 분석 - 1회차, 2회차

1. 프로젝트 기획 목표를 명확하게 해야 데이터를 효과적으로 수집하고 분석 결과를 실질적으로 활용할 수 있다. 분석 목표는 '우리가 도출하고자 하는 최종 결과물'을 말하는데 이 목표가 명확하지 않으면 데이터 분석 자체가 흐릿해질 수 있다. 목표를 SMART하게 설정하는 것이 중요한데 구체적(Specific), 측정 가능(Measurable), 달성 가능(Achievable), 관련성(Relevant), 시간 기반(Time-bound)이어야 한다. 예를 들면 '3개월 내 고객 이탈률을 10% 줄이자' 또는 '연말까지 제품 리뷰 중 긍정 리뷰 비율을 20% 늘리자'와 같은 것이 있다.- 가설 수립 가설 수립은 분석 목표를 달성하기 위해 검증해야하는 추측을 세우는 단계이다. 단순히 데이터를 바라보는 것이 아닌..

[챌린지] 시계열 기반 머신러닝 모델과 MLops 적용기 - 1회차

1. 데이터 분석 분야 개요구분설명 데이터 추출데이터를 효율적으로 추출하고 가공SQL, Python(Pandas)데이터 시각화효과적인 데이터 정보 획득을 도와줌Tableau, Power BI, Looker Studio, Excel기초 통계 분석데이터의 기본적인 특성을 이해기술통계(평균, 표준편차, 백분율), 가설검정(t-test, chi-square, ANOVA)고급 통계 분석복잡한 관계를 탐색하고 모델링인과추론(RCT-A/B test, 선형회귀, 매칭), 시계열 분석(ARIMA), 생본분석(Cox Regression), 다변량분석(PCA, Factor Analysis), 연관분석(장바구니 분석, Apriori 알고리즘)머신러닝데이터를 통해 패턴을 학습하고 예측지도학습, 비지도학습, 추천시스템, 텍스트 ..

[개인과제] ML

문제 1. 데이터 셋 불러오기scikit-learn 라이브러리의 데이터셋을 사용하는 방법을 익힙니다.아래와 같이 데이터를 불러오세요데이터 셋에는 더 많은 종류가 있으니 찾아보시면 좋겠죠?예시에는 붓꽃 데이터셋을 불러오고 있어요! iris를 제외한 다른 데이터셋을 직접찾아 가져와보세요from sklearn.datasets import load_irisiris = load_iris()X, y = iris.data, iris.target입력 데이터와 레이블을 불러온 후 학습을 위한 데이터셋과 테스트를 위한 데이터셋으로 분리하세요(Hint!) sklearn의 train_test_split를 이용하면 편하게 데이터를 분리할 수 있습니다. 문제 2. Diabetes 데이터 회귀 분석 진행하기Diabetes 데이터셋..

[TIL] 머신러닝의 심화 - 데이터분석 프로세스(3)

4. 데이터 분리- 과적합 데이터를 너무 과도하게 학습한 나머리 해당 문제만 잘 맞추고 새로운 데이터를 제대로 예측 혹은 분류하지 못하는 형상을 말한다. 과적합은 모델의 복잡도, 데이터 양, 학습 반복, 데이터 불균형 등과 같은 원인이 있을 수 있다. 예측 혹은 분류를 위해 모형의 복잡도를 설정하는데 모형이 지나치게 복잡하면 과대 적합, 지나치게 단순하면 과소 적합이 될 수 있다. - 과적합 해결: 테스트 데이터의 분리 데이터를 모델을 학습하기 위한 학습 데이터와 평가하기 위한 테스트 데이터로 데이터를 분리한다.구분함수 & 패키지설명패키지 sklearn.model_selection.train_test_split 데이터 분리 패키지파라미터test_size테스트 데이터 세트 크기train_size학습 데이터..

[TIL] 머신러닝의 심화 - 데이터분석 프로세스(2)

3. 데이터 전처리- 이상치 이상치란 보통 관측된 데이터 범위에서 많이 벗어난 아주 작은 값 혹은 큰 값을 말한다. 이상치를 확인하는 방법으로는 크게 Extreme Studentized Deviation(ESD)와 IQR(Inter Quantile Range)로 2가지가 있다. 이상치는 주관적인 값으로 데이터 삭제는 분석가가 결정한다. 이상치는 도메인과 비즈니스 맥락에 따라 기준이 달라지고 데이터 삭제 시 품질은 좋아질 수 있지만 정보 손실을 동반하므로 주의해야 한다.# ESD를 이용한 처리import numpy as npmean = np.mean(data)std = np.std(data)upper_limit = mean + 3*stdlower_limit = mean - 3*std-------------..

[TIL] 머신러닝의 심화 - 데이터분석 프로세스(1)

1. 데이터 수집 데이터를 수집하려면 개발을 통해 데이터를 적재하고 수집하는 데이터 엔지니어링 역량이 필요하다. 이 부분은 개발자가 직접 설계하고 저장한다. 데이터 분석가는 이미 존재하는 데이터를 SQL 혹은 Python을 통해 추출하고 리포팅 혹은 머신러닝을 통한 예측을 담당한다.Data Source설명OLTP DatabaseOnLine Transaction Processing 은 온라인 뱅킹,쇼핑, 주문 입력 등 동시에 발생하는 다수의 트랜잭션(데이터베이스 작업의 단위) 처리 유형Enterprise Applications회사 내 데이터 (ex 고객 관계 데이터, 제품 마케팅 세일즈)Third - PartyGoogle Analytics와 같은 외부소스에서 수집되는 데이터Web/Log사용자의 로그데이터 ..

[TIL] 머신러닝의 기초 - 분류분석(로지스틱회귀)

1. 로지스틱회귀 이론 독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는 데 사용되는 통계 기법을 말한다. 로지스틱함수는 가중치 값을 안다면 X값이 주어졌을 때 해당 사건이 일어날 수 있는 P의 확률을 계산할 수 있게 된다. 확률이 0과 1사이인데 예측값이 확률 범위를 넘어갈 수 있는 문제가 있을 때 S자 형태의 함수를 적용하면 잘 설명한다고 할 수 있다, S형태의 함수를 만들기 위해 오즈비의 개념을 적용할 수 있는데 오즈비는 바로 사용할 수 없기 때문에 로그를 씌워 사용하며 이걸 로짓이라고 한다. 로짓은 어떤 값을 가져오더라도 반드시 특정 사건이 일어날 확률이 0과 1안으로 들어오게 하는 특징을 가진다. - 오즈비와 확률의 관계 /  로짓과 확률의 관계 1) 로짓의 그래프가 더 선형적인 ..

[TIL] 머신러닝의 기초 - 회귀분석(선형회귀 2)

5. 선형회귀 심화 - 범주형 데이터 활용하기 실제 데이터는 비선형적 관계를 가지는 경우가 많다. 이를 위해 X변수를 추가 또는 변형할 수 있다. 데이터는 크게 범주형 데이터와 수치형 데이터로 나뉜다. 수치형 데이터는 키, 몸무게와 같이 두 개의 값이 무한한 개수로 나누어진 연속형 데이터와 주사위 눈, 나이와 같이 두 개의 값이 유한한 개수로 나누어진 이산형 데이터가 있다. 범주형 데이터는 학점, 등급과 같이 자료의 순서 의미가 있는 순서형 데이터와 혈액형, 성별과 같이 자료의 순서 의미가 없는 명목형 데이터가 있다. 범주형 데이터를 머신러닝 모델에 훈련시키기 위해서는 해당 데이터를 숫자로 바꿔야 한다. 6. 선형회귀 정리- 선형회귀 장점 1) 직관적이며 이해하기 쉽다. 2) X-Y 관계를 정량화할 수 ..

[TIL] 머신러닝의 기초 - 회귀분석(선형회귀 1)

1. 머신러닝이란? 기술 통계 등을 통해 집계된 정보로 의사결정을 했던 과거와 달리 데이터 수집과 처리 기술의 발전으로 대용량 데이터의 패턴을 인식하고 이를 바탕으로 예측, 분류하는 방법론을 말한다. 머신러닝을 인간은 데이터를 기반으로 한 의사결정을 내리고 싶어 발전하게 되었다. 머신러닝은 지도 학습(Supervised Leaning), 비지도 학습(Unsupervised Learning), 강화 학습(Reinforcement Learning) 세 가지로 분류된다. 머신러닝은 금융, 헬스케어, 이커머스, 자연어 처리 등 다양한 분야에 적용해 사용되고 있다.구분설명AI인간의 지능을 요구하는 업무를 수행하기 위한 시스템Machine Learning관측된 패턴을 기반으로 의사 결정을 하기 위한 알고리즘Deep..

[TIL] Python 챌린지 - 6회차

1. Streamlit 소개 Streamlit은 데이터 과학자와 머신러닝 엔지니어를 위한 오픈소스 Python 라이브러리이다. 복잡한 데이터 애플리케이션을 빠르고 쉽게 만들 수 있도록 설계되었으며 단순한 Pyhon 스크립트 만으로도 대화형 웹 애플리케이션을 만들 수 있다. 2. Streamlit 설치 및 기본 구조pip install streamlitimport streamlit as stdef main(): st.title("My Streamlit App") # 앱의 내용을 여기에 추가합니다if __name__ == "__main__": main() 3. Streamlit 주요 UI 요소 - 텍스트 출력import streamlit as stst.title("Streamlit 텍스트 출..

[TIL] Python 챌린지 - 5회차

1. 객체 지향 프로그래밍(OOP)이란? 객체 지향 프로그래밍이란 코드를 객체라는 논리적 단위로 구조화하는 프로그래밍 패러다임을 말한다. 객체는 데이터(속성)와 그 데이터를 처리하는 메서드(함수)를 하나의 단위로 묶은 것을 말한다. OOP는 데이터와 메서드를 하나의 단위로 묶어 외부로부터 보호하는 '캡슐화', 기존 클래스의 특성을 새로운 클래스가 물려받을 수 있는 '상속', 같은 이름의 메서드가 다른 기능을 수행할 수 있는 '다형성'과 같은 세 가지의 주요 특징을 가지고 있다. 이러한 특징들은 코드의 재사용성을 높이고 유지보수를 용이하게 만든다. 2. OOP로 리팩토링하는 이유- 코드 구조화 관련 기능을 하나의 클래스로 묶어 코드를 더 논리적으로 구조화할 수 있다.- 재사용성 클래스를 만들면 다른 프로젝..