def test_least_square_model(prostate_data):
from esl_model.ch3.models import LeastSquareModel
train_x, train_y, test_x, test_y, features = prostate_data
lsm = LeastSquareModel(train_x=train_x, train_y=train_y, features_name=features)
lsm.pre_processing()
lsm.train()
print(lsm.beta_hat)
print('rss:',lsm.rss)
print('F-statistic', lsm.F_statistic(remove_cols=['age', 'lcp', 'gleason', 'pgg45']))
print('z-score', lsm.z_score)
result = lsm.test(test_x, test_y)
print('test error: ', result.mse)
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(train_x, train_y)
print('std error', result.std_error)
assert np.isclose(result.mse, np.mean(((lr.predict(test_x)) - test_y) **2))
评论列表
文章目录