• 机器学习——TensorFLow实战房价预测


    import pandas as pd
    import numpy as np
    import tensorflow as tf
    import matplotlib.pyplot as plt
    # 读取数据
    df = pd.read_csv("G:chapter-4data1.csv",names=['square','bedrooms','price'])
    # 数据归一化:均值方差归一化
    def normal_feature(df):
        return  df.apply(lambda col:(col-col.mean())/col.std())
    df=normal_feature(df)
    ones=pd.DataFrame({'ones':np.ones(len(df))})
    # 添加一列新的数据
    df=pd.concat((ones,df),axis=1)
    # 分别获取x和y
    x=np.array(df[df.columns[0:3]])
    y=np.array(df[df.columns[-1]]).reshape(len(df),1)
    
    # 定义一个学习率
    alpha=0.01
    # 定义训练次数
    epoch=500
    # 两个占位符
    X=tf.placeholder('float',shape=x.shape)
    Y=tf.placeholder('float',shape=y.shape)
    
    # 设置w的初始值,w是一个变量,常驻内存,它可以被训练
    W=tf.get_variable('weights',shape=(x.shape[1],1),initializer=tf.constant_initializer)
    # 根据公式可得预测值y_
    y_=tf.matmul(X,W)
    
    # 定义损失函数,transpose_a=True表示将第一个(y-y_)转置,才可以做乘法,最小二乘法
    loss_op=1/(2*len(y))*tf.matmul((y-y_),(y-y_),transpose_a=True)
    
    # 定义优化函数,采用梯度下降法
    opt=tf.train.GradientDescentOptimizer(learning_rate=alpha)
    # 最小化
    train_step=opt.minimize(loss_op)
    loss_x=[]
    with tf.Session() as sess:
        # 初始化全局变量
        sess.run(tf.global_variables_initializer())
        for e in range(epoch+1):
            _,loss=sess.run([train_step,loss_op],feed_dict={X:x,Y:y})
            loss_x.append(float(loss))
            if e%10==0:
                loss,w=sess.run([loss_op,W],feed_dict={X:x,Y:y})
                log_str='Epoch:%d	 loss:%.4g	 model:y=%.4gx1+%.4gx2+%.4g'
                print(log_str%(e,loss,w[1],w[2],w[0]))
    
    plt.plot(np.array(range(0,501)),loss_x)
    plt.show()
    
    

    在这里插入图片描述

  • 相关阅读:
    同名的const 成员函数
    模板元编程中的“hello world”
    枚举联合不能用作基类,也不能有基类
    不能重载的操作符
    不同级别成员对应三种继承的结果:
    c++ error: creating array of references( declaration of 'a' as array)
    leetcode 剑指offer 03 数组中重复的数字
    Lintcode 89 K sum
    leetcode 322. Coin Change
    Leetcode 416. Partition Equal Subset Sum
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13309453.html
Copyright © 2020-2023  润新知