机器学习用途比较多,主要可以划分为3类。

第一类是分类:可以用来进行类型预测,比如是否是广告邮件,垃圾短信,花的种类,动物种类等。

第二类是回归:可以用来进行数值预测。比如预测房价,股票等。

第三类是聚类:用于划分群体。比如哪些是对这个商品的高意向群体,哪些是低意向的等。

机器学习之所以可以做到上面的这些事情,因为有很多的数据给他学习,通过这些数据,它就可以总结出经验来,也就是所谓的模型,直白点说就是一个数学公式。有了数学公式之后,再来预测分类是不是就很简单了。

比如 告诉你一个 数学公式:y=2x-1,然后为你x=100的结果值是多少,带进去就可以算出来了,2*100-1=199。

今天就通过自己推到一个数学公式来理解一下机器学习是怎样工作的,具体的机器学习算法,是通过scikit-learn这个库提供的,我只是拿来使用。

下面就用 y = 2x-1这个公式作为案例。

获取数据

首先需要有数据给我们训练,这里没有实际数据,只能自己造数据。

用matplotlib显示图形,通过图表可以看出,我们造出来的数据是线性的,其实就是y = 2x-1这个公式来的。

前面的过程是主要为了获得数据,现在我们是不知道x和y的关系的。下面有一个表格,里面的根据x,y的数据值,找到它们对应的关系,从而推导出当x=100时,y等于多少?

因为我们知道它们的关系是直线关系,通过解方程的方法是很简单的,假设y=ax+b,列两个方程就可以求出结果来了。

如果不符合直线方程,那我们可能就无法假设一个公式了,因为公式可能为y=ax2+bx+c或者其它的幂函数,指数函数,三角函数呢?这个问题这里就先不展开了,之后通过拟合来详细探讨这个问题。( 拟合解释:形象的说,拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。因为这条曲线有无数种可能,从而有各种拟合方法。)

下面继续刚才我们的问题,前面构造的数据刚好是符合直线方程的,除了直接通过方程来解决,还可以使用我们的机器学习中的线性回归算法搞定。

训练模型

先准备好数据,这里刚好是x,y,x需要先转换一下维度,之后放到线性模型里面,提供模型数据训练就可以得出模型的系数了。

上面的数据刚好是线性的,下面我们把数据手动改动一下,让我们的y数据不按严格的线性规律,改完效果如下。

现在如果还是用解方程的思路,可能就会出现带入不同的数据,会得到不同的系数,那到底那个更符合呢?

让我们通过训练模型得出答案。

模型训练出来了,下面通过这个模型去看看实际预测出的结果值和原来的对比一下。

再查看一下均方根误差,总体误差在1.158左右,还算是不错的。

通过这样的方法,我们就可以查找出一堆数据的一个关系了。有了这个模型,我们也可以去预测当个数值或者未来数据的一个走势了。

上面的机器学习过程还不是很严谨,并没有将数据集划分为训练集和测试集,正常的需要先划分数据集,一般按照7:3比例分成训练集和测试集,之所以要这样是因为训练出模型后,需要去验证模型的好坏,通过测试的结果与实际结果作比较,可以根据需要决定是否再去调整模型。

(全文完)

长按二维码,加关注!叶子陪你玩

欢迎转载,转载请注明出处!

欢迎关注公众微信号:叶子陪你玩编程 分享自己的python学习之路

python数学编程中文版_利用python来推数学公式简单版相关推荐

  1. python好看图案的编程代码_利用Python绘制了一些有意思的图案

    下载W3Cschool手机App,0基础随时随地学编程导语 花了点时间利用Python绘制了一些有意思的图案,也算是发掘了一下Python的可视化功能吧... PS: 部分图案参考了一些博客的一部分源 ...

  2. 利用python处理dna序列_利用Python编程提取基因组基因序列

    生物技术. DOI: 10.16660/j.cnki.1674-098X.2019.11.141 利用Python编程提取基因组基因序列 ① 庞雪原 张婷婷 (东北农业大学生命科学学院 黑龙江哈尔滨 ...

  3. python数学编程 中文版下载_Python数学编程

    第 1章 处理数字1 n 1.1 基本数学运算 1 n 1.2 标签:给数字命名 3 n 1.3 不同类型的数字 4 n 1.3.1 分数的操作 4 n 1.3.2 复数 5 n 1.4 获取用户输入 ...

  4. python实现邮件客户端_利用python实现简单的邮件发送客户端示例

    脚本过于简单,供学习和参考.主要了解一下smtplib库的使用和超时机制的实现.使用signal.alarm实现超时机制. #!/usr/bin/env python # -*- coding: ut ...

  5. python逐步回归筛选变量_利用python实现逐步回归

    逐步回归的基本思想是将变量逐个引入模型,每引入一个解释变量后都要进行F检验,并对已经选入的解释变量逐个进行t检验,当原来引入的解释变量由于后面解释变量的引入变得不再显著时,则将其删除.以确保每次引入新 ...

  6. python post请求 上传图片_利用python模拟实现POST请求提交图片的方法

    本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍: 使用requests来模拟HTTP请求本来是一件非常轻松的事情,比如上传 ...

  7. 学python数学要好吗_学习Python数学英语基础重要吗?

    提到Python编程语言,大家就会想编程语言肯定会涉及到的就是代码,很多人看到那满屏的英文字母就头疼,觉得自己不会英语,肯定学不好Python,但是不会英语到底能不能够学习Python呢,下面小编给大 ...

  8. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  9. 用python进行股票数据分析_利用python进行股票数据分析

    个人觉得这问题问的不太对,说句不好的话,你是来搞编程的还是做股票的. 当然,如果题主只是用来搜集资料,看数据的话那还是可以操作一波的,至于python要怎么入门,个人下面会推荐一些入门级的书籍,通过这 ...

最新文章

  1. 二手服务器cpu性能,二手服务器cpu当主机
  2. java多线程机制2(安全问题)
  3. React篇-报错信息:warning: Can't call setState (or forceUpdate) on an unmounted component.
  4. 如何用python绘图、柱形图、线形图等_python使用Plotly绘图工具绘制散点图、线形图...
  5. 图解TCP三次握手和四次挥手!(简单易懂)
  6. Qt中利用定时器QTimer实时显示当前日期和时间
  7. NLP --- 隐马尔可夫HMM(极大释似然估计详解)
  8. toString方法;ToStringBuilder
  9. Win10 微软拼音添加小鹤双拼
  10. 【博主推荐】C#生成好看的二维码(附源码)
  11. knx智能照明控制系统电路图_智能照明KNX灯控软件
  12. DC-DC15-150V降压5V0.8A 替代PN6005、PN6006电源驱IC
  13. 基于手机音频通信应用
  14. Linux详细到爆炸的一篇文章
  15. 虚幻4地形怎么增加层_怎么快速实现住房自由?学学这位95后小哥哥,花70万自建4层别墅...
  16. JAVA record
  17. 基于R语言SVD的图像压缩方法
  18. 基于stm32的测微仪采集系统开发
  19. P1023 税收与补贴问题
  20. 如何完全卸载ArcGIS详细教程

热门文章

  1. VC程序中实现控件的动态生成与响应
  2. Tornado入门之旅
  3. 构建最小JDK Docker镜像 或者直接使用镜像:frolvlad/alpine-oraclejre8:slim
  4. 通讯框架 t-io 学习——给初学者的Demo:ShowCase设计分析
  5. Python HTMLTestRunner生成网页自动化测试报告时中文编码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6...
  6. android Base64 加密
  7. 东软软件动态生成对数据表更新操作的方法
  8. PHP框架 CI与TP之MVC比较
  9. has been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘ header is present---nginx工作笔记006
  10. 使用vue的生命周期函数_异步_同步获取字典数据---基于Vue的uniapp手机端_前端UI_uview工作笔记003