세조목

이커머스 머신러닝 강의 복습(Ch.1 - Linear Regression) 본문

데이터 분석 공부/머신러닝

이커머스 머신러닝 강의 복습(Ch.1 - Linear Regression)

세조목 2024. 2. 26. 20:52

1. 컬럼 제거

drop(제거할 열, axis=1, inplace=True)

 * inplace=True → '컬럼 제거하고 저장하겠다.'

numpy array datatype은 연산 속도가 빠르기 때문에 대규모 데이터를 처리할 때에는 이 datatype을 사용해줘야 함

 

2. 행 인덱싱

index명으로 인덱싱할때는 loc

순서로 인덱싱할때는 iloc

 

3. 컬럼 인덱싱(순서로)

컬럼을 순서로 인덱싱하고싶다면

행 인덱싱 적어준 후 콤마 찍고 인덱싱하고싶은 컬럼의 순서에 해당하는 숫자를 적어주면 됨

df.iloc[1:4, 0:3]

 

4. Linear Regression(statsmodel 활용)

  1. train, test data 나누기
  2. 라이브러리 import
    • import statsmodels.api as sm
  3. 변수에 모델 넣고 학습시키기
    •  model = sm.OLS(y_train, X_train)
    •  model.fit()
  4. statsmodels의 장점 → 측정지표들을 summary해줌
  5. 예측하기
    • pred = model.predict(X_test)
  6. MSE & RMSE 구하기
    1. from sklearn.metrics import mean_squared_error
    2. mean_squared_error(y_test, pred)
      • y_test는 실제값임
    3. np.sqrt(mean_squared_error(y_test,pred)) ← RMSE
      • MSE를 계산할때 값을 제곱하는데 이렇게 제곱하게되면 에러값이 너무 커지기때문에 Root를 씌워줌
    4. 단순히 MSE가 작다고해서 좋은 것이아니라 MSE는 상대적이기때문에 다른 모델의 MSE와 비교해서 봐야함

 

5. Gradient Descent

기울기의 방향성과 강도를 알아서 조정해서 최적의 라인을 찾아주는 알고리즘

이 Gradient Descent가 이용되어서 최적의 라인(Minimum RSS)를 찾을 수 있다.

 

6. 핵심 측정지표

 

1. R-squared

1과 0 사이의 숫자이며 수치가 높을수록 좋음

독립변수의 개수를 많으면 수치가 높게 나타날수밖에 없음

 

SSE : 실제값 - 예측값

SSR : 예측값 - 평균값

R-squared = SST = SSE/SSR

→ (실제값-평균값)에서 얼만큼 개선을 시켰는지를 %로 나타내줌

 

2. Adj.R-squared

변수가 몇 개 들어갔는지까지 고려해서

가중치를 가지고서 수치를 계산해줌

따라서 불필요한 변수가 들어있다면 이 수치는 높지 않을꺼임

 

3. coef

직선의 기울기(강도와 방향)를 나타냄

기울기가 클수록 민감하기때문에 해당 변수는 중요한 변수라고 볼수도 있는데

컬럼간 data scale을 맞춰주지 않으면 coef만 가지고서 컬럼의 중요도를 판단할 수 없음

 

4. P > |t|

p-value를 의미하며

일반적으로 0.05 이하면 양호하다, 다시말해 '이 정보를 신뢰할 수 있다'로 이해할 수 있다.

 

(내용 보충 예정)