단순히 회귀선을 그리려고하는데 지저분한 선이 생깁니다. 모델에 두 가지 기능을 장착했기 때문에 적절한 시각화는 3D 평면뿐입니까?
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
# prepare data
boston = load_boston()
X = pd.DataFrame(boston.data, columns=boston.feature_names)[['AGE','RM']]
y = boston.target
# split dataset into training and test data
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.20, random_state=33)
# apply linear regression on dataset
lm = LinearRegression()
lm.fit(X_train, y_train)
pred_train = lm.predict(X_train)
pred_test = lm.predict(X_test)
#plot relationship between RM and price
plt.scatter(X_train['RM'],
y_train,
c='g',
s=40,
alpha=0.5)
plt.plot(X_train['RM'], pred_train, color='r')
plt.title('Relationship between RM and Price')
plt.ylabel('Price')
plt.xlabel('RM')
당신이 옳습니다. AGE 및 RM과 같은 여러 기능에 대해 교육하고 있습니다. 그러나 하나의 기능, 즉 RM 만있는 2D 플롯을 플로팅하고 있습니다. 3D 플롯을 얻으십시오. 일반적으로 두 가지 특징이있는 선형 회귀는 평면이됩니다. 이것은 여전히 선형 회귀입니다. 이것이 우리가 "hyperplane"이라는 용어를 사용하는 이유입니다. 단일 피쳐에 대한 선, 두 피쳐에 대한 평면 등으로 해석됩니다.
다음은 3D 출력입니다.
plt3d = plt.figure().gca(projection='3d')
plt3d.view_init(azim=135)
plt3d.plot_trisurf(X_train['RM'].values, X_train['AGE'].values, pred_train, alpha=0.7, antialiased=True)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다