机器学习
文章平均质量分 76
lming_08
这个作者很懒,什么都没留下…
展开
-
K近邻算法
今天天有点热啊,刚好又停电了,闲来无事就实现了下K近邻算法。K近邻算法的思想是将欲分类新数据的特征与所有样本的特征一一做比较,找出K个最相似数据(距离最短)的标签,然后找出K个标签里出现最多的标签,即为所分类的新数据的标签。具体见K近邻算法用Python实现了下,代码如下所示:# -*- coding: utf-8 -*-"""Created on Sun Jul 07 15:40:2原创 2013-07-07 22:57:42 · 1133 阅读 · 0 评论 -
机器学习之基于朴素贝叶斯文本分类算法
原理在分类(classification)问题中,常常需要把一个事物分到某个类别。一个事物具有很多属性,把它的众多属性看做一个向量,即x=(x1,x2,x3,…,xn),用x这个向量来代表这个事物。类别也是有很多种,用集合Y=y1,y2,…ym表示。如果x属于y1类别,就可以给x打上y1标签,意思是说x属于y1类别。这就是所谓的分类(Classification)。x的集合记为X,原创 2014-07-08 00:15:02 · 4277 阅读 · 1 评论 -
损失函数L1正则化稀疏性
机器学习算法中为了防止过拟合,会在损失函数中加上惩罚因子,即为L1/L2正则化。因此最终的优化目标函数为: f(x) = L(x) + C*Reg(x) , C > 0 本文只讲解L1正则化,因此Reg(x) = |x| 首先L(x)和Reg(x)都是连续函数,因此f(x)也是连续函数;其次L(x)和Reg(x)都是凸函数,因此f(x)也是凸函数;所以f(x)是有最优解的。而|x|仅在x=0原创 2018-01-08 17:49:28 · 2732 阅读 · 0 评论 -
拉格朗日求条件极值
拉格朗日求条件极值对于无条件极值可以直接对各偏导数等于0求解或者使用梯度下降法求解,而对于条件极值,一般会先转化成拉格朗日乘数法形式,再求解。而对于不等式的约束条件,还需要转化成对偶问题进行求解 下面举一个例子,说明这一流程: http://www.moozhi.com/topic/show/54a8a261c555c08b3d59d996原创 2015-09-15 22:29:43 · 7680 阅读 · 0 评论 -
谱聚类--SpectralClustering
谱聚类一般会先对两两样本间求相似度, 然后根据相似度矩阵求出拉普拉斯矩阵,然后将每个样本映射到拉普拉斯矩阵特诊向量中,最后使用k-means聚类。scikit-learn开源包中已经有现成的接口可以使用,具体见http://scikit-learn.org/dev/modules/generated/sklearn.cluster.SpectralClustering.html#sklea原创 2015-06-02 21:01:45 · 4129 阅读 · 0 评论 -
拟牛顿法之DFP算法
拟牛顿法(Quasi-Newton Methods)是求解非线性优化问题最有效的方法之一,于20世纪50年代由美国Argonne国家实验室的物理学家W. C. Davidon所提出来。Davidon设计的这种算法在当时看来是非线性优化领域最具创造性的发明之一。不久R. Fletcher和M. J. D. Powell证实了这种新的算法远比其他方法快速和可靠,使得非线性优化这门学科在一夜之间突飞原创 2015-04-26 20:55:32 · 5090 阅读 · 0 评论 -
模型评估&AUC
在机器学习中评判一个模型好坏的标准有很多,常用的有准确率、召回率、AUC等。本文介绍下AUC及其计算方式。AUC常用来评估一个二元分类模型,二元分类模型通常有4中预测结局,以是否患高血压为例:真阳性(TP):诊断为有,实际上也有高血压。伪阳性(FP):诊断为有,实际却没有高血压。真阴性(TN):诊断为没有,实际上也没有高血压。伪阴性(FN):诊断为没有,实际却有高血压。#!/usr/bin/pythonimport sysdef get_auc(arr_score, arr_labe原创 2015-03-22 22:59:28 · 1826 阅读 · 0 评论 -
梯度下降法
梯度下降法在凸优化中应用非常广泛,常用于求凸函数极值。梯度是个向量,其形式为通常是表示函数上升最快的方向!因此,我们只需要每一步往梯度方向走一小步,最终就可以到达极值点,其表现形式为:初始点为x0, 然后往梯度的反方向移动一小步r到x1, 再次往梯度反方向移动r到x2,... ...,最终会越来越接近极值点min的。迭代时的公式为X(n+1) = X(n) - r * gra...原创 2015-03-15 22:57:06 · 1199 阅读 · 0 评论 -
Finding the Right Consumer: Optimizing for Conversion in Display Advertising Campaigns
这周在公司分享会上分享了《Finding the Right Consumer: Optimizing for Conversion in Display Advertising Campaigns》,下面贴出分享的主要内容。 文章参考于:http://www.cs.cmu.edu/~yandongl/papers/wsdm2012.pdf原创 2015-01-18 14:59:07 · 1254 阅读 · 1 评论 -
牛顿法
看最优化的文章时总能看到牛顿法和梯度下降法等基础算法,这里对牛顿法做个总结。牛顿法一般的用途有:1、求方程的根;2、求极值求方程的根并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x) = f(x0)+(x-x0)f'(x0)求解方程f(x)=0,即f(x0)+(x-x0)*f'(x原创 2015-02-01 23:33:16 · 1639 阅读 · 0 评论 -
点击率校准
通常预测的点击率都是不准的,需要校准。例如,boosted trees and SVM预测结果趋于保守,即预测的概率偏向于中值;而对于NaiveBayes预测的概率,小概率趋于更小,大概率趋于更大。常用的校准方法有Binning和Pair‐Adjacent Violators (PAV);下面分别说说这两种方法。Binning思想比较简单,也容易实现。需要说明的是,通常校准算法原创 2014-10-18 22:07:34 · 5836 阅读 · 0 评论 -
利用scikit-learn进行FeatureSelection
1.>>> from sklearn.datasets import load_iris>>> from sklearn.feature_selection import SelectKBest>>> from sklearn.feature_selection import chi2>>> iris = load_iris()>>> X, y = iris.data, iris.原创 2014-09-11 19:45:34 · 8479 阅读 · 1 评论 -
Python-sklearn学习中碰到的问题
auc = metrics.auc(fpr, tpr) File "/usr/local/lib/python2.7/site-packages/sklearn/metrics/metrics.py", line 172, in auc x, y = check_arrays(x, y) File "/usr/local/lib/python2.7/site-packages原创 2014-07-11 14:36:56 · 4044 阅读 · 2 评论 -
使用TensorFlow比较逻辑回归交叉熵与平方误差损失函数结果
逻辑回归通常使用交叉熵作为损失函数,而平方损失函数却很少用,原因是不好求导,而tensorflow在最优化时只许指定损失函数和最优化迭代方法即可自动求出最优解。下面对同一批样本分别用平方损失函数和交叉熵作为损失函数求最优解。#!/usr/bin/env python#-*- coding:utf8 -*-import sysimport tensorflow as tfimport n...原创 2019-01-30 18:22:24 · 1778 阅读 · 1 评论