전체 글 24

데이터 스케일링 (머신 러닝)

머신 러닝에 사용되는 데이터들은 컬럼 별로 값의 범위가 다양한 경우가 많습니다. 이 경우 train, test 데이터를 같은 scaler 객체로 스케일링 해야 합니다. 1. Standard Scaler 평균 0, 분산 1인 정규 분포로 스케일링 하는 기법으로, 분류 분석에서 유용합니다. 이상치에 민감하므로, 이상치를 미리 확인, 정제한 후 사용하는 것이 좋습니다. from sklearn.preprocessing import StandardScalerStdscaler= StandardScaler() 2. Min-max Scaler컬럼을 0과 1 사이의 값으로 스케일링하는 기법으로, 회귀 분석에서 유용합니다. 이상치에 민감하므로, 이상치를 미리 확인, 정제한 후 사용하는 것이 좋습니다. from sklear..

분류 분석 (머신 러닝)

분류 분석은 머신 러닝의 결과 범주형 변수를 도출하려고 할 때 활용합니다. 1. 로지스틱 회귀 분석 (Logistic Regression) 독립 변수의 선형 결합으로 확률을 예측하여 범주형 변수를 도출하려고 하는 분석입니다. 성공 확률 / 실패 확률은 p / (1-p) 로, 오즈(odss) 라고 합니다. 오즈에 자연로그를 취한 로짓(Logit) = w0+w1x1+w2x2+... 을 통해 p 값인 확률을 도출하고, 확률이 특정 값(Threshold) 보다 높은지를 통해 1 또는 0으로 분류합니다. 클래스가 3개 이상인 다중클래스인 경우에는 각각의 클래스에 대해 확률을 구하고, 가장 확률이 높은 클래스로 데이터를 분류합니다. 매개 변수로 C 가 있는데, C 가 높을 수록 규제가 감소하며 개개의 데이터 포인트..

회귀 분석 (머신 러닝)

머신 러닝의 지도 학습 중 회귀 분석은 연속적인 숫자를 예측하는 것을 목표로 합니다. 단순 선형 회귀는 독립 변수(x) 가 하나인 경우로, y=Wx+b 인 경우 y 예측을 목표로 하고,다중 선형 회귀는 독립 변수 (x1, x2,...) 가 2개 이상으로, y=W1​x1​+W2​x2​+⋯+b 인 경우에 y 예측을 목표로 하고, 다항 회귀는 하나의 독립변수에 대해 다양한 차수에 따라 y를 예측하는 것을 목표로 합니다. 모델의 학습 과정은 손실 함수로서 평균 제곱의 오차 (MSE) 를 활용하는데, 예측값과 실제 값의 차의 제곱의 평균이 최소가 되도록 하는 것입니다. 일반적인 선형회귀에서는 최소 자승법(Ordinary least squares) 로 오차를 최소화할 수 있고, 경사하강법을 사용할 경우, 미분값이 ..

분산분석 with 파이썬

파이썬으로 분산 분석 (ANOVA) 을 수행하는 방법을 정리해보려고 합니다. ◎ 일원배치 분산분석 (One-way ANOVA) 일원배치 분산분석 (One-way ANOVA) 은 하나의 범주형 변수의 영향에 따른 둘 이상의 집단 간 평균이 같은지를 검증하기 위한 방법입니다. 1. 데이터 분포, 변수 설정 'Iris 의 3 가지 종(setosa, versicolor, virginica) 에서 sepal width 의 평균이 같다' 라는 귀무 가설을 검정하려고 합니다. 데이터는 3 가지 종의 데이터가 고르게 분포되어 있습니다.  setosa, versicolor, virginica 에 각각의 sepal width 값들의 데이터를 저장하였습니다. 2. 기본 가정을 충족하지 못한 경우 일원 배치 분산분석의 가정은..

t 검정 with 파이썬

파이썬으로 t 검정을 수행하는 방법에 대해 정리해보려고 합니다. t-검정은 집단의 평균 값을 추정하거나 집단 간 차이를 검정할 때 사용하는 검정 방법으로, 대표적으로 3가지의 경우 ( 일 표본, 대응표본, 독립표본) 가 있습니다. 1. 일 표본의 경우 일 표본의 경우 모평균의 기준값인 mu 를 설정한 후, '모평균의 값은 mu이다' 라는 귀무가설의 기각 여부를 검정합니다. 일표본의 경우 '정규분포를 이룬다는 가정' 의 충족 여부에 따라 검정 방법이 달라지므로, 먼저  '정규성을 가진다' 라는 귀무가설의 기각 여부를 검정하기 위해 Shapiro test 를 수행합니다.   p value(유의 확률) 이 0.05 보다 작을 경우에는 정규성이 없으므로, 윌콕슨 부호 순위 검정을 수행하고, 클 경우에는 정규성이..

웹 스크래핑의 기본

웹 스크래핑은 웹 페이지의 데이터를 자동으로 수집하는 기술입니다.  웹 스크래핑의 기본 방법을 간단하게 정리해 보려고 합니다. 1. URL 요청하기  라이브러리를 import 한 후, requests.get(웹사이트) 를 통해 URL 을 요청할 수 있고, .status_code 를 통해 200이 나오면 요청이 성공했다는 것을 알 수 있습니다. BeautifulSoup (URL 요청 .text, 'html.parser') 으로 BeautifulSoup 라이브러리의 html 분석 도구를 생성합니다. 2. 개발자 도구   데이터의 추출을 원하는 웹페이지에서 ctrl+ shift + j 를 누르면 개발자 도구 창이 열리게 됩니다. 개발자 도구 창에서 빨간색 네모로 표시된 부분을 누르고 웹사이트에서 원하는 부분을..

파이썬 기초 프로젝트 리뷰

11.4~11.8 한주 동안 진행했던 데이터 기반 부동산 추천 프로젝트에 대한 간단한 회고를 남겨보려고 합니다. 저희 조(11조)는 2024 서울시 부동산 실거래가 정보를 바탕으로 부동산 매물을 추천해주는 프로젝트를 진행했습니다. 1. 데이터 전처리 우선은 데이터에서 컬럼 별로 결측치에 해당하는 부분을 삭제하거나 대체하는 작업을 진행했습니다. 다음으로는 부동산 가격에 대해서 박스플롯을 그려보고, 3분위수+1.5*IQR 초과에 해당하는 부분을 이상치로 제거했습니다. 2. 부동산 매물 추천 저희 조에서는 만화 짱구에 나오는 짱구 가족, 오수, 짱구 할아버지를 고객으로 선정하여 프로파일링을 해봤습니다. 부동산 추천에 있어서는 부동산 도메인의 지식이 중요하다고 생각하여, 우선적으로는 부동산 사이트 및 관련 기사..

Leet-Code pandas 버전 리뷰

원래는 SQL 문제만 쭉 풀다가 요즘은 리트코드에서 판다스 버전으로 문제를 풀고 있습니다. 현재 Leet-Code 판다스 버전을 20문제 정도 푼 상태인데 그 중에서 인상 깊었던 문제들을 정리해 공유해보려고 합니다. 혼자서 작성했을 때 코드가 꽤나 길었지만 다른 사람들 풀이를 참조하다보니 코드가 확 간결해져서 인상깊었던 문제들의 풀이과정을 정리해봤습니다. 1. 방문은 했지만 거래는 안한 고객 수 찾기두 테이블을 합치고 빼고 하려고 하다보면 코드가 길어질 수 있지만  '~' 을 활용하고 [ ] 안에 필터링을 활용하면 훨씬 간결해지는 것을 볼 수가 있습니다. ~에 있는 지를 확인하는 .isin(), Null 값도 Count 에 포함하는 .size(), 열 이름을 설정하면서 동시에 Dataframe 으로 전환..

SQL Window Function

SQL 에서 자주 쓰는 Window Function 에 대해 정리해보려고 합니다. Window Function 은 특정한 열의 행 각각을 기준으로 다른 열을 정렬하려고 할 때 Select 에서 활용할 수 있는 코드 입니다. 종류는 총 네 가지가 있습니다.  ● rank: 파티션 별 값 순위  RANK() OVER(PARTITION BY 컬럼1 ORDER BY 컬럼2) ○ RANK()는 중간 순위를 비우지만, DENSE_RANK() 는 중간 순위를 비우지 않는다는 점에서만 다르고 나머지는 같습니다. ● row_number: 파티션 별 행 순위  ROW_NUMBER() OVER(PARTITION BY 컬럼1 ORDER BY 컬럼2)  ● first_value, last_value: 파티션 별 먼저, 나중에 ..

시계열 분석

● 시계열 분석 시계열 분석은 일정 시간 간격으로 기록된 자료들의 특성을 파악하고 미래를 예측하는 분석 방법이다. ● 자기 상관성  이웃하는 자료들 간의 상관 관계 1. 자기 상관 계수 (ACF) 시간의 흐름에 따른 자기 상관 관계의 변화를 나타낸 지표 = 시차 l 에 따른 시점 t 의 값과 t+l 의 값 간의 상관 계수 의 변화를 나타낸 지표 시계열 자료가 시간에 의존하지 않고 무작위성을 띠는지 확인할 때 사용한다. 2. 부분 자기 상관 계수 (PACF) 다른 시점의 확률변수 영향력을 통제한 상관관계를 나타낸 지표 = 시점 t 와 t+l 사이의 l-1개 자료의 영향을 제거한 상관 계수 ● 시계열 자료의 정상성 조건 시계열의 정상성은 시계열의 통계적 특성이 시간에 대해 일정하다는 것을 의미하며, 정상성은..