Machine Learning
文章平均质量分 75
ChenVast
有梦想,敢拼博,执着的走属于自己的路。无惧一切,勇往直前,做自己。成为一个伟大的人,改变世界。
Python软件基金会(PSF)成员,
国际数据管理协会(DAMA)会员
展开
-
【机器学习】机器学习之贝叶斯分类器简述
数学理论根基:贝叶斯决策论(Bayesian Decision Theory) 贝叶斯学派与频率学派: 贝叶斯学派:强调概率的主观性,不强调事件的客观随机性,认为只是观察者不知道事件的结果,知情者对事件不具有随机性。 随机性的根源不在于事件,而在于观察者对该事件的知识状态。 将样本视为固定的,把模型的参数视为关键。...原创 2017-12-14 15:03:38 · 975 阅读 · 0 评论 -
【机器学习】机器学习之支持向量机
感知机模型: 只能处理非常特殊的问题(线性可分的数据集的分类问题)没有考虑泛化能力 线性可分概念: 数据集能被一条线完美分割 损失函数的几何解释: 损失函数 = 所有被误分类的样本点到当前分离平面的相对距离的总和 感知机算法: 梯度下降法 学习速率/步长:损失函数求导后沿着梯度下降的方向,每次迭代迈进的...原创 2017-12-15 17:43:05 · 885 阅读 · 0 评论 -
【深度学习】神经网络简述
神经网络 = 人工神经网络(Artificial Neural Network) M-P模型(McCulloch-Pitts神经元模型)的三个功能:1、 能接受n个M-P模型传递过来的信号2、 能够在信号的传递过程中为信号分配权重3、 能过将得到的信号进行汇总、变换并输出神经元模型如图所示 把N个M-P神经元按照一定的层次结构连接即可形成神经网络,形成神经元组成...原创 2017-12-15 17:56:06 · 2005 阅读 · 0 评论 -
【深度学习】卷积神经网络(CNN)概述
积卷神经网络(Convolutional Neural Network,CNN):神经网络中的一种拓展朴素的CNN和朴素的NN没有任何区别。 CNN主要思想: 局部连接 权值共享 CNN应用在特征提取领域 前向传播: 实现的层面上和NN是一样的,不同之处在于: 接收的输入形式不同 层与层之间的连...原创 2017-12-16 17:06:11 · 2011 阅读 · 0 评论 -
【机器学习】机器学习中的统计学知识
泛化能力、过拟合、经验风险(ERM)、结构风险(SRM)、假设空间:模型在数学上的“适用场合” 使风险上界最小函数子集中挑选出使经验风险最小的函数,这个函数的子集就是假设空间 经验风险:训练集数据集是的风险结构风险:只注重训练集的学习方法 经验风险在某种足够合理的数学意义上一致收敛于期望风险 奥卡姆剃刀原理:如无必要,勿增实体。切勿浪费较多的东西去做...原创 2017-12-14 15:02:09 · 1838 阅读 · 1 评论 -
【简析】极大似然估计与最小二乘
极大似然估计:在已知样本和给定概率分布模型的基础上,估计概率分布模型的参数,并使得在该参数下,生成这个已知样本的可能性最大的方法。最大似然估计就是去找参数估计值,使得已经观察到的样本值发生概率最大。找到那个参数估计值,使得前面已经实现的样本值发生概率最大。求样本所有观测的联合概率最大化,是个连乘积,只要取对数,就变成了线性加总。此时通过对参数求导数,并令一阶导数为零,就可以通过解方原创 2018-01-03 11:42:04 · 2917 阅读 · 0 评论 -
【机器学习】机器学习之决策树算法简述
信息论: 信息论的主要内容类比人类的语言 常用词汇比不常用词汇短 知道一句话的重点单词,即可知道这句话的大致含义。 鲁棒性: 信息论的基本研究课题,信源编码(发出信息)、信道编码(传输信息) 信息论不会考虑信息的重要性或者内在意义。 决策树背后的思想: ...原创 2017-12-14 15:04:56 · 1210 阅读 · 0 评论 -
【机器学习】机器学习之集成学习
集成学习思想: 对于比较复杂的任务,综合许多人的意见来进行决策会比“一家独大”更好。 适当的方式集成许多“个体模型”所得到的最终模型要比单独的个体模型性能更优。 如何选择生成弱分类器和如何对它们进行集成(提升),三种思路: 将不同类型的弱分类器进行提升 将相同类型但参数不同的弱分类器进行提升 ...原创 2017-12-14 15:09:12 · 962 阅读 · 0 评论 -
【机器学习】随机森林
Python中的随机森林随机森林是一种用途广泛的机器学习方法,具有广泛的应用范围,从营销到医疗和保险。它可以用来模拟营销对客户获取,保留和流失的影响,或者预测患者的疾病风险和易感性。随机森林能够回归和分类。它可以处理大量的功能,并且有助于估计哪些变量对正在建模的基础数据非常重要。这是一篇关于使用Python的随机森林的文章。什么是随机翻译 2018-01-15 17:03:54 · 1627 阅读 · 0 评论 -
【机器学习】算法实现感知机与神经元分类器(概念+图+实战)
本文代码推荐使用Jupyter notebook跑,这样得到的结果更为直观。感知机MCP神经元和罗森布拉特筏值感知机的理念: 通过模拟的方式还原大脑中单个神经元的工作方式(是否被激活) 罗森布拉特筏值感知机最初的规则: 将权重初始化为0或者一个极小的数 迭代所有训练样本x 计算输出值y原创 2018-01-31 14:40:12 · 2619 阅读 · 0 评论 -
【机器学习】模型训练前夜—数据集预处理(概念+图+实战)
本文代码推荐使用Jupyter notebook跑,这样得到的结果更为直观。缺失数据处理:# 显示数据的缺失值import pandas as pdfrom io import StringIOcsv_data = '''A,B,C,D1.0,2.0,3.0,4.05.0,6.0,,8.010.0,11.0,12.0,''':# csv_data = u原创 2018-01-31 15:09:12 · 6056 阅读 · 0 评论 -
【机器学习】数据降维—主成分分析(PCA)
本文代码推荐使用Jupyter notebook跑,这样得到的结果更为直观。主成分分析(PCA)特征抽取通常用于提高计算效率,降低维度灾难。主成分分析(Principe component analysis,PCA): 是一种广泛应用于不同领域的无监督线性数据转换技术,作用是降维。 常用领域:股票交易市场数据的探索性分析和信号去噪、生物信息学领域的基因组原创 2018-02-02 10:44:27 · 11360 阅读 · 3 评论 -
【机器学习】数据降维—线性判别分析(LDA)
本文代码推荐使用Jupyter notebook跑,这样得到的结果更为直观。线性判别分析(Linear Discriminant Analysis,LDA)是一种可作为特征抽取的技术LDA可以提高数据分析过程中的计算效率,对于未能正则化的模型,可以降低维度灾难带来的过拟合。 LDA与PCA相似: PCA试图寻找到方差最大的正交的主成分分量轴, LDA发现可以最优化分类的原创 2018-02-03 13:33:39 · 10599 阅读 · 13 评论 -
【机器学习】数据降维—核主成分分析(Kernel PCA)
本文代码推荐使用Jupyter notebook跑,这样得到的结果更为直观。KPCA:将非线性可分的数据转换到一个适合对齐进行线性分类的新的低维子空间上。 非线性函数:Φ为一个函数,能够对原始的特征进行非线性组合,将原始的d维数据集映射到更高的k维特征空间。利用核PCA可以通过非线性映射将数据转换到一个高维空间中,在高维空间中使用PCA将其映射到另一个低维空间中原创 2018-02-03 13:33:51 · 18383 阅读 · 4 评论 -
【机器学习】基于流水线的工作流
使用SKlearn的Pipline类,拟合出包含任意多个处理步骤的模型,并将模型用于新的数据预测。流水线包含数据预处理还有评估器。代码有两个预处理环节,用于数据缩放和转换的StandardScaler和PCA。评估器为LogisticRegression分类器。工作流:StandardScaler—>PCA—>LogisticRegression流程图:原创 2018-02-05 09:59:56 · 1785 阅读 · 0 评论 -
【机器学习】K折交叉验证评估模型性能
holdout交叉验证和K折交叉验证可以得到模型的泛化误差的可靠估计(模型在新数据集是的性能表现)。holdout交叉验证holdout交叉验证是机器学习模型泛化性能的一个经典且常用的方法。holdout交叉验证能将最初的数据集分为训练集和测试集 模型选择:对模型的的不同参数设置进行调优和比较的过程,也就是针对给定分类问题,调整参数以寻找最优值(超参)的过程。原创 2018-02-05 10:25:43 · 18604 阅读 · 5 评论 -
【机器学习】学习曲线和验证曲线
提高学习算法性能的简单但功能强大的判定工具:学习曲线,验证曲线学习曲线学习曲线能判定偏差和方差问题 高偏差与高方差:以上模型应用于训练和交叉验证准确率很低,此模型未能很好打的拟合数据。常用的方法:增加模型参数的数量,或者降低正则化程度。 如果不适合正则化则进行降维。使用SKlearn中的学习曲线函数评估模型:原创 2018-02-05 10:30:26 · 12493 阅读 · 0 评论 -
【机器学习】网格搜索优化机器学习模型
机器学习中有两类参数:训练数据学习得到的参数、学习算法需要单独进行优化的参数(超参) 超参优化技巧: 网格搜索:通过寻找最优的超参值的组合以进一步提高模型的性能 通过指定不同的超参列表进行暴力穷举搜索,并计算得到评估每个组合对模型性能的影响,获得参数的最优组合。实现网格搜索调优超参:# 通过网格搜索优化超参数结合k折交叉验证from sklearn.g原创 2018-02-05 10:34:18 · 3243 阅读 · 0 评论 -
【机器学习】模型的性能评价指标
混淆矩阵混淆矩阵:展示学习算法性能的一种矩阵,一个简单的方阵,展示一个分类器预测结果(真正,真负,假正,假负)的数量图:使用SKlearn的confusion_matrix方法实现混淆矩阵:from sklearn.metrics import confusion_matrixpipe_svc.fit(X_train, y_train)y_pre原创 2018-02-05 10:44:32 · 3220 阅读 · 0 评论 -
【机器学习】建立基于GitHub库的推荐系统引擎
如果不熟悉协同过滤算法的可以查看我的一篇文章:【推荐系统】协同过滤浅入(基于用户/项目/内容/混合方式)代码存放在我的GitHub:https://github.com/935048000/GitHubRecommendationSystem 开始该推荐引擎是用于GitHub的库推荐这里使用GitHub的API,基于协同过滤的推荐系统。这个推荐系统的任务是获得我所有标星的资...原创 2018-02-05 10:55:31 · 8091 阅读 · 6 评论 -
【机器学习】机器学习概念简述
机器学习追求合理的假设空间的选取和模型的泛化能力 常见的机器学习应用场景:数据挖掘、模式识别、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人运用。 机器学习的过程:获取数据à处理数据à选择模型à训练模型à评估模型à可视化结果 常见机器学习算法: 线性回归 ...原创 2017-12-14 14:57:09 · 1502 阅读 · 0 评论 -
【机器学习】使用Scikit-Learn库实现逻辑回归(LogisticRegression)
逻辑回归:针对二分类问题的简单但更高效的算法逻辑回归是一个分类模型,不是回归模型。 逻辑回归是针对线性可分问题的一种易于实现且性能优异的分类模型。逻辑回归通过一对多技术可以扩展到多类别分类 几率比:特定事件发生的几率p/(1-p),p为正事件发生的几率。正事件:我们需要预测的事件逻辑函数是几率比的对数函数:log p/(1-p) 预测某一样本属于特定类别的概原创 2018-02-06 15:13:13 · 3130 阅读 · 0 评论 -
【机器学习】使用Scikit-Learn库的L2正则化解决过拟合问题
欠拟合,正常,过拟合图:偏差 - 方差权衡就是通过正则化调整模型的复杂度正则化是解决共线性的一个很有用的方法,可以过滤数据中的噪声,并最终防止过拟合。正则化背后的概念是引入额外的信息(偏差)来对极端数据参数权重做出惩罚。最常用的正则化为L2正则化也称为L2收缩或者权重衰减。L2公式: 正则化的使用方法:在逻辑斯蒂回归的代价函数中加入正则化项,降低原创 2018-02-06 15:17:59 · 2097 阅读 · 0 评论 -
【机器学习】使用Scikit-Learn库实现支持向量机(SVM)最大化分类间隔
支持向量机是一种性能强大且广泛应用的学习算法SVM可以看做是感知机的扩展SVM的优化目标是最大化分类间隔,间隔指两个分离的超平面间的距离,最靠近超平面的训练样本为支持向量。使用松弛变量解决非线性可分问题:松弛系数的目的:对于非线性可分的数据来说,需要放松线性约束条件,保证在适当的罚项成本下,对错误分类的情况下进行优化时能够收敛。 取值为正的松弛变量可以简原创 2018-02-06 15:23:04 · 1770 阅读 · 0 评论 -
【机器学习】使用Scikit-Learn库的核SVM解决非线性问题
SVM很容易的使用核技巧来解决非线性可分问题 本文使用的数据集和库文件定义在该章节有定义了,链接:http://mp.blog.csdn.net/postedit/79196206建立异或数据集:np.random.seed (0)X_xor = np.random.randn (200, 2)y_xor = np.logical_xor (X_xor[:, 0] >原创 2018-02-06 15:32:15 · 2384 阅读 · 0 评论 -
【机器学习】使用Scikit-Learn库实现决策树
决策树算法:。从树根来说,基于可获得的最大信息增益的特征来对数据进行划分通过迭代处理,在每个子节点上重复此划分过程,直到叶子结点。剪通过枝来限定树的最大深度。 最大信息增益: ˚F为要划分的特征,DP与了Dj分别为父节点和第Ĵ个子节点,我为不纯度衡量标准,NP为父节点中的样本数量,新泽西州为第Ĵ个子节点中的样本数量。 信息增益:父节点的不纯度与所有子节点不纯度总和之差,原创 2018-02-06 15:47:33 · 2052 阅读 · 0 评论 -
【机器学习】使用Scikit-Learn库实现随机森林
使用随机森林将弱分类器集成为强分类器随机森林视为多棵决策树的集成。集成学习的基本理念:将弱分类器集成为鲁棒性更强的模型(强分类器)。分类器集成后具备更好的泛化误差,不容易过拟合。 使用随机森林步骤:1、 使用bootstrap抽样法,随机选择n个样本用于训练2、 使用第一步选择的样本构造决策树 1) 不重复的随机选择d个特征原创 2018-02-06 15:50:01 · 2290 阅读 · 0 评论 -
【机器学习】使用Scikit-Learn库实现K-近邻(KNN)算法
懒惰学习算法的典型例子。KNN仅仅对训练集有记忆功能,不会从其他训练集中通过学习得到一个判别函数 参数化模型和非参数化模型:1、 参数化模型,通过训练数据估计参数:感知机、逻辑回归、线性SVM2、 非参数化模型,无法通过固定参数来进行表征,参数数量随训练数据的增加而递增:核SVM、决策树、KNN KNN基于实例的学习,只对训练数据产生记忆,学习阶原创 2018-02-06 15:51:29 · 3997 阅读 · 0 评论 -
【机器学习】使用Scikit-Learn库实现感知机
分类算法的选择:没有一种分类算法可以在所有可能的应用场景下都表现良好,只有比较了多种学习算法的性能,才能为特定问题挑选出最合适的模型。分类器的性能、计算能力和预测能力,在很大的程度上都依赖于模型的训练的数据。 训练机器学习算法涉及的5个主要步骤:1、 特征选择2、 确定性能评价标准3、 选择分类器及其优化算法4、 对模型性原创 2018-02-06 15:03:56 · 2508 阅读 · 0 评论 -
【机器学习】非凸优化
非凸优化http://arxiv.org/pdf/1712.07897.pdf将学习问题表达为非凸优化问题的便利方式使算法设计者获得大量的建模能力流行的解决方案是将非凸问题近似为凸优化,使用传统方法解决近似(凸)优化问题。但是该方法可能造成损失,且对于大规模优化来说难度较高。解决非凸优化的直接方法在多个领域中取得了巨大成功,现在仍是从业者常用的方法,因为原创 2018-07-13 23:38:38 · 11437 阅读 · 0 评论 -
【机器学习】公开数据集总汇(欢迎补充)
目录【图片数据集】【人脸数据集】【视频数据集】【问答数据集】【自动驾驶数据集】【年龄、性别数据集】修改时间:2018-10-30:新增9个 人脸数据集 【图片数据集】 世界上最大的图像识别数据集ImageNet :http://www.image-net.org 用于分割和加字幕标注的数据集COCO : http://c...原创 2018-03-06 10:22:04 · 3133 阅读 · 0 评论 -
【机器学习】Google机器学习术语表
原文:Google机器学习术语表 机器学习术语表本术语表中列出了一般的机器学习术语和 TensorFlow 专用术语的定义。A A/B 测试 (A/B testing) 一种统计方法,用于将两种或多种技术进行比较,通常是将当前采用的技术与新技术进行比较。A/B 测试不仅旨在确定哪种技术的效果更好,而且还有助于了解相应差异是否具有显著的统计意义。A/B 测试通常是采用...翻译 2018-05-18 12:04:50 · 2059 阅读 · 0 评论 -
【机器学习】机器学习解释:算法是你的朋友
浅谈机器学习方法:我们近来常常听到术语“机器学习”,通常是在预测分析和人工智能的背景下。机器学习或多或少地是计算机学习东西而不被专门编程的一种方式。但是,这实际上是如何发生的?总之,答案是算法。算法是一组计算机能够遵循的规则。想想你是如何学会做长分的 - 也许你学会了将分母作为分子的第一个数字,然后减去小数并继续下一个数字,直到剩下一个余数。那么,这是一种算法,它就是我们可以编入计算机的那种东西,它可以执行这些计算,速度比我们快得多翻译 2018-05-19 15:57:34 · 3494 阅读 · 0 评论 -
【NumPy】NumPy实战
原文:https://www.dataquest.io/blog/numpy-cheat-sheet/NumPy的参考文档和手册:https://docs.scipy.org/doc/NumPy是使Python能够快速处理数据的库。最初于1995年以“Numeric”推出的NumPy是构建许多重要的Python数据科学库的基础,包括Pandas,SciPy和scikit-learn。本文中,我们使...翻译 2018-05-19 16:12:36 · 2455 阅读 · 0 评论 -
【图像处理】SIFT特征点学习
原文:http://blog.sina.com.cn/s/blog_9c8bc82b0101bw02.html一、尺度不变性尺度不变性的根本原因:极值点在提取上是在尺度空间上提取的,极值点的描述又是在尺度空间上建立的,因此具有尺度不变性。尺度空间的构成:尺度空间由两部分构成,一部分为高斯(Gaussian)图像空间,一部分为高斯差分(DOG)图像空间,每一个Octave之间为如果为s层,则需要的G...转载 2018-05-19 16:15:40 · 502 阅读 · 0 评论 -
【Scikit-Learn】Scikit-Learn实战
大多数正在使用Python学习数据科学的人肯定会听说过scikit-learn,这是一个开源的Python库,通过统一的界面,可以实现各种机器学习,预处理,交叉验证和可视化算法。 本文将向您介绍您需要经历的基本步骤,以成功实现机器学习算法:您将看到如何加载数据,如何对其进行预处理,如何创建您可以适合的模型您的数据和预测目标从我们针对初学者的scikit-learn教程开始 ,您将通过简单,循序渐进的方式了解如何探索手写数字数据,如何为其创建模型,如何使数据适合您的模型和如何预测目标值。翻译 2018-05-19 16:33:33 · 2151 阅读 · 0 评论 -
【Pandas】Pandas实战
这是Pandas基础知识的快速指南,您将需要开始使用Python来 快速,灵活和富有表现力的Pandas数据结构旨在使真实世界的数据分析变得更加容易,但对于刚开始使用它的人来说,这可能不会立即发生。正是因为这个软件包内置了如此多的功能,所以这些选项非常令人难以置信。 本文将指导您完成Pandas库的基础知识,从数据结构到I / O,选择,删除索引或列,排序和排序,检索您正在使用的数据结构的基本信息以应用功能和数据对齐。翻译 2018-05-19 17:50:52 · 3049 阅读 · 0 评论 -
【机器学习】我应该使用哪种机器学习算法?
此资源主要面向初级到中级数据科学家或分析师,他们有兴趣识别和应用机器学习算法以解决他们感兴趣的问题。初学者在面对各种机器学习算法时提出的一个典型问题是“我应该使用哪种算法?”问题的答案取决于许多因素,其中包括:数据的大小,质量和性质;可用的计算时间;任务的紧迫性;你想要对数据做什么。翻译 2018-05-19 20:46:12 · 3761 阅读 · 0 评论 -
【机器学习】机器学习算法之旅
在这篇文章中,我们将介绍最流行的机器学习算法。浏览该领域的主要算法以了解可用的方法是有用的。有很多算法可用,当算法名称被抛出时,它会感到压倒性的,并且您只需要知道它们是什么以及它们在哪里适合。我想给你两种方法来思考和分类你可能在现场遇到的算法。1.首先是按学习风格的一组算法。2.第二种是通过形式或功能相似性的算法分组。这两种方法都很有用,但我们将专注于按相似性对算法进行分组,并继续浏览各种不同的算法类型。阅读本文后,您将更好地理解最受欢迎的监督式学习机器学习算法翻译 2018-05-19 20:57:56 · 4604 阅读 · 0 评论 -
【神经网络】神经网络的单元格和层
本文展示了不同类型的神经网络细胞和各种层连接方式,但并没有真正涉及每种细胞类型的工作方式。许多细胞类型我最初给出不同的颜色以更清楚地区分网络,但是我发现这些细胞或多或少地以相同的方式工作,因此您可以在基本细胞图像下找到描述。翻译 2018-05-20 10:57:08 · 4840 阅读 · 0 评论