# TF之LiR：基于tensorflow实现机器学习之线性回归算法

## 代码设计

# -*- coding: utf-8 -*-

#TF之LiR：基于tensorflow实现机器学习之线性回归算法

import tensorflow as tf

import numpy

import matplotlib.pyplot as plt

rng =numpy.random

#参数设定

learning_rate=0.01

training_epochs=10000

display_step=50        #每隔50次迭代输出一次

#训练数据

train_X=numpy.asarray([……])

train_Y=numpy.asarray([……])

n_samples=train_X.shape[0]

print("train_X：",train_X)

print("train_Y：",train_Y)

#设置placeholder

X=tf.placeholder("float")

Y=tf.placeholder("float")

#设置模型的权重和偏置,因为是不断更新的所以采用Variable定义

W=tf.Variable(rng.randn(),name="weight")

b=tf.Variable(rng.randn(),name="bias")

#设置线性回归方程LiR：w*x+b

cost=tf.reduce_sum(tf.pow(pred-Y,2))/(2*n_samples)  #设置cost为均方差即reduce_sum函数

init=tf.global_variables_initializer() #在session运算时初始化所有变量

#开始训练

with tf.Session() as sess:

sess.run(init)                        #运行一下初始化的变量

for epoch in range(training_epochs):  #输入所有训练数据

for(x,y) in zip(train_X,train_Y):

sess.run(optimizer,feed_dict={X:x,Y:y})

#打印出每次迭代的log日志，每隔50个打印一次

if (epoch+1) % display_step ==0:

c=sess.run(cost,feed_dict={X:train_X,Y:train_Y})

print("迭代次数Epoch:","%04d" % (epoch+1),"下降值cost=","{:.9f}".format(c),

"W=",sess.run(W),"b=",sess.run(b))

print("Optimizer Finished!")

training_cost=sess.run(cost,feed_dict={X:train_X,Y:train_Y})

print("Training cost=",training_cost,"W=",sess.run(W),"b=",sess.run(b))

#绘图

plt.rcParams['font.sans-serif']=['SimHei']

plt.subplot(121)

plt.plot(train_X, train_Y, 'ro', label='Original data')

plt.plot(train_X, sess.run(W) * train_X + sess.run(b), label='Fitted line')

plt.legend()

plt.title("TF之LiR：Original data")

#测试样本

test_X = numpy.asarray([6.83, 4.668, 8.9, 7.91, 5.7, 8.7, 3.1, 2.1])

test_Y = numpy.asarray([1.84, 2.273, 3.2, 2.831,2.92, 3.24, 1.35, 1.03])

print("Testing... (Mean square loss Comparison)")

testing_cost = sess.run(tf.reduce_sum(tf.pow(pred - Y, 2)) / (2 * test_X.shape[0]),

feed_dict={X:test_X,Y:test_Y}) # same function as cost above

print("Testing cost=", testing_cost)

print("Absolute mean square loss difference:", abs( training_cost - testing_cost))

#绘图

plt.subplot(122)

plt.plot(test_X, test_Y, 'bo', label='Testing data')

plt.plot(train_X, sess.run(W) * train_X + sess.run(b), label='Fitted line')

plt.legend()

plt.title("TF之LiR：Testing data")

plt.show()

|
18小时前
|

【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50

20 7
|
1天前
|

**摘要：** 统计学回归重在解释，使用线性模型分析小数据集，强调假设检验与解释性。机器学习回归目标预测，处理大数据集，模型复杂多样，关注泛化能力和预测误差。两者在假设、模型、数据量和评估标准上有显著差异，分别适用于解释性研究和预测任务。
17 8
|
1天前
|

AI - 机器学习GBDT算法

11 4
|
2天前
|

7 0
|
2天前
|

**ID3决策树算法**是1975年由J. Ross Quinlan提出的，它基于信息增益来选择最佳划分特征。信息增益是衡量数据集纯度变化的指标，熵则是评估数据不确定性的度量。算法通过比较每个特征的信息增益来选择分裂属性，目标是构建一个能最大化信息增益的决策树。然而，ID3容易偏向于选择具有更多特征值的属性，C4.5算法为解决这一问题引入了信息增益率，降低了这种偏好。CART决策树则不仅用于分类，也用于回归，并使用基尼指数或信息熵来选择分割点。剪枝是防止过拟合的重要手段，包括预剪枝和后剪枝策略。
13 0
|
2天前
|

**决策树模型**是一种直观的分类模型，常用于金融风控和医疗诊断等领域。它通过树形结构对数据进行划分，易于理解和解释，能揭示特征重要性且计算复杂度低。然而，模型可能过拟合，需剪枝处理；不擅长处理连续特征；预测能力有限，且对数据变化敏感。在集成学习如XGBoost中，决策树作为基模型广泛应用。示例代码展示了使用Python的sklearn库构建和可视化决策树的过程。
13 0
|
3天前
|

15 2
|
2天前
|

2 0
|
3天前
|

17 5
|
4天前
|

【机器学习】RLHF：在线方法与离线算法在大模型语言模型校准中的博弈
【机器学习】RLHF：在线方法与离线算法在大模型语言模型校准中的博弈
20 6