我胡汉三又又又回来啦!
上篇文章中,我们已经写好了一个感知器,并用训练好的感知器做出了结果预测。这次,我们要学的是线性单元和梯度下降。同样贴出原教程地址:https://www.zybuluo.com/hanbingtao/note/448086.
下面是我照着写的代码:
from perceptron import Perceptron
f = lambda x:x
class LinearUnit(Perceptron):
def __init__(self,input_num):
Perceptron.__init__(self,input_num,f)
def get_training_dataset():
input_vecs=[[5],[3],[8],[1.4],[10.1]]
labels=[5500,2300,7600,1800,11400]
return input_vecs,labels
def train_linear_unit():
lu=LinearUnit(1)
input_vecs,labels=get_training_dataset()
lu.train(input_vecs,labels,10,0.01)
return lu
if __name__=='__main__':
linear_unit=train_linear_unit()
print(linear_unit)
print('用训练好的线性单元来预测工资:')
print('工作3.4年的月薪为:%.2f' % linear_unit.predict([3.4]))
print('工作15年的月薪为:%.2f' % linear_unit.predict([15]))
print('工作1.5年的月薪为:%.2f' % linear_unit.predict([1.5]))
print('工作6.3年的月薪为:%.2f' % linear_unit.predict([6.3]))
输出结果:
与原教程的输出结果一模一样,大功告成。