1、一元线性回归预测:
一元线性回归模型原理参考之前写的博客链接:https://blog.csdn.net/zzx2016zzx/article/details/80589050?
import?pandas?as?pd import?tensorflow?as?tf import?numpy?as?np from??matplotlib?import??pyplot?as?plt plt.rcParams['font.sans-serif']=['SimHei']?#显示中文标签 plt.rcParams['axes.unicode_minus']=False???#解决负号“-”显示为方块的问题 data=pd.read_csv('D:/code/python/pythonProject/tensorflow51自学/tensorflow入门与实战-基础部分数据集/Income1.csv') x=data.Education y=data.Income model=tf.keras.Sequential() #定义模型,?使用一层全连接,?输出为一维,输入为一维 model.add(tf.keras.layers.Dense(1,input_shape=(1,))) #编译模型,?使用adam(梯度下降)作为优化函数,?使用mse(均方差)作为损失函数 model测试数据pile(optimizer='adam',loss='mse')#mes均方差 #?开始训练 history=model.fit(x,y,epochs=50000)#训练次数 #?Y=model.predict(pd.Series([20])) #使用训练后的模型进行预测 Y=model.predict(x) plt.plot(x,Y,'r-s',label="训练模型预测") plt.scatter(data.Education?,data.Income,color='b',label='原始数据') #一元线性 b=np.sum((x-np.mean(x))*(y-np.mean(y)))/np.sum((x-np.mean(x))**2) a=np.mean(y)-b*np.mean(x) x1=np.arange(10,22) y2=b*x1+a plt.plot(x1,y2,'m-p',label='一元线性预测') plt.legend() plt.show()
Income1.csv数据,其中Education为受到教育年限、Income为收入,想预测受到教育的年限和收入之间的关系
Education Income 10 26.65884 10.40134 27.30644 10.84281 22.13241 11.24415 21.16984 11.64548 15.19263 12.08696 26.39895 12.48829 17.43531 12.88963 25.50789 13.29097 36.88459 13.73244 39.66611 14.13378 34.39628 14.53512 41.49799 14.97659 44.98157 15.37793 47.0396 15.77926 48.25258 16.22074 57.03425 16.62207 51.49092 17.02341 61.33662 17.46488 57.58199 17.86622 68.55371 18.26756 64.31093 18.70903 68.95901 19.11037 74.61464 19.51171 71.8672 19.91304 76.09814 20.35452 75.77522 20.75585 72.48606 21.15719 77.35502 21.59866 72.11879 22 80.26057训练500次
训练5000次
训练30000次
训练50000次
总结:随着模型训练次数的增加,训练的一元线性回归越来越接近标准的线性回归模型,从中可以看出,只要训练次数足够大,训练模型就可以无线逼近直到完成和标准的模型重合
2、多元线性回归预测
查看更多关于tensorflow 线性回归 预测的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did125831