数据小站
数据科学成长之路

sklearn中的线性回归api使用

导入线性回归中用到的模块

sklean中的线性回归模型,在liner_model模块中,常用有线性回归、SGD回归,和岭回归等不同的分类器:LinearRegression,SGDRegressor,Ridge。不同分类器在计算时采用的方式不一样,LinearRegression使用的是解析解,通过矩阵计算的方式求解参数,SGD采用梯度下降的方式求解参数,ridge是采用L2的正则化惩罚项。虽然不同的分类器在数据求解上不一样,但是在api的使用中是展示上是一致的,可以通用。

在sklearn的liner_model模块中,包含了线性回归、SGD回归,和岭回归等不同的分类器:LinearRegression,SGDRegressor,Ridge

sklearn自带数据集 datasets

选择模块model_selection,导入 train_test_split 测试训练集分离方法

预处理模块preprocessing ,导入数据标准化的处理方法,选择StandardScaler标准化方法

模块metrics,导入计算均方误差的方法 mean_squared_error
from sklearn.linear_model import LinearRegression,SGDRegressor,Ridge
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error

线下回归采用波士顿房价数据进行测试datasets.load_boston()

bostdon = datasets.load_boston()
x_train,x_test,y_train,y_test = train_test_split(bostdon.data,bostdon.target,random_state=1)
#标准化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)

#线下分类器
print('线性回归')
lin_model = LinearRegression()
lin_model.fit(x_train,y_train)
lin_y = lin_model.predict(x_test)
print(lin_model.coef_)
print(lin_model.intercept_)
print('均方误差',mean_squared_error(y_test,lin_y))


# 采用梯度下降SGD的分类器
print('SGD')
sgd_model = SGDRegressor()
sgd_model.fit(x_train, y_train)
sgd_y = sgd_model.predict(x_test)
print(sgd_model.coef_)
print(sgd_model.intercept_)
print('均方误差',mean_squared_error(y_test,sgd_y))

# 采用岭回归分类器
print('岭回归')
r_model = Ridge()
r_model.fit(x_train, y_train)
r_y = r_model.predict(x_test)
print(r_model.coef_)
print(r_model.intercept_)
print('均方误差',mean_squared_error(y_test,r_y))

通过训练模型的 coef_ intercept_属性,可以查看模型的参数和截距,通过均方误差,还看模型的数据离散程度。

赞(0) 打赏
未经允许不得转载:技术文档分享 » sklearn中的线性回归api使用

评论 抢沙发