机器学习笔记
文章平均质量分 79
机器学习笔记
禺垣
万世之一时,全局之一域。
展开
-
Python缺失值处理实现
在数据处理相关工作中,读取的数据中常常会有缺失值的情况,为顺利进行后续的操作,需要首先对缺失值进行处理,处理的方式一般为**删除**或**填充**,Python中提供了专门的工具包,可以方便地进行实现。读取操作可以由pandas模块实现,通常直接读一个excel或csv文件,创建为DataFrame对象,模块中的dropna方法和fillna方法可以实现对缺失值的删除和填充。原创 2023-11-28 23:32:41 · 1431 阅读 · 0 评论 -
三种常见的平滑滤波方法
均值滤波、中值滤波、高斯滤波是三种常见的平滑滤波方法,其中均值滤波和高斯滤波是线性技术,中值滤波是非线性技术。它们实现的基本原理是基本一致的,指定一个滑动窗口,计算其中的均值、中值、卷积值输出到当前位置。均值滤波、高斯滤波对高斯噪声表现较好,但对椒盐噪声表现较差;中值滤波则对椒盐噪声表现较好,对高斯噪声表现较差。原创 2023-08-10 00:44:51 · 3749 阅读 · 1 评论 -
DBSCAN聚类
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,簇集的划定完全由样本的聚集程度决定。聚集程度不足以构成簇落的那些样本视为噪声点,因此DBSCAN聚类的方式也可以用于异常点的检测。原创 2023-08-05 18:36:49 · 459 阅读 · 0 评论 -
常见距离计算的Python实现
常见的距离有曼哈顿距离、欧式距离、切比雪夫距离、闵可夫斯基距离、汉明距离、余弦距离等,用Python实现计算的方式有多种,可以直接构造公式计算,也可以利用内置线性代数函数计算,还可以利用scipy库计算。原创 2023-08-02 23:20:15 · 3154 阅读 · 0 评论 -
k-means聚类
当前人工智能技术实现的一种主要手段是机器学习,而机器学习能够解决的问题主要有三种:分类、聚类、回归,有监督的是分类,无监督的是聚类。所谓聚类,就是以一定的方法将一堆样本依它们本身的数据特性划分成不同的簇类,以达成不同的技术目的,k-means就是这样一种基础聚类算法。原创 2023-01-30 18:39:27 · 1126 阅读 · 0 评论 -
朴素贝叶斯分类
朴素贝叶斯法(Naive Bayes)是一种基础分类算法,它的核心是贝叶斯定理+条件独立性假设。原创 2023-01-27 22:00:47 · 1261 阅读 · 0 评论 -
kNN分类
kNN(k nearest neighbor,k近邻)是一种基础分类算法,基于“物以类聚”的思想,将一个样本的类别归于它的邻近样本。原创 2023-01-07 18:24:00 · 1003 阅读 · 0 评论 -
基于准则匹配的图像对准
在图像处理相关的问题中,图像对准是一类典型的问题,也就是要将两幅图严丝合缝地对应起来。通常来讲,两幅图大小不一,一个是模板,一个是母图,也就是要在母图中搜寻定位到与模板图最为接近的区域。原创 2023-01-02 11:22:30 · 1027 阅读 · 2 评论 -
使用pmml跨平台部署机器学习模型Demo——房价预测
基于房价数据,在python中训练得到一个线性回归的模型,在JavaWeb中加载模型完成房价预测的功能。一、 训练、保存模型工具:PyCharm-2017、Python-39、sklearn2pmml-0.76.1。1.训练数据house_price.csvNosquare_feetprice11506450220074503250845043009450535011450640015450760018450原创 2021-11-21 12:08:14 · 1567 阅读 · 0 评论 -
使用pmml实现跨平台部署机器学习模型
一、概述 对于由Python训练的机器学习模型,通常有pickle和pmml两种部署方式,pickle方式用于在python环境中的部署,pmml方式用于跨平台(如Java环境)的部署,本文叙述的是pmml的跨平台部署方式。 PMML(Predictive Model Markup Language,预测模型标记语言)是一种基于XML描述来存储机器学习模型的标准语言。如,对在Python环境中由sklearn训练得到的模型,通过sklearn2pmml模块可将它完整地保存为一个pmml格式的文件,再原创 2021-11-20 19:02:12 · 4336 阅读 · 4 评论 -
解决PMML namespace URI httpwww.dmg.orgPMML-4_4 is not supported
使用pmml的方式跨平台部署机器学习模型时,在java中加载模型,出现了该错误原因:java的jar包版本与PMML文件的版本不相符,jar包的版本过低无法解析PMML文件。如果升级jar包,加载模型的当前语法不可用;因此,降低PMML文件的版本号是安全可靠的。解决:将pmml文件中xmlns="…/PMML-4_4"改为xmlns="…/PMML-4_3"再运行,成功。参考https://blog.csdn.net/qq_32113189/article/details/107542原创 2021-11-18 21:06:20 · 1688 阅读 · 0 评论 -
隐马尔可夫模型的解码
1.问题描述 隐马尔可夫模型(HMM)的解码问题指,给定模型和输出序列,如何找出最有可能产生这个输出的状态序列。自然语言处理中,也即如何通过观测信号确定最有可能对应的实际语义。在状态序列上,每个状态位是状态集合中的元素之一,因此该问题等价于在状态集合中的节点构成的有向网络(篱笆网络)中找出一条概率最大的路径(最优路径),如图。该问题可以通过维特比算法得到高效的解决。2.算法叙述 假设 P(st,j)P(s_{t,j})P(st,j)表示从起始时刻到st,js_{t,j}st,j的最优路径的原创 2021-11-02 21:42:58 · 1108 阅读 · 0 评论 -
维特比算法
一、概述 维特比算法是安德鲁.维特比(Andrew Viterbi)于1967年为解决通信领域中的解码问题而提出的,它同样广泛用于解决自然语言处理中的解码问题,隐马尔可夫模型的解码是其中典型的代表。无论是通信中的解码问题还是自然语言处理中的解码问题,本质上都是要在一个篱笆网络中寻找得到一条最优路径。 所谓篱笆网络,指的是单向无环图,呈层级连接,各层节点数可以不同。如图是一个篱笆网络,连线上的数字是节点间概念上的距离(如间距、代价、概率等),现要找到一条从起始点到终点的最优路径。 在实际问题中,原创 2021-10-28 21:41:56 · 2155 阅读 · 2 评论 -
隐马尔可夫模型
隐马尔可夫模型(Hidden Markov Model, HMM)是关于时序的概率模型,在自然语言处理如语音识别、机器翻译等领域有着广泛的应用。模型的核心是马尔科夫链+独立输出假设。1 模型描述 给定状态集合{q1,q2,...,qN}\left\{ q_1,q_2,...,q_N \right\}{q1,q2,...,qN}和观测集合{v1,v2,...,vM}\left\{ v_1,v_2,...,v_M \right\}{v1,v2,...,vM},已知一个状态能够随机地生成一个原创 2021-10-16 12:15:40 · 389 阅读 · 0 评论 -
离群点检测——局部离群因子(Local Outlier Factor,LOF)算法
1 离群点检测概述离群点是观察的数据集中明显异常的数据点,或者说,离群点的数据分布与数据集的整体分布不同。离群点检测的目的是检测出那些与正常数据差别较大的数据点,然后根据具体的问题作进一步处理。离群点检测算法主要有基于统计、聚类、分类、信息论、距离、密度等相关的方法,列表如下 检测方法 描述 优缺点 基于统计 根据数据的分布特点,选择一个概率分布模型对数据进行匹配,将不能匹...原创 2021-06-29 20:13:50 · 11136 阅读 · 13 评论 -
使用Flask部署机器学习模型
一、部署结构Flask是一个轻量级的Python Web开发框架,它自带了一个轻型服务器,可以部署Python 应用。对于python训练的机器学习模型,通过序列化和反序列化操作可以在Flask中进行部署。它的基本过程是,线下训练、保存模型,线上加载模型、部署应用。二、部署实现1.序列化和反序列化序列化:指将一个对象转换为字节流,能够存储在文件或网络上,在python中使用pickle模块来实现。也就是把训练的模型保存为一个.pkl文件。反序列化:指从字节流提取出对象。也就是加载.p原创 2021-04-08 14:14:47 · 6083 阅读 · 25 评论 -
解决“ValueError: Expected 2D array, got scalar array instead:array=“的错误。
可能是新安装的工具包的版本问题,某次在PyCharm下运行线性回归程序时,predict处出现下列错误:根据错误提示可知,是数据维度的问题,重新调整数据格式即可。解决方法:通过numpy和reshape方法调整数据的表现格式,如x -> np.array(x).reshap(1,-1)。参考1. https://www.cnblogs.com/hankleo/p/11310272.html...原创 2021-03-03 11:08:06 · 2998 阅读 · 0 评论 -
解决Anaconda安装过程中出现的“Failed to create Anaconda menus“的错误
在Windows10下安装Anaconda3-4.4.0时,出现"Failed to create Anaconda menus"错误提示。原因:Anaconda安装过程中需要创建PATH环境变量,本机在先前安装jdk等工具包时已创建过PATH环境变量,因此,Anaconda在建立PATH目录或写入值时发生了冲突,导致安装过程出错。解决方法:将原来的PATH值复制备份,删掉PATH变量,重新安装Anaconda。安装完成后,再将原变量值加回PATH中。参考1. https://blog.cs.原创 2021-03-01 14:41:23 · 4544 阅读 · 0 评论 -
卷积神经网络(CNN)
核心:卷积操作一、内容卷积神经网络(CNN)是一种特殊结构的神经网络,因含卷积层的卷积操作而得名,具有很强的特征提取能力,这里对卷积神经网络的各层概念及计算过程做一笔记,对于它的深层理解见仁见智吧。一般CNN各层分别为输入层、卷积层、下采样层、全连接层、输出层。该方法最初针对图像问题提出来的,也最早应用于图像问题,其最显著的一个特性就是对当前特征图局部范围内特征的提取。它的三个特征是局...原创 2018-10-27 11:45:15 · 765 阅读 · 0 评论 -
MNIST数据集转化为CSV格式
MNIST数据集是一个手写识别数据集,机器学习基础的数据集,其原始数据集以字节形式存储,包含四个部分:训练集images: train-images-idx3-ubyte.gz (包含60000个样本) 训练集labels: train-labels-idx1-ubyte.gz (包含60000个标签) 测试集images:t10k-images-idx3-ubyte.gz (...原创 2018-04-11 11:46:27 · 13376 阅读 · 4 评论 -
Windows下Anaconda、tensorflow、pycharm的安装(cpu版本)
近来入坑深度学习,准备装个框架,ubuntu上试了半天没成功,可能是外部网站下载问题吧。。,后来参考了下面一篇博文,在windows7上装了。不过自己的情况和上面的有些不一致,在此做一记录。主要参考:http://blog.csdn.net/m0_37655179/article/details/790430561.安装Anaconda,直接在官网下载的Anaconda3-4.4.0-Window原创 2018-01-18 11:16:42 · 8336 阅读 · 3 评论 -
机器学习笔记:各种范数及各类距离
各种范数和距离有时记不清楚,简单做个笔记。为什么把范数和距离写一块呢,因为一些距离就是通过范数定义的。参考《机器学习:算法原理与编程实践》一书。一、范数。这里主要指向量范数||x||,满足非负性,齐次性,三角不等式。0. L0范数:指向量x中非0的元素的个数。1. L1范数:指向量x中各个元素绝对值之和。 ...原创 2018-07-14 11:42:09 · 2367 阅读 · 0 评论 -
朴素贝叶斯(Naive Bayes)
核心:贝叶斯定理+条件独立性假设。1.贝叶斯定理 其中,为特征向量,y为数据类别。2.分类贝叶斯分类问题可描述为:对特征向量为的数据项进行分类。即对于给定的输入X,计算该数据项对每个类别的后验概率 ,将后验概率最大的类作为X的分类输出。后验概率的计算即根据贝叶斯定理,...原创 2018-07-18 19:05:44 · 801 阅读 · 0 评论 -
k-nearest neighbor,k近邻法
核心:物以类聚----根据邻近样本决定测试样本的类别。一、概念 所谓邻近样本,就是离它最近的k个样本,通过计算其与所有已知样本的距离来确定。 (距离的计算方式有多种(https://blog.csdn.net/albert201605/article/details/81040556),kNN一般使用的是欧氏距离,即两点间的空间距离,为两点向量差的L2范数。两个n维向量A...原创 2018-07-28 22:08:11 · 13236 阅读 · 1 评论 -
机器学习之熵
熵这个词本来是物理学中表示分子混乱程度的物理量,香农(Claude Elwood Shannon)借用过来描述信源的平均不确定性。信息熵的内容在信息论相关教材中有详细的描述,这里仅对机器学习中用到的部分相关概念做个笔记。1.信息信息有别于消息,是对事物运动状态或存在方式的不确定性的描述,并且这种不确定性是有大小的。比如我们在手机上看到这样两则新闻:科学家通过新技术复活了一只原核细...原创 2018-08-05 09:50:53 · 931 阅读 · 0 评论 -
决策树—分类
核心:特征选择+剪枝。1 概述决策树采取了“分而治之”的思想,是一种基本的分类方法,也可以用于回归。包括3个步骤:特征选择、决策树的生成和决策树的修剪。主要有ID3、C4.5和CART三种算法。从形式上,决策树就是一棵按照各个特征建立的树形结构,叶节点表示对于的类别,特征选择的顺序不同,得到的树的形状也不同。我们追求的是模型简单、效果好,直观上也就是建立的决策树深度越小越好。[例]...原创 2018-08-16 16:44:32 · 1647 阅读 · 0 评论 -
决策树—回归
核心:划分点选择 + 输出值确定。一、概述决策树是一种基本的分类与回归方法,本文叙述的是回归部分。回归决策树主要指CART(classification and regression tree)算法,内部结点特征的取值为“是”和“否”, 为二叉树结构。所谓回归,就是根据特征向量来决定对应的输出值。回归树就是将特征空间划分成若干单元,每一个划分单元有一个特定的输出。因为每个结点都是“是”...原创 2018-08-20 11:02:30 · 55617 阅读 · 14 评论 -
一元线性回归python示例——房价预测
假设房价只有面积一个影响因素,根据下列数据集建立线性回归模型,并预测面积为700平方英尺的房子价格。 No square_feet price 1 150 6450 2 200 7450 3 ...原创 2018-08-23 16:58:42 · 10220 阅读 · 1 评论 -
线性回归
线性模型既有回归的,也有分类的;线性回归模型有一元线性回归和多元线性回归,还有拓展的广义线性模型。这里仅对基本的回归模型做一总结。1. 一元线性回归这是一种最简单的回归形式,也就是只有一个变量,表现在二维平面坐标系中就是一堆离散的点,我们要做的就是找到一条最好的直线对这些点进行拟合(如图所示),这些已知的离散点就是训练数据集。这样,对于一个新来的未知数据,我们只知道它的横坐标,就能根据模型...原创 2018-08-23 22:31:01 · 1383 阅读 · 0 评论 -
随机森林
核心:决策树+两个随机1 算法内容 随机森林借鉴了集思广益的思想,是一种集成学习的方法,预测时建立多棵CART决策树,再综合判断(分类:最大投票;回归:取均值。如图所示)。为了增强其泛化能力,在选取基学习器训练集和结点特征选择时加入随机性。 ...原创 2018-09-02 20:05:43 · 1265 阅读 · 0 评论 -
用python将一个数据文件分为训练集和测试集
以鸢尾花数据集(iris dataset)为例,将其按7:3的比例随机划分为训练集和测试集。iris数据集下载:https://download.csdn.net/download/albert201605/10640837代码及说明如下(将数据文件与程序文件置于同一目录下):#【导入相应的库(对数据库进行切分需要用到的库是sklearn.model_selection 中的 tra...原创 2018-09-02 21:21:01 · 19289 阅读 · 3 评论 -
用python对训练集和测试集进行特征规范化处理
个人理解这里的规范化处理指对提取后的特征集进行处理,不是对原始的数据信号进行处理,包括归一化和标准化。规范化的原因:不同特征具有不同量级时会导致:a.数量级的差异将导致量级较大的特征占据主导地位;b.数量级的差异将导致迭代收敛速度减慢;c.依赖于样本距离的算法对于数据的数量级非常敏感。归一化:,也就是原数据减去该特征列最小值,再除以该特征列的极差,将属性缩放到[0,1]之间。标准化:,...原创 2019-09-09 21:39:10 · 11761 阅读 · 2 评论