Tesorflow实现一元线性回归

import tensorflow as tf


# tf.app.flags.DEFINE_integer("train_step",100,"训练步数")
# tf.app.flags.DEFINE_string("model_dir"," ","模型目录")
#
#
# FLAGS =tf.app.flags.FLAGS

class MyLinearRegression(object):
    """
    线性回归案例类
    """

    def __init__(self):
        self.learning_rate = 0.1

    def inputs(self):
        """
        获取数据 x_data,y_true
        x_data -->[100,1]
        y_true = x * 0.7 + 0.8
        :return:
        """
        x_data = tf.random_normal([100, 1], mean=0.0, stddev=1.0, name="x_data")
        y_true = tf.matmul(x_data, [[0.7]]) + 0.8

        return x_data, y_true

    def inference(self, fetches):
        """
        根据输入数据进行建立模型

        [100,1] *[1,1] + b =
        :param fetches: 特征值
        :return:
        """
        with tf.variable_scope("inference"):
            #
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多元线性回归是指有多个自变量的线性回归模型,它可以用来预测因变量和多个自变量之间的关系。在本文中,我们将使用TensorFlow实现多元线性回归模型。 1. 数据准备 我们将使用波士顿房价数据集来演示多元线性回归。该数据集包含506个样本,每个样本有13个自变量和一个因变量,即波士顿地区房价的中位数。我们可以使用sklearn库中的load_boston函数来加载数据集。 ```python from sklearn.datasets import load_boston boston = load_boston() X = boston.data y = boston.target ``` 2. 数据预处理 在进行多元线性回归之前,我们需要对数据进行预处理。首先,我们将数据集拆分为训练集和测试集。我们将80%的数据用于训练,20%的数据用于测试。 ```python from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) ``` 接下来,我们需要对数据进行标准化处理,以便模型能够更好地拟合数据。我们可以使用sklearn库中的StandardScaler来标准化数据。 ```python from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) ``` 3. 模型构建 我们将使用TensorFlow来构建多元线性回归模型。我们首先需要定义模型的输入和输出。输入是一个包含13个特征的向量,输出是一个标量,表示房价的中位数。 ```python import tensorflow as tf inputs = tf.keras.layers.Input(shape=(X_train.shape[1],)) outputs = tf.keras.layers.Dense(1, activation=None)(inputs) model = tf.keras.models.Model(inputs=inputs, outputs=outputs) ``` 我们使用一个具有单个神经元的Dense层作为输出层。由于我们是进行回归任务,因此我们不需要使用激活函数。 4. 模型训练 在训练模型之前,我们需要定义损失函数和优化器。我们将使用均方误差作为损失函数,使用Adam优化器来更新模型参数。 ```python loss_fn = tf.keras.losses.MeanSquaredError() optimizer = tf.keras.optimizers.Adam(learning_rate=0.01) model.compile(optimizer=optimizer, loss=loss_fn) ``` 接下来,我们可以使用fit函数来训练模型。 ```python history = model.fit(X_train, y_train, epochs=100, validation_data=(X_test, y_test)) ``` 5. 模型评估 我们可以使用evaluate函数来评估模型在测试集上的性能。 ```python loss = model.evaluate(X_test, y_test) print("Mean squared error on test set:", loss) ``` 6. 模型预测 最后,我们可以使用predict函数来进行预测。 ```python y_pred = model.predict(X_test) # 可视化预测结果和真实值 import matplotlib.pyplot as plt plt.scatter(y_test, y_pred) plt.xlabel("True Values") plt.ylabel("Predictions") plt.show() ``` 以上就是使用TensorFlow实现多元线性回归的完整代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值