본문 바로가기

파이썬

[수학] 경사하강법 (Gradient Descent) 미분을 사용하는 최적화 알고리즘의 대표적인 예시 경사하강법 (Gradient Descent)은 위에서 거론 됐던 오차 함수인 error (𝜀) 을 최소화 하는 𝑎,𝑏 를 찾을 수 있는 최적화 알고리즘 중의 하나. 최적의 a,b를 찾기 위해선 미분계수가 0인 곳을 찾으면 된다. 하지만 현실적으로 우리가 앞으로 다루게 될 문제에선 파라미터의 갯수는 수없이 많을 것이고 하나의 minimum/maximum만이 존재하지 않는 상황에 직면한다. 경사하강법은 임의의 a, b를 선택한 후 (random initialization)에 기울기 (gradient)를 계산해서 기울기 값이 낮아지는 방향으로 진행. 기울기는 항상 손실 함수 값이 가장 크게 증가하는 방향으로 진행합니다. 그렇기 때문에 경사하강법 알고리즘은 기울기.. 더보기
[수학] 기초 미분 (Basic Derivative) 미분이란? 함수를 작게 나누는것으로 X의 값을 아주 미세하게 변화시킨 후 그 결과값이 어떻게 바뀌는지 보며 0에 가깝게 만드는것. 즉, 특정한 파라미터 값 (input, x)에 대해서 나오는 결과값(output, y)이 변화하는 정도를 (0에 가까운 부분을 찾기 위해) 계산하는 것. Data Science 에서의 미분은 Simple Linear Regression (단순선형회귀)에서 주로 사용 한다. == X로 y를 예측할 수 있는 하나의 선을 그린다. ŷ = b0 + b1x b0 = y intercept b1 = Slope * 미분 공식 Python 기본 공식 : f′(x)=f(x+Δx)−f(x) / Δx == f(x+Δx)−f(x−Δx) / 2Δx Δx→0 하지만 실제로 0으로 나눌 수는 없기 때문에.. 더보기
[DataAnalysis] EDA (Exploratory Data Analysis) -탐색적 데이터 분석 EDA 원본데이터(Raw Data)를 탐색하는 방법, 분석하기전 전체적인 테이터의 '견적'을 내는 분석 시각화 (Data Visualization)을 통해 패턴을 찾고, 데이터의 특이성을 발견하여(데이터전처리). 통계와 그래픽을 통해 가설을 결정하는과정을 포함한다. EDA의 방법 Non-Graphic 연속형 데이터 (Numeric Data) : 숫자형 데이터는 샘플데이터의 분포를 확인하는 것이 주 목적. 주로 Summary Statistics를 활용함. Center (평균값 Mean, 중앙값 Median, 최빈값 Mode) df.mean() df.median() df.mode() Spread (분산 Variance, 표준편차 SD(Standard Deafness), 사분위 IQR, 범위 Range) df.. 더보기
[Python] 데이터 전처리 2 - 중복값 확인 및 처리 데이터를 불러오고 결측치를 처리하고 나면, 중복된 값이 있는지 확인하고 이를 처리 해야 한다. 특히, merge나 Join으로 데이터를 합친 프레임이라면 더더욱 확인하고 처리해야하는 중복값. 중복값 확인 (True값이 중복된 부분) df.duplicated(['중복값확인하고싶은column']) df.duplicated(['중복값 확인하고싶은 column1', '중복값 확인하고싶은 column2']) #df key1 key2 col 0 a v 1 1 b w 2 2 b w 3 3 c x 4 4 c y 5 출처: https://rfriend.tistory.com/266 [R, Python 분석과 프로그래밍의 친구 (by R Friend)] df.duplicated(['중복값확인하고싶은column']) #res.. 더보기
[Python] 데이터 전처리 1 - 결측치 확인 및 처리 데이터를 불러왔으면 이제부터 데이터 전처리 과정이 시작된다, 데이터의 구성요소를 빠르게 확인하고 제대로된 데이터들로 만들어 줘야 한다. 데이터 확인 df.shape() ==> 데이터셋의 형태, 즉 열과 행의 수를 보여줌 df.head() / df.tail() ==> 데이터셋의 위에서 5개 / 아래서 5개 보여줌 (괄호안에 int를 넣으면 그 int만큼 보여줌) dtypes ==> 데이터 프레임의 type을 보여줌 (float, object, str...etc.) df.describe() ==> 데이터셋의 numeric 행에 대한 count, mean, std(표준편차), min, 25%(Q1), 50%(Q2), 75%(Q3), max(Q4)값을 한번에 보여줌 결측치 확인 df.info() ==> 데이터셋.. 더보기
[Python] Pandas로 데이터 불러오기 기본적인 데이터 전처리의 과정을 하기전 데이터를 불러오는 방법부터 알아보자. PAANDS 공식 Ref. pandas.read_csv https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html pandas.read_csv — pandas 1.2.4 documentation Delimiter to use. If sep is None, the C engine cannot automatically detect the separator, but the Python parsing engine can, meaning the latter will be used and automatically detect the separator by .. 더보기