Scikit-Learn SGD 분류기 탐색

Beginner

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

소개

이 실습에서는 대규모 및 희소 문제를 해결하기 위해 머신 러닝에서 일반적으로 사용되는 강력한 최적화 알고리즘인 확률적 경사 하강법 (Stochastic Gradient Descent, SGD) 을 탐색합니다. scikit-learn 라이브러리의 SGDClassifier 및 SGDRegressor 클래스를 사용하여 선형 분류기 및 회귀자를 학습하는 방법을 배웁니다.

VM 팁

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

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

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

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 92%입니다.학습자들로부터 86%의 긍정적인 리뷰율을 받았습니다.

필요한 라이브러리 가져오기

먼저, 필요한 라이브러리를 가져와야 합니다. 머신 러닝 및 데이터 전처리를 위해 scikit-learn 라이브러리를 사용할 것입니다.

import numpy as np
from sklearn.datasets import load_iris
from sklearn.linear_model import SGDClassifier, SGDRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, mean_squared_error

데이터 로드 및 전처리

다음으로, iris 데이터셋을 로드하고 StandardScaler 를 사용하여 특징을 스케일링하여 전처리합니다.

## iris 데이터셋 로드
iris = load_iris()
X, y = iris.data, iris.target

## 특징 스케일링
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

## 데이터를 학습 및 테스트 세트로 분할
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

SGD 를 사용한 분류기 학습

이제 SGDClassifier 클래스를 사용하여 분류기를 학습할 것입니다. log_loss 손실 함수와 l2 페널티를 사용할 것입니다.

## SGD 를 사용한 분류기 학습
clf = SGDClassifier(loss="log_loss", penalty="l2", max_iter=100, random_state=42)
clf.fit(X_train, y_train)

## 테스트 세트에서 예측 수행
y_pred = clf.predict(X_test)

## 분류기의 정확도 측정
accuracy = accuracy_score(y_test, y_pred)

## 정확도 출력
print("분류기 정확도:", accuracy)

SGD 를 사용한 회귀자 학습

다음으로, SGDRegressor 클래스를 사용하여 회귀자를 학습할 것입니다. squared_error 손실 함수와 l2 페널티를 사용할 것입니다.

## SGD 를 사용한 회귀자 학습
reg = SGDRegressor(loss="squared_error", penalty="l2", max_iter=100, random_state=42)
reg.fit(X_train, y_train)

## 테스트 세트에서 예측 수행
y_pred = reg.predict(X_test)

## 회귀자의 평균 제곱 오차 측정
mse = mean_squared_error(y_test, y_pred)

## 평균 제곱 오차 출력
print("회귀자 평균 제곱 오차:", mse)

요약

이 실습에서는 scikit-learn 라이브러리를 사용하여 확률적 경사 하강법 (SGD) 을 사용하여 선형 분류기와 회귀자를 학습하는 방법을 배웠습니다. 우리는 아이리스 데이터 세트에서 분류기를 학습하고 정확도를 측정했으며, 회귀자를 학습하고 평균 제곱 오차를 측정했습니다. SGD 는 대규모 및 희소 머신 러닝 문제를 효율적으로 처리할 수 있는 강력한 최적화 알고리즘입니다.