데이터로 Deep Dive

데이터 분석과 개발 경험을 공유합니다.

한국경제신문 26

다항회귀(Polynomial Regression)

다항회귀란?선형 회귀는 학습 데이터에 가장 잘 맞는 일차식을 찾아서 예측을 하는 알고리즘인 반면, 다항 회귀는 고차식을 찾아서 예측하는 알고리즘이다.  집 값 예측 문제를 생각해보자. 항상 집의 크기라는 변수가 주어진다는 가정을 했고 이걸 하나의 속성으로 이용했는데 사용하는 데이터가 항상 이렇게 하나만 사용해도 의미가 있는 완벽한 변수일 수는 없다. 예를 들어 집이 사각형이라고 가정하고 집 크기 대신 집의 높이와 너비 데이터만 있다고 하자.사실 아무리 너비가 커도 높이가 작거나, 높이만 크고 너비만 작으면 크기가 작고 구조가 효율적이지 않기 때문에 집 값이 높지 않다. 사실 이 두 변수들보다 집값을 예측하는 데 훨씬 좋은 수치는 이 둘을 곱한 값, 집의 넓이다.단순 선형 회귀를 사용하면 이 두 변수가 서..

DataFrame - query() 함수 사용하기

query() 함수는 데이터 분석 라이브러리인 Pandas에서'DataFrame.query().' 메서드를 사용해 특정 조건을 만족하는 데이터를 쉽게 추출할 수 있다. 기본 사용법 - 불린 인덱싱하기query() 함수는 문자열로 표현된 조건식을 받아, 그 조건을 만족하는 데이터프레임의 행을 반환한다. 이는 SQL의 'SELECT ... WHERE...' 절과 유사하게 동작한다. 또, query() 함수를 사용한다면 보다 간결한 코드로 DataFrame에서 불린 인덱싱을 할 수 있다.내부적인 작동 방식은 대괄호를 사용하여 불린 인덱싱을 하는 것과 거의 동일하지만, 데이터가 많은 경우 query() 함수를 쓴다면 속도가 조금 느려질 수 있다.# 대출 신청자의 수입이 5,000 이상이다' 라는 조건식을 불린 ..

describe() vs describe - 괄호가 붙는 '함수'와 붙지 않는 '변수'

pandas에서 함수를 사용할 때, 뒤에 괄호가 붙는 경우가 있고 붙지 않는 경우를 볼 수 있다.  가령 head(), infio(), sort_values()에는 괄호를 붙이는데, dtypes, shape 뒤에는 괄호를 붙이지 않는다.  처음엔 무지하게 헷갈림... 그냥 그런 명령어겠거니 생각하고 넘어갔는데, codeit 듣다가 정리된 글을 발견함 ㄷㄷ 뒤에 괄호가 붙는 건 DataFrame에 동작하는 '함수' 괄호가 붙지 않는 건 DataFrame의 정보를 담고 있는 '변수'   예를 들면, df.describe()는 통계값을 계산하는 describe()라는 함수를 df라는 DataFrame에 적용하는 코드라고 볼 수 있고,  df.shape는 DataFrame의 크기 정보가 저장되어 있는 변수를 가..

Git 활용하기(git reflog, --all, --graph, git merge vs git rebase)

git reflog: HEAD가 가리켰던 commit들의 id 확인하기, 헤드가 이때까지 가리켜왔던 커밋들을 기록한 정보(reference log의 줄임말)git log --pretty=oneline --all: 모든 브랜치의 log 기록 출력--graph: 커밋 히스토리가 각 브랜치와의 관계가 잘 드러나도록 그래프 형식으로 출력git log --pretty=oneline --all --graphgit rebase: 베이스를 다시 지정하다. 커밋을 재배치한다. -> 프리미엄 브랜치의 베이스를 테스트 브랜치로 재지정git rebase --continue: 컨플릭트가 발생해서 제대로 진행되지 못한 리베이스를 계속 진행하라.

차원 축소 알고리즘

차원의 저주: 차원이 커지면 커질수록 데이터 포인트들 간 거리가 크게 늘어나므로 데이터가 희소화(Sparse) 되기 시작함수백~수천 개 이상의 Feature로 구성된 포인트들간 거리에 기반한 머신러닝 알고리즘들이 무력화 됨또, Feature가 많을 경우, 개별 Feature간 상관관계가 높아 선형 회귀 같은 모델에선 '다중공선성 문제'로 인해 모델의 예측 성능이 저하될 가능성이 매우 높다.  차원 축소 장점학습 데이터 크기를 줄여 학습 시간을 절약할 수 있음불필요한 Feature를 줄여 모델 성능 향상에 기여할 수 있음다차원 데이터를 3차원 이하의 차원 축소를 통해 시각적으로 쉽게 데이터 패턴을 인지할 수 있음차원 축소 분류특성 선택(feature selection): 종속성이 강한 불필요한 특성은 완전..

pandas와 DataFrame

판다스란?파이썬에서 데이터 처리를 위해 존재하는 가장 인기 있는 라이브러리고수준 API 제공파이썬의 리스트, 컬렉션, 넘파이 등의 내부 데이터 외에도 CSV등의 파일을 쉽게 DataFrame으로 변경해 데이터의 가공/분석을 편리하게 수행할 수 있도록 함 핵심 객체 -> DataFrameDataFrame: Index를 key값으로 가지며  행x열 로 이뤄진 2차원 데이터를 담은 데이터 구조체, 여러개의 Series로 이뤄져있음 eg. DataFrame 생성 - 아래와 같이 딕셔너리를 넣을 수도 있고, 리스트나 NumPy array를 넣을 수도 있음dict_df = pd.DataFrame({ 'category': ['skirt', 'sweater', 'coat', 'jeans'], 'quantit..

Matplotlib 개념 및 간단 예제

Matplotlib이란?: 파이썬의 데이터 시각화 라이브러리로 다양한 종류의 시각화를 지원하며 데이터 분석과 시각화 작업에서 널리 사용된다. 주요 특징다양한 플롯 유형: 선 그래프, 막대 그래프, 산점도, 히스토그램, 파이 차트 등 여러 가지 플롯을 만들 수 있습니다.강력한 커스터마이징: 색상, 스타일, 레이블, 제목 등 그래프의 모든 요소를 세밀하게 조정할 수 있습니다.인터랙티브: Jupyter Notebook과 같은 환경에서 인터랙티브한 플롯을 만들 수 있습니다.출력 포맷: 플롯을 PNG, PDF, SVG 등 다양한 포맷으로 저장할 수 있습니다.통합: NumPy, Pandas, SciPy와 같은 다른 파이썬 라이브러리와 잘 통합됩니다.기본 함수figure() 함수의 figsize 파리미터로 그래프 ..

회귀 알고리즘

회귀란?데이터 값이 평균과 같은 일정한 값으로 돌아가려는 경향회귀 분석은 데이터 값이 평균과 같은 일정한 값으로 돌아가려는 경향을 이용한 통계학 기법 여러 개의 독립변수(X)와 한 개의 종속변수(y) 간의 상관관계를 모델링하는 기법(*모델링은 표본)가중치 -> 회귀 계수(Regressino Coefficients)회귀 유형회귀 계수회귀 계수가 직선이면 -> 선형회귀회귀 계수가 직선이 아니면 -> 비선형로지스틱 회귀독립변수 개수회귀 계수의 결합1개단일 회귀선형선형 회귀 N개 다중 회귀비선형비선형 회귀로지스틱 회귀 회귀 모델의 목적: 전체 데이터의 잔차(오류 값) 합이 최소가 되는 모델을 만드는 것 -> 오류 값의 합이 최소가 될 수 있는 최적의 회귀 계수 w을 찾는 것!일반 선형 회귀(LinearRegre..

.gitignore - 조금 더 깔끔한 버전 관리가 필요하다면?

.gitignore 파일이란?: Git으로 프로젝트의 버전 관리를 시작할 때, .gitignore 파일에는 'working directory 안에 존재하기는 하지만 Git으로 버전을 관리하고 싶지 않은 것들'의 이름을 적어 활용할 수 있다. Add .gitignore: None 은 .gitignore파일을 생성하지 않겠다는 의미이다.  .gitignore 파일은그 플랫폼에서 실행될 프로그램을 만들거나,해당 프로그래밍 언어로 코드를 작성할 때(보통 자동으로) 생성되는 파일들중에서 굳이 Git에 의해 버전 관리될 필요가 없는, 불필요한 파일들의 이름이 정리된 .gitignore 파일을 자동으로 생성해준다.단어의미*.py[cod] .pyc 또는 .pyo 또는 pyd로 끝나는 파일명*$py.class $py...