반응형
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
- 해당 데이터를 학습 데이터와 테스트 데이터로 나눈다.
- 해당 데이터들을 기반으로 모델을 학습시키고, 학습 데이터에 대한 정확도를 확인한다.
반응형
'🛠 기타 > Data & AI' 카테고리의 다른 글
[scikit-learn 라이브러리] Ridge 예제 (0) | 2020.07.24 |
---|---|
규제 선형모델 Ridge와 Lasso 개념 이해 (0) | 2020.07.23 |
단층 퍼셉트론 - 코드 복습 (0) | 2020.07.23 |
IMDB Dataset을 활용한 나이브베이즈 예제 (0) | 2020.07.22 |
자주 사용되는 numpy.random 함수들 (0) | 2020.07.22 |