美文网首页
keras_线性回归

keras_线性回归

作者: 魔童转世 | 来源:发表于2018-09-04 21:25 被阅读0次
    image.png

    机器学习太难了 引用一句话'tensorflow是给那些天星人用的' 每天进步一丢丢吧

    from keras.layers import Dense, np
    from keras.models import Sequential
    import matplotlib.pyplot as plt
    
    #--------------数据伪造阶段
    X = np.linspace(-1,1,200)#在指定的间隔内返回均匀间隔的数字
    np.random.shuffle(X) #打乱X数据顺序
    Y=0.5*X+2+np.random.normal(0,0.05,(200,))  通过后面的随机数 是数据产生误差  
    
    #-------------打印输出 查看形状
    plt.scatter(X,Y)
    plt.show()
    
    #-------------------获取前160个数据 作为训练数据 后面40个作为测试数据
    x_train,y_train=X[:160],Y[:160]
    x_test,y_test=X[160:],Y[160:]
    
    
    
    
    #----------------开始建模
    model = Sequential() 
    model.add(Dense(output_dim=1,input_dim=1)) 
    model.compile(loss='mse',optimizer='sgd') 
    #loss 是损失函数例如:y=a*x+b 的损失函数为y(p) = (预测值- y)*(预测值- y)  平方没法打  
    #optimizer 为梯度下降法 意思就是 每循环一次 X=X-2 
    
    
    #-----开始训练
    for sep in range(500):
     #-------按批次获取数据训练
       cost =  model.train_on_batch(x_train,y_train)
       if sep%100==0:
           print('train cost:',cost)
    
    print('test-----')
    
    
    #----评价模型  没搞明白为啥要这样做
    cost = model.evaluate(x_test,y_test)
    
    print('test cost:',cost)
    #----------得到训练结果的权重
    w,b = model.layers[0].get_weights()
    print('weights=',w,'\nbiascs=',b)
    
    
    #------预测x_test---
    y_pred = model.predict(x_test)
    plt.scatter(x_test,y_test)
    plt.plot(x_test,y_pred,color='#00161a')
    plt.show()
    
    

    相关文章

      网友评论

          本文标题:keras_线性回归

          本文链接:https://www.haomeiwen.com/subject/zhwnwftx.html