이커머스 머신러닝 강의 복습(Ch.1 - Linear Regression)
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 활용)
- train, test data 나누기
- 라이브러리 import
- import statsmodels.api as sm
- 변수에 모델 넣고 학습시키기
- model = sm.OLS(y_train, X_train)
- model.fit()
- statsmodels의 장점 → 측정지표들을 summary해줌
- 예측하기
- pred = model.predict(X_test)
- MSE & RMSE 구하기
- from sklearn.metrics import mean_squared_error
- mean_squared_error(y_test, pred)
- y_test는 실제값임
- np.sqrt(mean_squared_error(y_test,pred)) ← RMSE
- MSE를 계산할때 값을 제곱하는데 이렇게 제곱하게되면 에러값이 너무 커지기때문에 Root를 씌워줌
- 단순히 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 이하면 양호하다, 다시말해 '이 정보를 신뢰할 수 있다'로 이해할 수 있다.
(내용 보충 예정)