from sklearn.linear_model import LinearRegression # 1. choose model class
model = LinearRegression() # 2. instantiate model
feature = ['feature_A']
target = ['feature_A']
#타겟 벡터 만들기
X_train = df[feature_B]
y_train = df[feature_B]
model.fit(X_train, y_train) # 3. fit the model to your data
# 전체 데이터를 모델을 통해 예측하기
X_test = [[x] for x in select_df['']]
y_pred = model.predict(X_test)
선형 회귀에서Train, Test 데이터를 구할 때 결과적으로
X_train = df[[feature_B]]
y_train = df[[feature_B]]
와 같은 열벡터 형식을 사용하게 되는데,
데이터에서 훈련 대상으로 삼을 피쳐를 골라
X_train = df['feature'] 과 같이 해버리면 오류가 뜬다.
ValueError: Expected 2D array, got 1D array instead: array=[1180 2570 770 ... 1020 1600 1020]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
최소제곱법은 훈련을 시키는 독립변수(x)와 타깃인 y(종속변수) 2개가 존재하기 때문에,
회귀선(예측선)을 계산할 때
y = ax + b 와 같은 일차식을 사용한다.
이를 계산하기 위해
2차원 벡터나 행렬을 사용한다.
2차원 행렬을 train 데이터로 쓰면 역행렬을 써서 회귀선의 기울기와 절편을 구하기 쉽기 때문이다.
따라서 Train 데이터는 2차원이어야 한다.
df[feature].reshape(-1, 1) #방법 1
df[[feature]] #방법 2
로 2차원 벡터를 만들어준다.
'머신러닝, 딥러닝' 카테고리의 다른 글
Ridge Regression (0) | 2021.02.03 |
---|---|
교차검증(Cross Validation) (0) | 2021.02.01 |
일반화(Generalize)란? (0) | 2021.02.01 |
다중 선형 회귀(Multiple Linear Regression) (0) | 2021.01.30 |
단순선형회귀 : 설명이 안되는 범위가 너무 많은데요? (0) | 2021.01.30 |