- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
(2017年写的博客,搬过来) 。
断断续续看了几个月的机器学习,我觉得是时候总结一下了。正如题目讲的那样,我只说我所理解的机器学习,我不能保证我理解的都对,很多东西可能是我的误解,但无论说错了什么,我都认。如果有人发现错误,恳请指正,不胜感激.
我不讲算法也不讲公式推导,因为,我从头到尾都没看懂.
我所能讲的就只有:“是什么”和“怎么用”的问题。至于“为什么”的问题,让机器学习的专家和算法科学家们去解决吧… 。
“使计算机能够在不经过明确编程的情况下进行学习的研究领域。”这是亚瑟·塞缪尔给机器学习的定义.
"what is machine learning" [1]<--这个是斯坦福机器学习课程里讲机器学习定义的部分.
要我说,我觉得机器学习也是一个归纳和演绎的过程,先用数据和算法训练出一个模型(归纳),然后用这个模型去做预测(演绎)。你的准备的数据越丰富,选用的算法越合理,训练出的模型就越强大,最后做出的预测可能就越准确.
换个角度看,学习过程,其实也是一个从现象发现本质的过程。我们相信现象和本质有着某种联系,我们试着用算法在现象和本质之间建立联系.
《机器学习》[2]这本书里讲了个挑西瓜的例子:瓜皮的深浅,敲瓜声的沉闷清脆,瓜蒂的直蜷…这些是现象,瓜的生熟是本质。作为一个瓜农,我们见过成千上万的瓜,经历了无数次训练以后,我们掌握了挑瓜的技能,实际上就是建立的模型,当一个新瓜放到我们面前的时候,我们就能判断这个瓜是生的还是熟的,而且有超高的成功率.
但是给挑西瓜用程序建立个模型还是很困难的,因为瓜皮的深浅,声音的很闷,瓜蒂的值蜷…这些都很难量化。我们来换个例子,换个可以用解方程来解决的问题:我们来预测房价(这个是斯坦福机器学习课程里将线性回归时提到的例子,我们要讲的比他简单)。影响房价的因素有很多,地段,户型,开发商,面积,房间数…但是,我们简化,我们只看面积,我告诉你一条数据,一套100平米的房子房价是100万,请问:一套200平米的房子房价是多少?你会说:200万。因为你想:总价=面积 * 单价,100=100 * 单价,单价=1万,所以200平的房子总价是200万。你看,这就是“人工机器学习”,哈哈哈.
好的,现在问题来了,我再多给一条数据:一套150平的房子总价是140万。请问:一套200平的房子总价是多少?懵逼了吧?多给一条:一套300平的房子总价是200万。请问:一套200平的房子总价是多少?你可能会综合考虑已知数据之后,给一个140万到200万之间的值.
我想,机器学习的过程大概就是这样吧.
请问:把大象关进冰箱里总共分几步?
答:分三步:
把冰箱门打开 。
把大象放进冰箱里 。
把冰箱门撂上 。
好了,怎么用机器学习,讲完了,哈哈哈 。
不开玩笑,就是这么简单,不信看这篇文章–>量化机器学习简易入门[3] 。
从实践的角度看,使用机器学习的确就这么几步:
准备数据 。
选择算法 。
训练模型 。
预测结果 。
评估结果,调整模型参数,从头来过 。
这就是机器学习吗?我也不知道,可能是吧。可能这跟你想的有点不同,坦白说,和我起初想的也不太一样… 。
为期一周的机器学习[4]<–这是个较完整的介绍,可以让你对机器学习有个大体的概念.
真正用的时候,可能会发现,大多数时间都是在准备数据,接着调用个函数就完了,让人觉得,这机器学习听起来高端,结果也不过是换个姿势搬砖… 。
似乎所有的介绍机器学习的文章,都有现成的数据,大家都不太愿意在采集数据和整理数据上花费笔墨。这也的确是不好讲的东西,无论你是爬虫爬到的数据,还是业务数据库导出的数据,默认你都会有自己的解决办法,总之祝你好运.
下面是选择算法.
机器学习的分类:
我们只看监督学习(分类与回归)与非监督学习(聚类与降维).
下面是一张scikit-learn官网上的一张图,教你怎么选择算法.
从图上可以看出,你选什么算法,有时候是由你拥有什么样的数据决定的… 。
当然,你也可以整理你的数据,让数据符合你想要选择的算法.
举个例子:
就拿上面预测房价的例子来说吧,假设我有很多数据,我可能想预测的是房子的价格,这是个量化的目标,也有可能我想要预测的是这个房子是否会升值,而这就是个分类的目标。如果我要的是价格(量化目标),可能我要选的就是个回归的算法,比如线性回归(Linear Regression),岭回归(Ridge Regression);如果我想知道房子是否会升值(分类目标),可能我要选的就是个分类的算法,与此同时,数据也要做处理,我要对已知每条数据给个升值或者贬值的标签,就是图中说的labeled data。如果你想知道哪个开发商的房子升值概率大或者哪个版块的房子有什么相同点,可能就需要选个聚合的算法,去挖掘一些意想不到的信息。如果你的数据非常复杂,比如房子外观什么颜色,用的什么牌子的钢筋水泥都有,你想抓住影响房价的主要因素,降低复杂度,可能就要去选一个降维的算法.
接下来把你的数据放到,算法模型里训练.
完成后就可以拿模型去做预测了.
来一个完整的例子,通过支持向量机识别图片中的数字:
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn import svm
# 准备数据,这个是sklearn内置的一个 图形识别数字的数据
digits = datasets.load_digits()
# 选择一个支持向量机的算法,后面是参数
clf = svm.SVC(gamma=0.001,C=100)
X,y = digits.data[:-10], digits.target[:-10]
# 训练模型
clf.fit(X, y)
# 预测
print(clf.predict(digits.data[-7]))
plt.imshow(digits.images[-7], cmap=plt.cm.gray_r, interpolation='nearest')
plt.show()
可以在优矿上直接看运行结果 。
这是我通过优矿Uqer.io分享给你的量化策略研究,链接:https://uqer.datayes.com/v3/community/share/nQ1rPigotzvmewcxFJokuIWe0vE0?private; 。
密码:4760 。
我想说的,讲完了,接下来给两篇文章:
使用Python编写机器学习入门教程[5] <–这篇里面有一个信用卡欺诈的例子,从头到尾都非常棒.
机器学习简易入门(三) - 聚类 [6]<–这篇用共和党民主党投票的例子讲聚类非常生动.
注:
[1]https://www.coursera.org/learn/machine-learning/lecture/PNeuX/what-is-machine-learning 。
[2] https://book.douban.com/subject/26708119/ 。
[3] https://uqer.datayes.com/v3/community/share/58f48343271e3b0054da05e8 。
[4]http://blog.jobbole.com/110684/ 。
[5]http://www.infoq.com/cn/articles/ml-intro-python 。
[6]http://www.cnblogs.com/kylinlin/p/5299078.html 。
------------------------------- 。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处.
原文: https://wangxuan.me/tech/2017/07/04/machine-learning-in-my-opinion.html 。
最后此篇关于我所理解的机器学习的文章就讲到这里了,如果你想了解更多关于我所理解的机器学习的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
简介 在上一篇文章《机器学习:神经网络构建(上)》中讨论了线性层、激活函数以及损失函数层的构建方式,本节中将进一步讨论网络构建方式,并完整的搭建一个简单的分类器网络。 目录 网络Netwo
简介 在本篇文章中,我们采用逻辑回归作为案例,探索神经网络的构建方式。文章详细阐述了神经网络中层结构的实现过程,并提供了线性层、激活函数以及损失函数的定义(实现方法)。 目录 背景介绍
简介 在前两篇文章中,我们详细探讨了如何利用采样数据来估计回归曲线。接下来,在本节中,我们将深入讨论如何处理分类问题。 章节安排 背景介绍 数学方法 程序实现 背景介绍 线
简介 在上一篇文章《机器学习:线性回归(上)》中讨论了二维数据下的线性回归及求解方法,本节中我们将进一步的将其推广至高维情形。 章节安排 背景介绍 最小二乘法 梯度下降法 程序
PyCaret是一个开源、低代码Python机器学习库,能够自动化机器学习工作流程。它是一个端到端的机器学习和模型管理工具,极大地加快了实验周期,提高了工作效率。PyCaret本质上是围绕几个机器学习
在我的研究进展中,我现在已经将寄生虫从图像中分离出来。寄生虫看起来像蠕虫。我希望 MATLAB 读取所有输入图像,查找类似深紫色图像的蠕虫,如果检测到,则给出检测到的答复。我尝试使用直方图比较,但我认
目前我正在尝试了解机器学习算法的工作方式,但我没有真正了解的一件事是预测标签的计算准确度与视觉混淆矩阵之间的明显差异。我会尽量解释清楚。 这是数据集的片段(这里你可以看到 9 个样本(在真实数据集中大
第一章 绪论 机器学习 : 致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。在计算机系统中, “经验” 通常以“数据“形式存在,因此,机器学习所研究的主要内容,是关于在计算
1. 算法原理(K-Nearest Neighbor) 本质是通过距离判断两个样本是否相似,如果距离够近就认为他们足够相似属于同一类别 找到离其最近的 k 个样本,并将这些样本称
前言 K-means是一种经典的无监督学习算法,用于对数据进行聚类。K-means算法将数据集视为具有n个特征的n维空间,并尝试通过最小化簇内平方误差的总和来将数据点划分为簇。本文将介绍K-m
目录 前言 介绍LightGBM LightGBM的背景和起源 L
前言 可以说掌握了机器学习,你就具备了与机器对话,充分利用机器为人类服务的能力。在人工智能时代,这将成为一项必备技能,就好比十年前你是编程大牛,二十年前你英语超好一样。因此,无论你是什么专业的
几个贯穿始终的概念 当我们把人类学习简单事物的过程抽象为几个阶段,再将这些阶段通过不同的方法具体化为代码,依靠通过计算机的基础能力-- 计算 。我们就可以让机器能够“学会”一些简单的事物。
1、选题背景 人脸识别技术是模式识别和计算机视觉领域最富挑战性的研究课题之一,也是近年来的研究热点,人脸性别识别作为人脸识别技术
每当我们在公有云或者私有云发布训练好的大数据模型,为了方便大家辨识、理解和运用,参照huggingface所制定的标准制作一个Model Card展示页,是种非常好的模型展示和组织形式。 下面就是一
2. 支持向量机 对偶优化 拉格朗日乘数法可用于解决带条件优化问题,其基本形式为: \[\begin{gather} \min_w f(w),\\ \mathrm{s.t.} \quad
我正在尝试运行以下代码: https://github.com/opencv/opencv/blob/master/samples/dnn/classification.cpp 我在这里找到所有经过预
我是机器学习新手。当我使用 scikit-learn 模块中的波士顿数据集练习具有默认参数的决策树回归模型时。 在此链接解决方案( How to Build a Decision tree Regre
我有用于训练的数据。当我将其输入神经网络时,该数据出现 3% 的错误。 我知道这些数据有一定的过度代表性 - 例如,第 5 类的示例大约是其他类的十分之一。 我的作业指出,我可以通过偏置训练数据(即删
我在 Python 的多类分类中使用 SVM 时遇到问题。事实上,问题在于性别分类(来自图像),其中训练数据集仅包含“y=1”或“ y=-1”作为类标签(二进制)。但是,在预测中,如果是男性,我必须预
我是一名优秀的程序员,十分优秀!