机器学习
文章平均质量分 64
诗蕊
Put your heart into it
展开
-
在Pandas中像写SQL一样做数据分析
在python中可以使用pandas包来进行类似SQL的数据查询,这篇文章就给出一些用pandas去做类似SQL的操作的例子。首先导入numpy和pandas包。import numpy as npimport pandas as pd本文使用tips数据集用来讲解类似SQL操作的例子,首先导入以DataFrame的形式的tips数据集url = 'https://raw.g原创 2018-01-13 23:12:10 · 17562 阅读 · 0 评论 -
加速梯度下降的技巧
在用梯度下降的方法训练神经网络时,如果误差曲面本身并不是凸的,那么这个曲面可能包含许多独立于全局最小值的局部最小值,很有可能在局部最小值时训练就停止了,造成结果不佳。另外,即便我们的网络达到了全局最小值也有可能出现过拟合,不能保证模型有很好的泛化性能。下面介绍几种梯度下降的方法。1.随机和小批量随机梯度下降标准的梯度下降每次迭代更新所有的训练数据的子集,SGD是每一次迭代中使用每个样本...原创 2018-04-23 12:44:04 · 2056 阅读 · 0 评论 -
机器学习的分类
严格意义上来说,机器学习可以分为以下几类:有监督学习,无监督学习,半监督学习,强化学习。1. 有监督学习有监督学习是指在训练过程中的数据是同时又特征和标签的,也就是说模型在训练过程中是知道正确结果的,模型可以根据标签为指导进行参数调整,这种学习方式好像学习被监督了一样,因此监督学习的意义为:学习的过程有标签作为指导算法参数调整的过程。2. 无监督学习无监督学习是在训练过程中,数...原创 2018-05-17 12:42:44 · 4388 阅读 · 0 评论 -
训练模型填充空值(fill null)的几种方法
我们在进行模型训练时,不可避免的会遇到某些特征出现空值的情况,下面整理了几种填充空值的方法1. 用固定值填充对于特征值缺失的一种常见的方法就是可以用固定值来填充,例如0,9999, -9999, 例如下面对灰度分这个特征缺失值全部填充为-99data['灰度分'] = data['灰度分'].fillna('-99')2. 用均值填充对于数值型的特征,其缺失值也可以用未缺失...原创 2018-05-11 13:03:19 · 16097 阅读 · 2 评论 -
对梯度下降的理解
在神经网络以及很多机器学习模型的训练优化过程中,不可避免的需要用到梯度下降,可以说梯度下降是很多机器学习算法的核心。这篇文章首先介绍了梯度,偏导数等,然后根据一个具体的例子“根据历史数据来预测当前房价”讲解梯度下降及其代码实现,在实例中使用了Mini-Batch梯度下降(Mini-Batch Stochastic Gradient),并解释了其误差迭代曲线的变化趋势和原因。梯度下降的基本概...原创 2018-04-28 12:09:08 · 514 阅读 · 0 评论 -
目标检测模型一:滑动窗口检测器,选择性搜索,R-CNN,边界框回归器
1. 滑动窗口检测器滑动窗口检测器是一种暴力检测方法,从左到右,从上到下滑动窗口,然后利用分类识别目标。这里使用不同大小的窗口,因为一张图片可能展示从不同距离观测检测出不同的目标类型。 滑动窗口从图像中可能剪切出不同大小的图像块,但是很多分类器只取固定大小的图像,所以这些图像是经过变形转换的。但是这样做并不影响准确率,因为分类器可以处理变形后的图像。 变形图像被输入到CNN中,提取40...原创 2018-04-28 13:13:13 · 8292 阅读 · 1 评论 -
目标检测模型二:Fast-R-CNN,ROI池化
1. Fast R-CNNR-CNN需要很多候选区域以提高准确度,但是很多候选区域其实是彼此重叠的,如果我们有2000个候选区域,每一个候选区域都需要独立的送到CNN中,对于不同的ROI,我们需要提取2000次特征,效率很低。CNN的特征图是以一种密集的方式表征空间特征,我们可以直接使用特征图来代替原图来检测目标。 不同于R-CNN多次对每个图像提取特征,Fast R-CNN使用特征...原创 2018-05-24 12:47:33 · 8512 阅读 · 3 评论 -
对贝叶斯(Bayes)线性回归的理解(一)
线性回归假设:Y=β1X+β0+ϵY=β1X+β0+ϵY=\beta_1X+\beta_0+\epsilon我们假设数据具有以下形式: y=β1x+β0+ϵy=β1x+β0+ϵy=\beta_1x+\beta_0+\epsilon where ϵϵ\epsilon~N(μ,σμϵ)N(μ,σϵμ)N(\mu, \sigma_{\epsilon}^{\mu}) 这样的模型可以生产如下的数据:...原创 2018-05-31 17:37:04 · 7893 阅读 · 9 评论 -
图像篡改痕迹检测:Adobe双流Faster R-CNN网络
为了检测图像是否被篡改,Adobe在最近的论文中提出了一种双流Faster R-CNN网络,对图像进行端对端的训练,检测经过处理图像中被篡改的区域。 双流中的一个流是RGB流,用于从RGB图像输入中提取特征,通过对比度差异、不自然边界等找出篡改的痕迹。另一个流是噪声流,利用SRM(steganalysis rich model)模型的过滤层中提取噪声的特征,找出图像中真实区域和被篡改区域的噪声间...原创 2018-07-08 13:54:54 · 8564 阅读 · 1 评论 -
pyspark构建简单模型(RandomForest&LogisticRegression)
本文记录了用pyspark构建一个简单的模型的过程。1. 读取数据集from pyspark.sql import SparkSessionfrom pyspark.ml.feature import StringIndexerfrom pyspark.ml.classification import LogisticRegressionfrom pyspark.ml impor...原创 2018-07-11 05:29:24 · 4238 阅读 · 0 评论 -
pyspark特征工程常用方法(一)
本文记录特征工程中常用的五种方法:MinMaxScaler,Normalization,OneHotEncoding,PCA以及QuantileDiscretizer 用于分箱 原有数据集如下图: 1. MinMaxScalerfrom pyspark.ml.feature import MinMaxScaler# 首先将c2列转换为vector的形式vecAssembler ...原创 2018-07-11 19:28:04 · 11287 阅读 · 2 评论 -
对深度学习卷积操作的理解
本文介绍对了对卷积核、滤波器、通道等概念的理解。二维卷积二维卷积就是卷积核(指的是一个小的权值矩阵)在二维输入数据上滑动遍历整张图片,对当前输入的部分元素进行矩阵乘法,将一个二维矩阵转换为另一个二维矩阵,然后将结果输出,输出特征实际上是在输入数据相同位置上的加权和。下图是一个标准的卷积: 从上面的描述可知,卷积核的尺寸直接决定了生成新的特征是汇合了多少个输入特征,在上图中,我们输入的...原创 2018-07-22 09:00:12 · 1569 阅读 · 0 评论 -
softmax函数和交叉熵损失函数
在CNN中,全连接层后会加上softmax函数,并且一般用交叉熵函数作为损失函数。这篇文章主要记录softmax把CNN的输出变成概率的过程以及交叉熵如何为优化过程提供度量,并且用python实现。softmax函数softmax函数将一个N维向量的输入的每一维都转换成区间维(0,1)之间的一个实数,公式如下: pi=eai∑Nk=1eakpi=eai∑k=1Nekap_i=\frac{...原创 2018-08-11 16:27:26 · 6613 阅读 · 0 评论 -
TVM: End-to-End Optimization Stack for Deep Learning
Optimizing Computational GraphsComputational Graph:计算图,计算图用于描绘一个整体的计算任务,会根据图中的计算任务提前分配内存,所以在计算图中做优化,即将原来的计算图转换为相同效果的计算图。例如有些计算可以提前进行然后存储在内存中在需要用的时候直接调用,这样就可以节省一部分执行的时间。下图描述了一些计算图优化的例子: Operator F...原创 2018-08-22 15:58:33 · 3220 阅读 · 1 评论 -
h2o-genmodel.jar加载模型编译运行
h2o生成模型import h2ofrom h2o.automl import H2OAutoMLh2o.init()path = '/Users/huoshirui/Desktop/xyworking/pythonData/dataClean/tengxun_final.csv'tengxun_df = h2o.import_file(path)df = tengxun_df...原创 2018-08-25 22:59:42 · 953 阅读 · 1 评论 -
用xgboost构建一个简单的模型
这篇文章我们使用xgboost构建一个简单的模型以及xgboost与scikit-learn一起使用构建模型,用到的数据集是UCI机器学习库的mushroom数据集,用数据集中的22个特征来判断蘑菇是否有毒,步骤如下: 1. 导入模型需要的工具包,这里面我们用到了xgboost, sklearn, matplotlib, time, graphvizimport xgboost as xgb...原创 2018-03-27 11:23:42 · 4574 阅读 · 0 评论 -
机器学习中的五种回归模型及其优缺点
本文将会介绍五种常见的回归模型的概念及其优缺点,包括线性回归(Linear Regression), 多项式回归(Ploynomial Regression), 岭回归(Ridge Regression),Lasso回归和弹性回归网络(ElasticNet Regression).1.线性回归(Linear Regression)回归是在建模过程中用于分析变量之间的关系、以及变量是如何...原创 2018-04-14 17:25:35 · 26729 阅读 · 3 评论 -
人工神经网络(ANN)入门二
在人工神经网络(ANN)入门一中我们可以用单层的人工神经网络解决AND和OR的运算。但是很多问题例如异或运算(exclusive-or)不能使用单层的神经网络找到这样一个线性平面把训练集中的数据分开。下面表格中是一个异或运算 x_1 x_2 output 1 1 -1 0 1 1 0 0 -1 1 0 1原创 2017-12-31 20:16:41 · 24789 阅读 · 0 评论 -
人工神经网络(ANN)入门一
人工神经网络(ANN)是由试图去模仿生物神经系统而激发的。人的大脑主要由神经元(neuron)组成,神经元通过轴突(axon)连接在一起。当神经元收到刺激时,神经脉冲(nerve impulses)通过轴突由一个神经元传递到另一个神经元。一个神经元通过树突(dendtrite)连接到其他神经元的轴突,树突是神经元细胞体的延伸物。树突和一个轴突的连接点叫做突触(synapse)。原创 2017-12-23 22:33:07 · 29753 阅读 · 1 评论 -
线性回归(liner regression)原理及python实现
之前介绍过的神经网络属于分类,首先介绍一下分类和回归的区别:分类和回归主要区别在于Y变量,分类的Y变量通常是类别变量,例如性别、颜色、是否健康等;而回归的Y变量为连续数值型,如房价、降雨量等。线性回归有几种分类,我们从最简单的线性回归开始说。-简单线性回归(simple linear regression)简单线性回归通常就是包含一个自变量x和一个因变量y,这两个变量可以用一条直线来模拟。如原创 2018-01-07 21:51:27 · 19369 阅读 · 1 评论 -
TensorFlow——Session会话控制&Variable变量
这篇文章主要讲TensorFlow中的Session的用法以及Variable。Session会话控制Session是TensorFlow为了控制和输出文件的执行语句,运行session.run()就能获得运算结果或者部分运算结果。我们在这里使用一个简单的矩阵相乘的例子来解释Session的两个用法。 首先我们要加载TensorFlow并建立两个矩阵以及两个矩阵所做的运算。这里我们建原创 2018-01-30 22:27:33 · 7482 阅读 · 0 评论 -
用tensorflow建造一个简单的神经网络
reference:https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/3-2-create-NN/ 这篇文章主要讲怎样建造一个完整的神经网络,包括添加神经层,计算误差,训练步骤定义一个添加层神经层函数我们知道一个神经网络可能包含很多个隐藏层,所以如果我们定义一个添加层函数,在后面如果需要增加神经层就只原创 2018-02-02 17:33:40 · 5980 阅读 · 0 评论 -
神经网络预测结果可视化
在用tensorflow建造一个简单的神经网络中建立了一个简单的三层(输入层,隐藏层,输出层)的神经网络。这篇文章主要说怎样将我们构建的神经网络训练的过程以及结果可视化。 在用tensorflow建造一个简单的神经网络中建立神经网络的代码import tensorflow as tfimport numpy as npdef add_layer(inputs, in_size, ou原创 2018-02-02 19:15:37 · 10927 阅读 · 3 评论 -
逻辑回归(Logistic Regression)原理及Python实现
前面有讲过线性回归,但是很多非线性问题不能用简单的线性回归来分类。这时需要用到逻辑回归,逻辑回归是一种非线性的回归。原创 2018-01-14 23:16:35 · 18474 阅读 · 0 评论 -
卷积神经网络(CNN)
在人工神经网络中介绍过神经网络的结构: 卷积神经网络是人工神经网络的变形体,即对功能和形式做了变化,通常用于图像数据处理,结构如下: 从上图中我们可以看出卷积神经网络比起人工神经网络多了很多层级结构,卷积神经网络可以分为: (1)数据输入层(input layer) (2)卷积计算层(CONV layer) (3)ReLU激励层(ReLU layer) (4)池化层(pooli原创 2018-01-22 22:08:06 · 10043 阅读 · 0 评论 -
TensorFlow计算模型——计算图
上图是tensorflow的一个基本构造图以及流向。tensorflow 由两个单词构成:tensor和flow,也就是张量和流,这个名字反映出了张量之间通过计算相互转换的过程。 TensorFlow计算模型——计算图 TensorFlow中每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。 上图中每一个节点都是一个运算,而每一条边代表了计算之间的依赖关系。在上图原创 2018-01-28 23:21:05 · 8186 阅读 · 0 评论 -
一个简单的tensorflow程序来预测线性方程参数
用代码来实现一个简单的tensorflow的结构用来预测一个线性方程y = 0.1x + 0.3的参数。 首先需要导入tensorflow 和 numpy两个包import tensorflow as tfimport numpy as np导入之后我们进行的第一步是建立数据,这里随机生成100个x_data,根据实际参数生成y_data:x_data = np.random.原创 2018-01-29 19:42:12 · 6800 阅读 · 0 评论 -
目标检测模型中的性能评估——MAP(Mean Average Precision)
目标检测模型中性能评估的几个重要参数有精确度,精确度和召回率。本文中我们将讨论一个常用的度量指标:均值平均精度,即MAP。 在二元分类中,精确度和召回率是一个简单直观的统计量,但是在目标检测中有所不同的是及时我们的物体检测器在图像中检测到物体,如果我们仍无法找到它所在的图像中的哪个位置也是无用的。由于我们需要预测图像中的目标的发生和位置,所以在计算精确度和召回率与普通的二分类有所不同。目...原创 2018-02-18 13:48:41 · 58513 阅读 · 29 评论 -
常见的六大聚类算法
1. K-Means(K均值)聚类算法步骤: (1) 首先我们选择一些类/组,并随机初始化它们各自的中心点。中心点是与每个数据点向量长度相同的位置。这需要我们提前预知类的数量(即中心点的数量)。 (2) 计算每个数据点到中心点的距离,数据点距离哪个中心点最近就划分到哪一类中。 (3) 计算每一类中中心点作为新的中心点。 (4) 重复以上步骤,直到每一类中心在每次迭代后变化不大为止。也可...原创 2018-03-01 17:35:06 · 318580 阅读 · 35 评论 -
7种常见的机器学习算法衡量指标
在做机器学习进行实验过程中,我们需要使用分类精度、均方误差等方法衡量模型的性能,从而判断训练出的模型的表现是否符合预期要求。本文整理了7种常见的机器学习算法衡量指标:分类精度、对数损失、混淆矩阵、曲线下面积(AUC)、F1分数、平均绝对误差、均方误差。1. 分类精度分类精度其实就是我们所说的准确性,是正确预测数占总样本数的比值。 Accuracy=NumberofCorrectpredi...原创 2018-03-17 00:12:02 · 5870 阅读 · 0 评论 -
MAC OS上安装XGBoost步骤
安装Python环境 MAC OS 已在带Python 2.7,此步请忽略。 安装Homebrew Homebrew类似于ubuntu中的apt-get和centos中的yum,是OSX里面的一个非常有用软件安装工具. 安装这个软件的目的在于更新gcc版本,官方文档中说最新的gcc版本才使XGBoost支持多线程。 直接将上述代码粘贴至终端即可安装,下同(除非特别说明)。/usr/bin...原创 2018-03-24 20:44:35 · 1030 阅读 · 0 评论 -
标签传播算法(Label Propagation Algorithm)
半监督学习(Semi-supervised Learning SSL)半监督学习是一种有监督学习和无监督学习想结合的一种方法,其主要思想是基于数据分布上的模型假设,利用少量的已标注数据进行指导并预测未标记数据的标记,并合并到标记数据集中去。标签传播算法的基本思路标签传播算法是基于图的半监督学习方法,基本思路是从已标记的节点的标签信息来预测未标记的节点的标签信息,利用样本间的关系,建...原创 2018-09-03 19:55:33 · 30002 阅读 · 10 评论