目前,普遍认为,机器学习(Machine Learning,ML)是人工智能领域中的一个方向,主要是研究如何通过计算的手段,改进系统自身的性能,说到底是通过分析足够量的数据,不断改进已有的算法,从而使得算法更加的智能,进一步地提高了其泛化的能力。

所谓的泛化能力简单地讲就是通过算法训练得到的模型对新的数据预测的准确性有很大的提高与改进。

模型泛指从数据中学习到的结果,也可以理解为潜在的一种规律。

机器学习已经广泛应用于日常的生活中,如智能手机的语言识别,人脸识别等,目前最广为报道的自动驾驶,都应用了大量的机器学习算法。

机器学习背后的原理则是数学知识的应用,比如线性代数和概率论等。

机器学习现在普遍应用的编程语言是Python。

现在,以《Programming Machine Learning From Coding to Deep Learning》一书中的程序为例。

  • 需要解决的问题:在一家比萨店中,从预定的座位数量判断比萨的销量,二者之间的关系。
  • 解决的思路:
  • 首先,我们可以将两者之间的已有的数据绘制在二维坐标上,我们可以自己在网上寻找到一些座位数量和比萨的销量的相关数据。 
  • 接着,需要对这些数据进行拟合,所谓的拟合就是找到一条直线,看这些点是否较好地散落在这条直线的周围,那么这条直线是代表预定的座位数与比萨销量的数学模型,这里我们以测试预定座位数量为20个时,比萨的销售量是多少。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns  # 美化图像X, Y = np.loadtxt("pizza.txt", skiprows=1, unpack=True)  # skiprows是跳过第几行,unpack是指会把每一列当成一个向量输出, 而不是合并在一起# print(X[0:5], Y[0:5])# w为权重
def predict(X, w):return X * w# 采用均方误差法计算误差
def loss(X, Y, w):return np.average((predict(X, w) - Y) ** 2)# 训练
def train(X, Y, iterations, lr):w = 0for i in range(iterations):current_loss = loss(X, Y, w)print("Iterations %4d => Loss: %.6f" % (i, current_loss))if loss(X, Y, w + lr) < current_loss:w += lrelif loss(X, Y, w - lr) < current_loss:w -= lrelse:return wraise Exception("Couldn't converge within %d iterations" % iterations)w = train(X, Y, iterations=10000, lr=0.01)
print("\nw=%.3f" % w)print("Prediction: x=%d => y=%.2f" % (20, predict(20, w)))# 画图
sns.set()
plt.plot(X, Y, "bo")
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.xlabel("Reservations", fontsize=15)
plt.ylabel("Pizzas", fontsize=20)
x_edge, y_edge = 50, 50
plt.axis([0, x_edge, 0, y_edge])
plt.plot([0, x_edge], [0, predict(x_edge, w)], linewidth=1.0, color="g")
plt.show()
  • 进一步地改善这个模型,增加一个参数b,就是截距,在ML中被称为偏置。接下来,修改上述的代码。
import numpy as np
import seaborn as sns
import matplotlib.pyplot as pltX, Y = np.loadtxt("pizza.txt", skiprows=1, unpack=True)# b是y轴的截距,在机器学习中称之为偏置
def predict(X, w, b):return X * w + bdef loss(X, Y, w, b):return np.average((predict(X, w, b) - Y) ** 2)def train(X, Y, iterations, lr):w = b = 0for i in range(iterations):current_loss = loss(X, Y, w, b)print("Iterations %4d => Loss: %.6f" % (i, current_loss))if loss(X, Y, w + lr, b) < current_loss:w += lrelif loss(X, Y, w - lr, b) < current_loss:w -= lrelif loss(X, Y, w, b + lr) < current_loss:b += lrelif loss(X, Y, w, b - lr) < current_loss:b -= lrelse:return w, braise Exception("Couldn't converge within %d iterations" % iterations)w, b = train(X, Y, iterations=10000, lr=0.01)
print("\nw=%.3f, b=%.3f" % (w, b))print("Prediction: x=%d => y=%.2f" % (20, predict(20, w, b)))sns.set()
plt.plot(X, Y, "bo")
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.xlabel("Reservations", fontsize=15)
plt.ylabel("Pizzas", fontsize=20)
x_edge, y_edge = 50, 50
plt.axis([0, x_edge, 0, y_edge])
plt.plot([0, x_edge], [b, predict(x_edge, w, b)], linewidth=1.0, color="g")
plt.show()

预测后的图像  

可以对上述的算法做进一步地改进,使得预测的结果更加接近于实际值!

什么是机器学习,机器学习的用途?相关推荐

  1. 统计机器学习(机器学习) 概念

    统计机器学习(机器学习) 概念 该文章是作者阅读相关书籍和资料后,总结和归纳的一些个人认为有必要整理和了解的知识点介绍.与大家一起分享,如有不妥之处,还望指正. 统计(机器)学习 1.统计学习概念 统 ...

  2. 我爱机器学习 机器学习干货站- 资源

    我爱机器学习 机器学习干货站 跳至正文 机器学习 Deep Learning 所有主题 关注我们 DeepMind团队的<Deep Reinforcement Learning in Large ...

  3. 我爱机器学习--机器学习方向资料汇总

    转载:http://blog.csdn.net/shuimanting520/article/details/45748505 机器学习爱好者资料 机器学习领域的几种主要学习方式 From Stump ...

  4. 多项式拟合缺点_机器学习——机器学习算法优缺点综述

    来源:数据派THU.七月在线 转自:Datawhale(Datawhale 目录 正则化算法(Regularization Algorithms) 集成算法(Ensemble Algorithms) ...

  5. 第十七章 大规模机器学习-机器学习老师板书-斯坦福吴恩达教授

    第十七章 大规模机器学习 17.1 大数据集学习 17.2 随机梯度下降 17.3 mini-batch 梯度下降 17.4 随机梯度下降收敛 17.5 在线学习 17.6 减少映射与数据并行 17. ...

  6. python人工智能——机器学习——机器学习基础

    1.机器学习开发流程 2.机器学习算法分类 3.机器学习模型是什么? 机器学习开发流程 机器学习算法分类 监督学习(特征值+目标值) 监督学习(英语:Supervised learning),可以由输 ...

  7. 机器学习-机器学习简介

    机器学习简介 即使是机器学习领域的专业人士,也很难给机器学习这一概念下一个准确的定义,比较常见的说法有两种.Arthur Samuel描述其为"使计算机无需明确编程就能自主学习的研究领域&q ...

  8. 机器学习-机器学习概论(入门机器学习基础知识)

    机器学习 简介 机器学习一词来源于Machine Learning的翻译,主要研究计算机模拟或者实现人类的行为,顾名思义,像学生一样,通过学习获取新的知识或者技能,完善自身的知识结构,并不断提升自己的 ...

  9. 机器学习--机器学习的分类

    监督学习(Supervised Learning) 在监督学习中,给定一组数据,我们知道正确的输出结果应该是什么样子,并且知道在输入和输出之间有着一个特定的关系.通过已有的训练样本(即已知数据以及其对 ...

  10. 林轩田机器学习 | 机器学习技法课程笔记10 --- Random Forest

    上节课我们主要介绍了Decision Tree模型.Decision Tree算法的核心是通过递归的方式,将数据集不断进行切割,得到子分支,最终形成树的结构.C&RT算法是决策树比较简单和常用 ...

最新文章

  1. 【c语言】蓝桥杯算法提高 c++_ch02_02
  2. 清空python的变量
  3. 专访梅耶·马斯克:硅谷钢铁侠是怎样被炼成的?
  4. rtorrent - 强大的命令行BT客户端
  5. linux用户密码策略求图,Linux用户密码策略
  6. 手机pdf文件转语音_职场小白不懂PDF文件转Word文档?试试微软的这款APP吧
  7. $(this)与this.id速度比较
  8. 矩池云上编译安装dlib库
  9. C# int转string 每三位加一个逗号
  10. java中POJO类为什么要实现序列化
  11. 明星也爱字体——赵丽颖秀气字体:(江湖少女两版)蓄势待发
  12. 计算机四级网络工程师知识点(非常全面)
  13. 喷血之举--割肉之痛
  14. 骨传导耳机听歌音质怎么样、公认音质好的骨传导耳机排名
  15. WIN10 设置自动定时开机
  16. GDP越高就越幸福吗?用Python分析《世界幸福指数报告》后我们发现…
  17. 技能梳理6@NODEMCU+BH1750+DS18B20+DHT11+PWM电机+ONENET
  18. eclipse创建servlet,filter产生classnotfound错误
  19. 电工学习笔记——示波器交直流耦合的区别
  20. 去 OPPO 面试,被问麻了

热门文章

  1. oracle数据备份无法导出空表解决办法
  2. 关于智能手机应用软件开发的那些事儿!
  3. OceanBase 架构初探
  4. 现场问题:定时任务不执行
  5. Visual Studio Code Docs 翻译目录(已完成到Get Started)
  6. 怎样看待活文档“ATDD”---记敏捷中国2012 open space
  7. 如何使用 Redis 缓存?
  8. Word使用基本技巧汇总
  9. 使用beyond compare4作为Git的比较工具
  10. TensorFlow与Flask结合打造手写体数字识别