Scikit-Learn Lasso 경로

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 다이어베티스 데이터셋에서 LARS 알고리즘을 사용하여 정규화 매개변수에 따라 Lasso 경로를 계산하는 방법을 보여줍니다. Lasso 경로는 L1 정규화 매개변수가 증가함에 따라 선형 모델의 계수를 나타내는 플롯입니다. 각 색상은 계수 벡터의 다른 특징을 나타내며, 이는 정규화 매개변수의 함수로 표시됩니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근합니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

데이터 로드

첫 번째 단계는 Scikit-Learn 에서 다이어베티스 데이터셋을 로드하는 것입니다.

from sklearn import datasets

X, y = datasets.load_diabetes(return_X_y=True)

Lasso 경로 계산

다음으로, LARS 알고리즘을 사용하여 Lasso 경로를 계산합니다. Scikit-Learn 의 linear_model 모듈에서 lars_path 함수를 사용하여 Lasso 경로를 계산합니다. 이 함수는 입력 특징, 목표 변수 및 방법을 매개변수로 받습니다. 이 경우 L1 정규화를 위해 "lasso" 방법을 사용합니다.

from sklearn import linear_model

_, _, coefs = linear_model.lars_path(X, y, method="lasso", verbose=True)

Lasso 경로 시각화

Lasso 경로 계산 후 결과를 시각화합니다. 각 특징의 계수를 정규화 매개변수의 함수로 플롯합니다.

import numpy as np
import matplotlib.pyplot as plt

xx = np.sum(np.abs(coefs.T), axis=1)
xx /= xx[-1]

plt.plot(xx, coefs.T)
ymin, ymax = plt.ylim()
plt.vlines(xx, ymin, ymax, linestyle="dashed")
plt.xlabel("|계수 | / 최대 | 계수|")
plt.ylabel("계수")
plt.title("LASSO 경로")
plt.axis("tight")
plt.show()

결과 해석

결과 플롯은 당뇨병 데이터셋에 대한 Lasso 경로를 보여줍니다. 각 색상은 계수 벡터의 다른 특징을 나타내며, 이는 정규화 매개변수의 함수로 표시됩니다. 정규화 매개변수가 증가함에 따라 일부 특징의 계수가 0 으로 수렴하는데, 이는 해당 특징이 목표 변수를 예측하는 데 덜 중요하다는 것을 나타냅니다.

요약

이 실습에서는 당뇨병 데이터셋에 LARS 알고리즘을 사용하여 Lasso 경로를 계산하고 시각화하는 방법을 보여주었습니다. Lasso 경로는 선형 모델의 계수에 대한 L1 정규화의 영향을 이해하는 데 유용한 시각화 도구입니다.