把学习算法封装成统一的模板,用fit函数来训练,用predict函数来预测。
sklearn第一次测试
由于是第一次使用sklearn这个包,所以先进行一次测试
# 导入线性回归模块 from sklearn.linear_model import LinearRegression rng = np.random.RandomState(5) #选定随机数种子,这样生成的随机数不会改变 xtrain = 10 * rng.rand(30) ytrain = 8+4*xtrain + rng.rand(30) #样本关系近似y=8+4x fig = plt.figure(figsize=(16,5)) ax1 = fig.add_subplot(121) plt.scatter(xtrain,ytrain,marker='.',color='k') plt.title('样本数据散点图') plt.show() model = LinearRegression() #创建线性回归模型 model.fit(xtrain.reshape(-1, 1),ytrain) #放入参数,需要将xtrain转换为列维度,因为是矩阵运算 #查看结果 model.coef_ #查看斜率,即y=ax+b中的a model.intercept_ #查看截距,即y=ax+b中的b print('计算出来的值,a=%f,,,,b=%f'%(model.coef_,model.intercept_)) print('拟合函数为,y = %f * x + %f'%(model.coef_,model.intercept_)) print('与原散点数值样本关系y = 4x + 8 近似') #进行测试 xtest = np.linspace(0,10,100) #返回一个等差数列 ytest = model.predict(xtest.reshape(-1,1)) #使用predict进行预测 #新建一个预测值的图表 ax2 = fig.add_subplot(122) #fig = plt.figure(figsize=(8,5)) plt.scatter(xtrain,ytrain,marker='.',color='k',label='原值') plt.plot(xtest