728x90
Lasso regression에 대한 것이나 Ridge랑 비교 분석 해놓은 사이트가 많으니 꼭 참고해서 읽어보셔요.
여기서는 어떻게 파이썬으로 쓸것인지에 대해서만 간략하게 소개드리려고합니다.
우선 우리가 처음 가지고 있다고 가정할 x변수에 대해서 보겠습니다.
1
|
x.shape
|
cs |
> (847, 56)
즉, 56개의 x변수를 가지고 있는데,
이 변수들을 그대로 쓰기에는 너무 많기 때문에 축소하기 위해서 쓰려고 합니다.
그때 사용할 로직이 Lasso regression입니다.
PCA차원축소와는 조금 다르게, 여기서는 원변수를 그대로 쓰는데요.
상대적 변수의 중요도를 판단하여,
의미가 없다고 생각되는 변수들의 coefficient값을 0으로 만들어주어
중요도가 높은 변수만 select할수 있게 해줍니다.
코드는 아래와 같이 간단합니다.
1
2
3
4
|
from sklearn.linear_model import Lasso
lasso_low = Lasso(alpha=0.03, max_iter=100000).fit(x, y)
print("사용한 인자의 수 : {}".format(np.sum(lasso_low.coef_ != 0)))
|
cs |
> 사용한 인자의 수 : 17
위의 코드에서 alpha값을 더 작게 해 줄 수록 더 많은 변수가 선택됩니다.
alpha값을 크게 하면 역시 더 적은 변수들이 선택되구요.
또 위의 결과가 어떤 17개의 변수를 선택했는지 보기위해서는
아래와 같은 방법으로 확인하시면 됩니다.
1
|
x.iloc[:,lasso_low.coef_!=0].columns
|
cs |
> Index(['col1', 'col2', 'col3', 'col4', 'col5', ... 'col17'],
dtype='object')
728x90
'IT > 파이썬' 카테고리의 다른 글
Permutation Feature Importance(변수중요도)를 통한 feature selection (0) | 2020.12.24 |
---|---|
Dummy Classifier (0) | 2020.12.23 |
GridSearchCV 그리드서치 1탄 (0) | 2020.12.21 |
의사결정나무(Decision Tree) 그래프 그리기 (0) | 2020.12.10 |
Imbalanced Dataset에서의 over sampling과 cross validation (0) | 2020.12.09 |