[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/Data & AI

[scikit-learn 라이브러리] LinearRegression (선형회귀)

inu 2020. 7. 23. 22:13
반응형

Linear Regression

from sklearn.linear_model import LinearRegression

LinearRegression(fit_intercept, normalize, copy_X, n_jobs)
  • fit_intercept : 모형에 상수항 (절편)이 있는가 없는가를 결정하는 인수 (default : True)
  • normalize : 매개변수 무시 여부
  • copy_X : X의 복사 여부
  • n_jobs : 계산에 사용할 작업 수

사용예시1

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

def make_wave(n_samples=100):
    rnd = np.random.RandomState(42)
    x = rnd.uniform(-3, 3, size=n_samples)
    y_no_noise = (np.sin(4 * x) + x)
    y = (y_no_noise + rnd.normal(size=len(x))) / 2
    return x.reshape(-1, 1), y

X, y = make_wave(60)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
  • 데이터 준비과정
  • make_wave은 그냥 복잡한 X,y값 생성함수이다. (별로 신경쓰지 않아도 됨)
  • train_test_split : 주어진 데이터와 랜덤값을 바탕으로 학습데이터와 테스트데이터를 리턴한다.
# LinearRegression 모델 코드
model = LinearRegression()
model.fit(X_train, y_train)

print("가중치(계수, 기울기 파라미터 W) :", model.coef_)
print("편향(절편 파라미터 b) :", model.intercept_)

print("훈련세트 점수: {:.2f}".format( model.score(X_train, y_train) ))
print("테스트세트 점수: {:.2f}".format( model.score(X_test, y_test) ))
==결과==
가중치(계수, 기울기 파라미터 W) : [0.39390555]
편향(절편 파라미터 b) : -0.031804343026759746
훈련세트 점수: 0.67
테스트세트 점수: 0.66
  • 기초프로세스는 간단하다. LinearRegression함수를 import하고, 그를 통해 모델을 생성, 학습하면 된다.
  • coef_ : 현 선형회귀 모델의 가중치값을 출력한다.
  • intercept_ : 현 선형회귀 모델의 편향값을 출력한다.
  • score : 해당 X,y값에 대한 정확도를 출력한다.

활용예시2

from sklearn.datasets import load_breast_cancer

cancer = load_breast_cancer()
cancer.keys()
==결과==
dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])
  • load_breast_cancer에서 유방암 데이터를 받아온다.
  • data에 독립변수가 들어있고, target에 종속변수가 들어있다.
X_train, X_test, y_train, y_test = train_test_split(cancer.data, 
                                                    cancer.target, 
                                                    random_state=0)

# LinearRegression 모델 코드
model = LinearRegression()
model.fit(X_train, y_train)
model.score(X_test, y_test)
==결과==
0.7291758706114044
  • 해당 데이터를 학습 데이터와 테스트 데이터로 나눈다.
  • 해당 데이터들을 기반으로 모델을 학습시키고, 학습 데이터에 대한 정확도를 확인한다.
반응형