记录TensorFlow听课笔记

文章目录

  • 记录TensorFlow听课笔记
  • 一,机器学习基础
    • 1.1一元线性回归
    • 1.2解析法实现一元线性回归
    • 1.3解析法实现多元线性回归
  • 二,代码实现一元/多元回归
    • 2.1解析法实现一元线性回归代码实现
    • 2.2解析法实现多元线性回归代码实现(输入平米和房间数返回预测房价)

一,机器学习基础


1.1一元线性回归

模型:y =wx+b
模型变量:x 模型参数
w:权重(weights)
b:偏置值(bias)


1.2解析法实现一元线性回归

1.3解析法实现多元线性回归






二,代码实现一元/多元回归

2.1解析法实现一元线性回归代码实现

导入库,设置字体,加载样本数据(numpy方法实现)

import numpy as np
x=np.array([137.97,104.50,100.00,124.32,79.20,99.00,124.00,114.00,106.69,138.05,53.75,46.91,68.00,63.02,81.26,86.21])
y=np.array([145.00,110.00,93.00,116.00,65.32,104.00,118.00,91.00,62.00,133.00,51.00,45.00,78.50,69.65,75.69,95.30])
meanX=np.mean(x)
meanY=np.mean(y)
sumXY=np.sum((x-meanX)*(y-meanY))
sumX=np.sum((x-meanX)*(x-meanX))
w=sumXY/sumX
b=meanY-w*meanX
print("w=",w)
print("b=",b)
x_test=np.array([128.15,45.00,141.43,106.27,99.00,53.84,85.36,70.00])
y_pred = w*x_test+b
print("面积\t估计房价")
for i in range(y_pred.size):print(x_test[i],"\t",np.round(y_pred[i],2))

导入库,设置字体,加载样本数据(tf方法实现)

import tensorflow as tf
x=tf.constant([137.97,104.50,100.00,124.32,79.20,99.00,124.00,114.00,106.69,138.05,53.75,46.91,68.00,63.02,81.26,86.21])
y=tf.constant([145.00,110.00,93.00,116.00,65.32,104.00,118.00,91.00,62.00,133.00,51.00,45.00,78.50,69.65,75.69,95.30])
meanX=tf.reduce_mean(x)
meanY=tf.reduce_mean(y)
sumXY=tf.reduce_sum((x-meanX)*(y-meanY))
sumX=tf.reduce_sum((x-meanX)*(x-meanX))
w=sumXY/sumX
b=meanY-w*meanX
print("w=",w)
print("b=",b)
x_test=tf.constant([128.15,45.00,141.43,106.27,99.00,53.84,85.36,70.00])
y_pred = w*x_test+b
print(y_pred)

解析法实现一元线性回归

#解析法实现一元线性回归
#导入库
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
#设置字体
plt.rcParams['font.sans-serif'] =['SimHei']
#加载样本数据
x=tf.constant([137.97,104.50,100.00,124.32,79.20,99.00,124.00,114.00,106.69,138.05,53.75,46.91,68.00,63.02,81.26,86.21])
y=tf.constant([145.00,110.00,93.00,116.00,65.32,104.00,118.00,91.00,62.00,133.00,51.00,45.00,78.50,69.65,75.69,95.30])
#学习模型-计算w,b
meanX=tf.reduce_mean(x)
meanY=tf.reduce_mean(y)
sumXY=tf.reduce_sum((x-meanX)*(y-meanY))
sumX=tf.reduce_sum((x-meanX)*(x-meanX))
w=sumXY/sumX
b=meanY-w*meanX
print("权值w=",w.numpy())
print("偏置b=",b.numpy())
print("线性模型:y=",w.numpy(),"*x+",b.numpy())
#预测房价
x_test=np.array([128.15,45.00,141.43,106.27,99.00,53.84,85.36,70.00])
y_pred = (w*x_test+b).numpy()#将张量类型转化为numpy数组类型
print("面积\t估计房价")
n=len(x_test)
for i in range(n):print(x_test[i],"\t",round(y_pred[i],2))
#模型和数据可视化
plt.figure()
#绘制散点图
#张量和数组都可以作为散点函数的输入提供点坐标
plt.scatter(x,y,color="red",label="销售记录")
plt.scatter(x_test,y_pred,color="blue",label="预测房价")
plt.plot(x_test,y_pred,color="green",label="拟合直线",linewidth=2)
#设置坐标轴的标签文字和字号
plt.xlabel("面积(平方米)",fontsize=14)
plt.xlabel("价格(万元)",fontsize=14)
#设置坐标轴的范围
plt.xlim((40,150))
plt.ylim((40,150))
#设置标题文字和字号
plt.suptitle("商品房销售价格评估系统v1.0",fontsize=20)
#在左上方显示图例
plt.legend(loc="upper left")
#显示整个绘图
plt.show()

2.2解析法实现多元线性回归代码实现(输入平米和房间数返回预测房价)

#解析法实现多元线性回归
#导入库
import numpy as np
#=======================【1】加载样本数据===============================================
x1=np.array([137.97,104.50,100.00,124.32,79.20,99.00,124.00,114.00,106.69,138.05,53.75,46.91,68.00,63.02,81.26,86.21])
x2=np.array([3,2,2,3,1,2,3,2,2,3,1,1,1,1,2,2])
y=np.array([145.00,110.00,93.00,116.00,65.32,104.00,118.00,91.00,62.00,133.00,51.00,45.00,78.50,69.65,75.69,95.30])
#=======================【2】数据处理===============================================
x0=np.ones(len(x1))
#堆叠属性数组,构造属性矩阵
#从(16,)到(16,3),因为新出现的轴是第二个轴所以axis为1
X=np.stack((x0,x1,x2),axis=1)
print(X)
#得到形状为一列的数组
Y=np.array(y).reshape(-1,1)
print(Y)
#=======================【3】求解模型参数===============================================
Xt=np.transpose(X)                      #计算X'
XtX_1=np.linalg.inv(np.matmul(Xt,X))    #计算(X'X)-1
XtX_1_Xt=np.matmul(XtX_1,Xt)            #计算(X'X)-1X'
W=np.matmul(XtX_1_Xt,Y)                 #W=((X'X)-1)X'Y
print(W)
W=W.reshape(-1)
print(W)
print("多元线性回归方程")
print("Y=",W[1],"*x1+",W[2],"*x2+",W[0])
#=======================【4】预测房价===============================================
print("请输入房屋面积和房间数,预测房屋销售价格")
x1_test=float(input("商品房面积:"))
x2_test=int(input("房间数:"))
y_pred=W[1]*x1_test+W[2]*x2_test+W[0]
print("预测价格:",round(y_pred,2),"万元")

TensorFlow基础3-机器学习基础知识(解析法实现一元线性回归、多元线性回归)相关推荐

  1. 【吴恩达机器学习】第二周课程精简笔记——多元线性回归和计算参数分析

    1. Multivariate Linear Regerssion(多元线性回归) (1)Multiple Feature We now introduce notation for equation ...

  2. 【TensorFlow】Keras机器学习基础知识-使用TF.Hub进行文本分类

    此笔记本(notebook)使用评论文本将影评分为积极(positive)或消极(nagetive)两类.这是一个二元(binary)或者二分类问题,一种重要且应用广泛的机器学习问题. 本教程演示了使 ...

  3. 机器学习--基础算法--机器学习基础

    1 机器学习世界的数据 1.数据 数据整体叫数据集(data set) 每一行数据称为一个样本(sample) 除最后一列,每一列表达样本的一个特征(eature) 最后一列,称为标记(label) ...

  4. Python机器学习:线型回归法008实现多元线性回归

    使用封装的:LinearRegression import numpy as np from Simple_linear_Regression.metrics import r2_score clas ...

  5. 机器学习入门 ————》 一元及多元线性回归

    1.线性回归(line Regression) 回归,指研究一组随机变量(Y1 ,Y2 ,-,Yi)和另一组(X1,X2,-,Xk)变量之间关系的统计分析方法,又称多重回归分析.通常Y1,Y2,-,Y ...

  6. 水很深的深度学习-Task02机器学习基础

    机器学习基础 目录 机器学习基础 一.什么是机器学习? 如何寻找这个函数? 机器学习三板斧 学习路线 二.机器学习算法的类型 1. 有监督学习 2. 无监督学习 3. 强化学习 4.机器学习算法的系统 ...

  7. 赠书五本《零基础学机器学习》

    1. 走下神坛的机器学习 我们马上就要进入20世纪的第3个十年啦,而人工智能和机器学习,也已经火了差不多有六七年的时间了. 从Hinton团队在2012年的ImageNet大赛中用神经网络模型一举夺魁 ...

  8. 送书|“零基础学机器学习”作者创作手记

    1. 走下神坛的机器学习 我们马上就要进入20世纪的第3个十年啦,而人工智能和机器学习,也已经火了差不多有六七年的时间了. 从Hinton团队在2012年的ImageNet大赛中用神经网络模型一举夺魁 ...

  9. 机器学习:回归分析—— 一元线性回归、多元线性回归的简单实现

    回归分析 回归分析概述 基本概念 可以解决的问题 基本步骤和分类 线性回归 一元线性回归 多元线性回归 回归分析概述 基本概念 回归分析是处理多变量间相关关系的一种数学方法.相关关系不同于函数关系,后 ...

  10. TensorFlow多元线性回归实现

    TensorFlow实现多元线性回归 多元线性回归的具体实现 导入需要的所有软件包: 因为各特征的数据范围不同,需要归一化特征数据.为此定义一个归一化函数.另外,这里添加一个额外的固定输入值将权重和偏 ...

最新文章

  1. 腐蚀rust电脑分辨率调多少_腐蚀Rust怎么设置画面 腐蚀Rust提高帧数画面设置方法...
  2. Nature今发表脑机接口领域重大突破:
  3. 阿里巴巴宣布开源限流降级中间件——Sentinel
  4. 【跟网上的大多数不一样】rstudio plot不显示图片了
  5. Scala入门到精通—— 第二节Scala基本类型及操作、程序控制结构
  6. 【软件测试】负载测试与压力测试的区别
  7. kernel 3.2.0 上加入自己的板级文件
  8. linux 中文件的操作
  9. html 设置字体加粗,css如何设置字体加粗样式?
  10. 将Wi-Fi生成二维码
  11. Tupper自我指涉公式:图象里竟然包含式子本身
  12. 获取某一年指定自然周的开始时间和结束时间
  13. java迭代器遍历json,批量替换内容
  14. 大数据算法MOOC笔记1:大数据定义、特点、应用
  15. kaggle数据分析实践项目练习——人力资源分析
  16. cf各区服务器所在位置,为什么说“黑区”是CF第一服务器
  17. 如何成为巨量引擎Marketing API开发者
  18. 2020最新C#顺丰丰桥平台下单接口
  19. 各省简称[转载----作为常识存储]
  20. React 所见即所得编辑器 Vditor

热门文章

  1. 大规模户外环境的具有地标的语义SLAM
  2. mysql 获取当前整点_Oracle 生成未来三天的整点时间(步骤详解)
  3. string日期格式化_java面向对象---日期类
  4. Python 中 zip() 函数的用法
  5. Nature Methods | TooManyCells:单细胞聚类和可视化方法
  6. 数据分析工具Pandas(6):Pandas统计计算和描述
  7. 第十四课.Transformer
  8. 第四课.LinuxShell编程
  9. Latex 添加多张图片技巧说明
  10. Windows/Linux 下功能强大的桌面截图软件