Today I Learned (TIL)/Python 41

[TIL] 통계학 기초 - 5주차

1. 피어슨 상관계수 두 연속형 변수 간의 선형 관계를 측정하는 지표로 -1에서 1 사이의 값을 가진다. 1은 완전한 양의 선형, -1은 완전한 음의 선형, 0은 선형 관계가 없음을 의미한다. 공부 시간과 시험 점수 간의 선형적인 관계가 예상될 때 사용하며 비선형 관계에서는 사용할 수 없다.import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsfrom scipy.stats import pearsonr# 예시 데이터 생성np.random.seed(0)study_hours = np.random.rand(100) * 10exam_scores = 3 * study_hours + np.random.randn(..

[TIL] 통계학 기초 - 4주차

1. 단순선형회귀 하나의 독립 변수(X)와 하나의 종속 변수(Y)간의 관계를 직선으로 모델링하는 방법으로 간단하고 해석이 용이하여 데이터가 선형적이지 않을 경우 적합하지 않다. 독립 변수의 변화에 따라 종속 변수가 어떻게 변화하는지 설명하고 예측하는 것이 특징이다. 단순선형회귀 회귀식은 Y = β0 + β1X  β0 (β0는 절편, β1는 기울기)이다. import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.linear_model import LinearRegressionfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import me..

[TIL] Python 챌린지 - 3, 4회차

1. 프로젝트 개요- 목적 Selenium과 XPath를 사용하여 네이버 뉴스 사이트에서 기사 목록과 내용을 수집- 대상 사이트 네이버 뉴스 IT/과학 섹션- 사용 기술 Python, Selenium WebDriver, XPath- 결과물 뉴스 기사 제목, 내용, 날짜, URL 수집 2. 환경 설정# 필요한 라이브러리 임포트 및 WebDriver 설정!pip install seleniumfrom selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWai..

[TIL] 통계학 기초 - 3주차

1. A/B 검정 두 버전(A와 B) 중 어느 것이 더 효과적인지 평가하기 위해 사용되는 검정방법이다. 사용자들을 두 그룹으로 나눠 각 그룹에 다른 버전을 제공한 후 반응을 비교하는 것으로 마케팅, 웹사이트 디자인 등에서 많이 사용된다.  두 그룹 간의 변화가 우연이 아닌 통계적으로 유의미한지를 확인하는 것으로 일반적으로 전환율, 클릭률, 구매수, 방문 기간, 방문한 페이지 수, 특정 페이지 방문 여부, 매출 등의 지표를 통해 비교한다.import numpy as npimport scipy.stats as stats# 가정된 전환율 데이터group_a = np.random.binomial(1, 0.30, 100) # 30% 전환율group_b = np.random.binomial(1, 0.45, 100..

[TIL] 통계학 기초 - 2주차(2)

4. 정규분포 종 모양의 대칭 분포로 대부분의 데이터가 평균 주위에 몰려있는 분포를 말한다. 평균을 중심으로 좌우 대칭이며 평균에서 멀어질수록 데이터의 빈도가 감소한다. 키와 몸무게, 시험점수 등과 같은 상황에서 관찰된다. 5. 긴 꼬리 분포 대부분의 데이터가 분포의 한쪽 끝에 몰려있고 반대쪽은 긴 꼬리가 이어지는 형태의 분포이다. 정규분포와 달리 대칭적이지 않고 비대칭적인 것이 특징이다. 특정한 하나의 분포를 의미하지 않으며 여러 종류의 분포(파레토 분포, 지프의 법칙, 멱함수)를 포함할 수 있다. 소득분포, 온라인쇼핑, 도서판매(소량의 베스트셀러 도서 - 다량의 비인기 도서)와 같은 일부가 전체적으로 큰 영향을 미치는 경우에 볼 수 있다. # 긴 꼬리 분포 생성 (예: 소득 데이터)long_tail ..

[TIL] 통계학 기초 - 2주차(1)

1. 모집단과 표본- 모집단과 표본 모집단이란 관심의 대상이 되는 전체 집단을 말하고 표본이란 이 모집단에서 추출한 일부를 말한다. 표본을 사용하는 이유는 모든 데이터를 수집하는 것은 물리적으로 불가능한 경우가 많고 비용과 시간을 절약할 수 있다는 현실적인 제약 때문이다.- 대표성 잘 설계된 표본은 모집단의 특성을 반영할 수 있다. 이를 통해 표본에서 얻은 결과를 모집단 전체에 일반화할 수 있다. 무작위로 표본을 추출하면 편향을 최소화하고 모집단의 다양한 특성을 포함할 수 있다.- 데이터 관리 및 모델 검증 큰 데이터셋은 분석에 많은 컴퓨팅 자원이 필요할 수 있지만 작은 표본은 이런 부담을 줄여준다. 또한, 작은 표본은 데이터 품질을 더 쉽게 관리하고 오류나 이상값을 식별하여 수정할 수 있다. 표본 데이..

[TIL] 통계학 기초 - 1주차

1. 통계의 중요성- 데이터를 분석하고 이를 바탕으로 결정을 내릴 수 있다. 데이터 분석에서 통계는 데이터를 이해하고 해석하는 데 중요한 역할을 한다. 데이터를 요약하고 패턴을 발견하고 추론을 통해 결론을 도출화하는 과정을 돕는다. 기업에서는 보다 현명한 결정을 내리고 수익을 창출하기 위해 데이터 기반의 의사결정을 내린다.- 실제 통계 사용 1) 고객 만족도 설문조사 2) 고객 유형별 세그먼트 상품 추천 3) 기업 전략 수립 4) 마케팅 5) 신제품 개발 2. 기술통계 데이터를 요약하고 설명하는 통계 방법이다. 주로 평균, 중앙값, 분산, 표준편차 등을 사용한다. 데이터를 특정 대표값으로 요약하여 데이터에 대한 대략적인 특징을 간단하고 쉽게 알 수 있다. 회사의 매출 데이터를 요약하기 위해 평균 매출, ..

[TIL] Python 베이직 - 5회차

1. Series 란?  1차원 배열을 말한다.. 리스트를 시리즈로 정의해서 불러오면 숫자 인덱스를 생성해서 보여준다.s = pd.Series(['부장', '차장', '대리', '사원', '인턴'])-----------------------------------------------------------------------------------------------s = pd.Series([91, 2.5, '스포츠', 4, 5.16]) 2. DataFrame 란? 2차원 데이터 구조로 Excel과 같다. 딕셔너리를 이용해서 DataFrame를 만들면 key값이 column이 되어 나타난다.pd.DataFrame([[1, 2, 3], [4, 5, 6], ..

[TIL] Python 베이직 - 4회차

1. 파이썬 가상 환경 하나의 독립된 파이썬 실행 환경으로 파이썬 패키지 설치 및 사용이 가능하다. 이 가상환경은 다른 프로젝트와 격리되어 각기 다른 프로젝트가 서로 간섭하지 않도록 한다.여러 프로젝트를 동시에 작업할 때, 각 프로젝트에서 필요한 패키지 버전이 다를 수 있는데 이때 가상 환경을 사용하면 각 프로젝트별 필요한 패키지를 독립적으로 관리할 수 있다. 가상 환경을 사용하면 프로젝트와 관련된 패키지 목록을 쉽게 관리하고 공유가 가능해 다른 개발자도 동일한 환경을 쉽게 설정할 수 있다. 가상 환경을 사용하지 않고 패키지를 설치하면 시스템 전체에 영향을 미칠 수 있다. 특히, 시스템에 기본으로 설치된 파이썬 패키지를 변경하면 시스템 안정성에 문제가 생길 수 있다. 가상 환경을 사용하면 이러한 문제를 ..

[TIL] Python 베이직 - 3회차

1. 함수란? 코드 재사용성, 가독성 향상, 유지보수 용이하여 함수를 사용한다.# 함수의 기본 구조def add(a, b): return a + b result = add(3, 5)print(result) # 출력: 8-----------------------------------------------------------------------------------------------# 입력이 없는 구조: 고정된 결괏값이나 특정 동작을 수행할 수 있다.def say(): return 'Hi' greeting = say()print(greeting) # 출력: Hi---------------------------------------------------------------..

[TIL] 데이터 시각화 - Matplotlib

1. 데이터 시각화의 목적- 데이터 시각화가 중요한 이유 분석된 결과에 따라 다양한 의사결정이 이루어지는데 이때, 전달하고자 하는 목적을 시각화된 자료와 함께 전달한다면 큰 설득력을 갖출 수 있다.- 데이터 시각화의 목적 1) 패턴 발견 및 이해 데이터 시각화는 데이터 내의 숨겨진 패턴을 발견하고 이해하는데 도움을 준다. 그래프나 차트를 통해 데이터의 특징을 시각적으로 파악할 수 있다.사례시각화시간에 따른 매출 추이 분석Line지역별 매출 비교 분석지도제품 카테고리별 매출 분석막대 그래프, 원형 차트고객 구매 패턴 분석히스토그램, Box Plot  2) 의사 결정 지원 시각화는 복잡한 데이터를 이해하고 결정을 내리는 데 도움을 준다. 시각화를 통해 정보를 명확하게 전달해서 의사 결정 과정을 지원한다.사례..

[TIL] Python 챌린지 - 2회차

1. API란? API (Application Programming Interface)란 애플리케이션 간 통신을 위한 규약을 말한다. 웹 API란 HTTP 프로토콜을 통해 데이터를 주고받는 인터페이스를 말한다. 2. HTTP 호출과 API 호출의 차이구분목적응답 형식HTTP 호출일반적인 웹 페이지나 리소스 요청주로 HTML, CSS, JavaScript등의 웹 문서를 반환API 호출특정 기능이나 데이터에 접JSON이나 XML 같은 구조화된 데이터 형식으로 응답 3. JSON(JavaScript Object Notation)이란? 데이터를 저장하고 전송하기 위한 경량의 데이터 교환 형식이다.  사람이 읽고 쓰기 쉬우며 기계가 파싱하고 만들어내기 쉽다. 또한, 언어 독립적이어서 대부분의 프로그래밍 언어에서 ..

[TIL] Python 챌린지 - 1회차

1. 웹사이트구분 정적 웹사이트 동적 웹사이트 콘텐츠 고정된 HTML 파일로 구성되어 있어 모든 사용자에게 동일한 내용을 보여줌사용자 요청에 따라 실시간으로 생성되어 개인화된 내용을 제공 할 수 있음 서버 처리 서버는 단순히 미리 작성된 파일을 전송함서버에서 스크립트를 실행하여 동적으로 콘텐츠를 생성 데이터베이스 일반적으로 데이터베이스를 사용하지 않음대부분 데이터베이스를 사용하여 정보를 저장하고 검색 상호작용 사용자와의 상호작용이 제한적사용자와 다양한 방식으로 상호작용할 수 있음 로딩 속도 일반적으로 빠름정적 웹사이트보다 상대적으로 느릴 수 있음 2. 웹 크롤링 기호: '뉴스 헤드라인 수집'- Requests 라이브러리 Python용 HTTP 라이브러리를 말한다. HTTP는 웹 브라우저와 서버 간 데이터..

[TIL] 데이터 전처리 - Pandas(3)

6. 데이터 병합- concat데이터프레임을 위아래로 혹은 좌우로 연결할 수 있는 함수이다. axis를 통해 연결하고자 하는 축(방향)을 지정하고 기본값은 0으로 되어있어 위아래로 연결다. 1로 설정하면 좌우로 연결이 가능하다. ignore_index의 기본값은 False이며, 연결된 결과 데이터프레임의 인덱스를 유지한다. True로 설정하면 새로운 인덱스를 생성한다.import pandas as pddf1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']})df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'], 'B': ['B3', 'B4', 'B5']})# 위아래로 데이터프레임 연결result_vertical ..

[TIL] 데이터 전처리 - Pandas(2)

4. 데이터 확인하기- 데이터 확인data.head() # head()은 기본 5개 행에 대한 데이터를 보여줌data.head(3) # ()안에 숫자만큼 데이터를 보여줌data.info() # 데이터 정보 파악(인덱스, 컬럼명, 컬럼의 데이터 개수, 데이터 타입), null 값을 확인data.describe() # 데이터의 기초통계량을 확인(숫자값에 대해서만 확인이 가능) - 결측치, 중복, 이상치 확인df.isnull().sum() # 결측치 확인, 결측치 갯수 확인도 가능df.dropna() # 결측치 제거df.duplicated(subset=['컬럼1', '컬럼2', '컬럼3']) # 중복 데이터 확인df.drop_duplicates(subset=['컬럼1', '컬럼2', '컬럼3']) # 중복 데..