Python PaddlePaddle机器学习之求解线性模型

目录
  • 前言
  • 1. 任务描述
  • 2. 代码演练
    • 2.1 数组转张量

前言

飞桨(PaddlePaddle)是集深度学习核心框架、工具组件和服务平台为一体的技术先进、功能完备的开源深度学习平台

1. 任务描述

  • 乘坐出租车的时候,会有一个10元的起步价,只要上车就需要收取该起步价。
  • 出租车每行驶1公里,需要再支付2元的行驶费用(2元/公里)
  • 当一个乘客做完出租车之后,车上的计价器需要算出来该乘客需要支付的乘车费用。

如果以数学模型的角度可以很容易的解除该题的线性关系,及 Y=2x+10Y=2x+10,其中YY 为最终所需费用,xx 为行驶公里数。

试想,我们用机器学习的方法进行训练是不是也可以解决该问题呢,让机器来给我们推算出 YY 与 xx 的关系。即:知道乘客乘坐公里数和支付费用,但是并不知道每公里行驶费和起步价。

2. 代码演练

首先,我们以数学模型建立关系式,定义计价收费函数。该函数用来生成机器学习的数据集。定义好函数以后,接下来,我们传入6个数据(x),该函数可以计算出对应的Y值(也就是机器学习训练用到的真实值)。

def calculate_fee(distance_travelled):
    return 10+ 2*distance_travelled
for x in [1.0, 3.0, 5.0, 9.0, 10.0, 20.0]:
    print(calculate_fee(x))

接下来开始搭建线性回归。

2.1 数组转张量

将输入数据与输出结果数组转为张量:

import paddle
import numpy
x_data = paddle.to_tensor([[1.0], [3.0], [5.0], [9.0], [10.0], [20.0]])
y_data = paddle.to_tensor([[12.0],[16.0],[20.0],[28.0],[30.0],[50.0]])
linear = paddle.nn.Linear(in_features=1,out_features=1)

# 随机初始化w,b
w_before_opt = linear.weight.numpy().item()
b_before_opt = linear.bias.numpy().item()
# 打印初始w,b
print(w_before_opt,b_before_opt)

mse_loss = paddle.nn.MSELoss()
sgd_optimizer = paddle.optimizer.SGD(learning_rate=0.001, parameters=linear.parameters())

total_epoch = 5000

for i in range(total_epoch):
    y_predict = linear(x_data)
    loss = mse_loss(y_predict,y_data)

    # 反向传播(求梯度)
    loss.backward()
    # 优化器往前走一步:求出的梯度给优化器用调参
    sgd_optimizer.step()
    # 优化器把调完参数所用的梯度去清掉,下次再去求
    sgd_optimizer.clear_gradients()

    # 打印信息
    if i % 1000 == 0:
        print(i,loss.numpy())
print("finish training, loss = {}".format(loss.numpy()) )

w_after_opt = linear.weight.numpy().item()
b_after_opt = linear.bias.numpy().item()
print(w_after_opt,b_after_opt)

以上就是Python PaddlePaddle机器学习之求解线性模型的详细内容,更多关于Python 线性模型的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python通过TensorFLow进行线性模型训练原理与实现方法详解

    本文实例讲述了Python通过TensorFLow进行线性模型训练原理与实现方法.分享给大家供大家参考,具体如下: 1.相关概念 例如要从一个线性分布的途中抽象出其y=kx+b的分布规律 特征是输入变量,即简单线性回归中的 x 变量.简单的机器学习项目可能会使用单个特征,而比较复杂的机器学习项目可能会使用数百万个特征. 标签是我们要预测的事物,即简单线性回归中的 y 变量. 样本是指具体的数据实例.有标签样本是指具有{特征,标签}的数据,用于训练模型,总结规律.无标签样本只具有特征的数据x,通过

  • python SVM 线性分类模型的实现

    运行环境:win10 64位 py 3.6 pycharm 2018.1.1 导入对应的包和数据 import matplotlib.pyplot as plt import numpy as np from sklearn import datasets,linear_model,cross_validation,svm def load_data_regression(): diabetes = datasets.load_diabetes() return cross_validation

  • python3.7中安装paddleocr及paddlepaddle包的多种方法

    升级pip pip版本必须升级到20.0.4版本才能应用: 方法一.在pycharm中对pip进行升级: 方法二.通过命令进行升级 python3.7 -m pip install --upgrade pip 下载paddleOCR 下载链接:https://github.com/PaddlePaddle/PaddleOCR 打开paddleOCR文件夹中requirements.txt文件,更改文件中opencv-python为opencv-python == 4.2.0.32,因为支持pad

  • python实现感知机线性分类模型示例代码

    前言 感知器是分类的线性分类模型,其中输入为实例的特征向量,输出为实例的类别,取+1或-1的值作为正类或负类.感知器对应于输入空间中对输入特征进行分类的超平面,属于判别模型. 通过梯度下降使误分类的损失函数最小化,得到了感知器模型. 本节为大家介绍实现感知机实现的具体原理代码: 运 行结果如图所示: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.

  • python 线性回归分析模型检验标准--拟合优度详解

    建立完回归模型后,还需要验证咱们建立的模型是否合适,换句话说,就是咱们建立的模型是否真的能代表现有的因变量与自变量关系,这个验证标准一般就选用拟合优度. 拟合优度是指回归方程对观测值的拟合程度.度量拟合优度的统计量是判定系数R^2.R^2的取值范围是[0,1].R^2的值越接近1,说明回归方程对观测值的拟合程度越好:反之,R^2的值越接近0,说明回归方程对观测值的拟合程度越差. 拟合优度问题目前还没有找到统一的标准说大于多少就代表模型准确,一般默认大于0.8即可 拟合优度的公式:R^2 = 1

  • Python机器学习应用之基于线性判别模型的分类篇详解

    目录 一.Introduction 1 LDA的优点 2 LDA的缺点 3 LDA在模式识别领域与自然语言处理领域的区别 二.Demo 三.基于LDA 手写数字的分类 四.小结 一.Introduction 线性判别模型(LDA)在模式识别领域(比如人脸识别等图形图像识别领域)中有非常广泛的应用.LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的.这点和PCA不同.PCA是不考虑样本类别输出的无监督降维技术. LDA的思想可以用一句话概括,就是"投影后类内方差最小,类间方

  • python 机器学习之支持向量机非线性回归SVR模型

    本文介绍了python 支持向量机非线性回归SVR模型,废话不多说,具体如下: import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model,svm from sklearn.model_selection import train_test_split def load_data_regression(): ''' 加载用于回归问题的数据集 ''' diabetes =

  • Python PaddlePaddle机器学习之求解线性模型

    目录 前言 1. 任务描述 2. 代码演练 2.1 数组转张量 前言 飞桨(PaddlePaddle)是集深度学习核心框架.工具组件和服务平台为一体的技术先进.功能完备的开源深度学习平台 1. 任务描述 乘坐出租车的时候,会有一个10元的起步价,只要上车就需要收取该起步价. 出租车每行驶1公里,需要再支付2元的行驶费用(2元/公里) 当一个乘客做完出租车之后,车上的计价器需要算出来该乘客需要支付的乘车费用. 如果以数学模型的角度可以很容易的解除该题的线性关系,及 Y=2x+10Y=2x+10,其

  • Python基于Floyd算法求解最短路径距离问题实例详解

    本文实例讲述了Python基于Floyd算法求解最短路径距离问题.分享给大家供大家参考,具体如下: Floyd算法和Dijkstra算法,相信大家都不陌生,在最短路径距离的求解中应该算得上是最为基础和经典的两个算法了,今天就用一点时间来重新实现一下,因为本科的时候学习数据结构才开始接触的这个算法,当时唯一会用的就是C语言了,现在的话,C语言几乎已经离我远去了,个人感觉入手机器学习以来python更得我心,因为太通俗易懂了,带给你的体验自然也是非常不错的. 当然网上 有很多的算法讲解教程,我不会在

  • python实现梯度下降求解逻辑回归

    本文实例为大家分享了python实现梯度下降求解逻辑回归的具体代码,供大家参考,具体内容如下 对比线性回归理解逻辑回归,主要包含回归函数,似然函数,梯度下降求解及代码实现 线性回归 1.线性回归函数 似然函数的定义:给定联合样本值X下关于(未知)参数 的函数 似然函数:什么样的参数跟我们的数据组合后恰好是真实值 2.线性回归似然函数 对数似然: 3.线性回归目标函数 (误差的表达式,我们的目的就是使得真实值与预测值之前的误差最小) (导数为0取得极值,得到函数的参数) 逻辑回归 逻辑回归是在线性

  • 在python中利用numpy求解多项式以及多项式拟合的方法

    构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时多项式的值 3 >>> p.roots #多项式的根 array([3., 1.]) >>> p(p.roots) #多项式根处的值 array([0., 0.]) >>> p.order #多项式的阶数 2 >>> p.coeffs #

  • Python针对给定字符串求解所有子序列是否为回文序列的方法

    本文实例讲述了Python针对给定字符串求解所有子序列是否为回文序列的方法.分享给大家供大家参考,具体如下: 问题: 给定一个字符串,得到所有的子序列,判断是否为回文序列 思路: 对字符串遍历切片即可 下面是具体实现: #!usr/bin/env python # -*- coding:utf-8 -*- ''''' __AUthor__:沂水寒城 功能:对指定字符串寻找所有回文子序列 ''' def is_huiwen(one_str_list): ''''' 输入一个字符串列表,判断是否为回

  • 利用Python的sympy包求解一元三次方程示例

    环境说明:Python3.7.2+Jupyter Notebook 示例1(求解一元三次方程): import sympy as sp # 导入sympy包 x = sp.Symbol('x') # 定义符号变量 f = x**3 - 3*x**2 + 3*x - 9/16 # 定义要求解的一元三次方程 x = sp.solve(f) # 调用solve函数求解方程 x # solve函数的返回结果是一个列表 # x的值为[0.240852757031084,1.37957362148446-0

  • python基于机器学习预测股票交易信号

    引言 近年来,随着技术的发展,机器学习和深度学习在金融资产量化研究上的应用越来越广泛和深入.目前,大量数据科学家在Kaggle网站上发布了使用机器学习/深度学习模型对股票.期货.比特币等金融资产做预测和分析的文章.从金融投资的角度看,这些文章可能缺乏一定的理论基础支撑(或交易思维),大都是基于数据挖掘.但从量化的角度看,有很多值得我们学习参考的地方,尤其是Pyhton的深入应用.数据可视化和机器学习模型的评估与优化等.下面借鉴Kaggle上的一篇文章<Building an Asset Trad

  • Python实现机器学习算法的分类

    Python算法的分类 对葡萄酒数据集进行测试,由于数据集是多分类且数据的样本分布不平衡,所以直接对数据测试,效果不理想.所以使用SMOTE过采样对数据进行处理,对数据去重,去空,处理后数据达到均衡,然后进行测试,与之前测试相比,准确率提升较高. 例如:决策树: Smote处理前: Smote处理后: from typing import Counter from matplotlib import colors, markers import numpy as np import pandas

  • Python光学仿真数值分析求解波动方程绘制波包变化图

    波动方程数值解 波动方程是三大物理方程之一,也就是弦振动方程,其特点是时间与空间均为二阶偏导数.其自由空间解便是我们熟知的三角函数形式,也可以写成自然虚指数形式. 一般来说,既然有了精确的解析解,那也就没必要再去做不精确的数值模拟,但数值模拟的好处有两个,一是避免无穷小,从而在思维上更加直观:二是颇具启发性,对于一些解析无解的情况也有一定的处理能力. 对此,我们首先考虑一维波动方程 import numpy as np import matplotlib.pyplot as plt def se

  • Python DPED机器学习之实现照片美化

    目录 前言 环境部署 项目结构 tensorflow安装 其他依赖安装 VGG-19下载 项目运行 准备图片素材 测试效果 前言 最近发现了一个可以把照片美化的项目,自己玩了玩,挺有意思的,分享一下. Github地址:DPED项目地址 下面来看看项目怎么玩?先放一些项目给出的效果图.可以看出照片更明亮好看了. 环境部署 项目结构 下面是项目的原始结构: tensorflow安装 按照项目的说明,我们需要安装tensorflow以及一些必要的库. 如果安装gpu版本的tensorflow需要对照

随机推荐