libsvm

算法在岗一年的经验总结

喜夏-厌秋 提交于 2020-10-31 06:35:52
说起来今天还是一个有意思的日子,去年在美团实习,离职的时间也是12月7日。 算起来,自己的算法在岗应该也有一年了,在美团担任算法工程师大概有7个月,OPPO加上实习,估计也一年多吧,时间过的好快,这周末给大家谈谈我的感想吧,相比各位大佬,我的经验尚属稚嫩,但是也希望能给一些准备入行的、刚入行的人一些经验和建议吧,相关文章其实我也聊得不少,这里有部分重点我可能还会聊到,但是不见得都会说到,所以可以看看我以前的文章: 我从研究生生活中得到的经验 NLP.TM | 我的NLP学习之路 懒人目录: 算法工作的一天都要干什么。 特别的经验。 有关学习。 写在最后。 算法工作一天都要干什么 很多人可能再想想着每天在研究模型,看论文,实现模型之类的,这方面虽然非常重要,但是实际上并非如此。 每天这些时间会花的更多: 和产品沟通,技术方案设计。 数据层面花费的时间最多。 需要什么样的数据。 写SQL。 检查数据质量,空的、错的、不合法的。 特征工程。 有监督学习,需要标注数据,怎么标,标注本身是否可靠。 模型选择与开发。这块可以这么说,随着工作经验提升,这块时间会越来越少。 模型选择的话,把问题抽象出来,其实都比较好选,第一版模型一般是业内基线或者最简单的模型,像我,二分类先搞LR(logistic regression),序列标注就是CRF。 模型开发也基本不耗时

MATLAB安装libsvm工具箱的方法

非 Y 不嫁゛ 提交于 2020-10-02 13:43:54
支持向量机(support vector machine,SVM)是机器学习中一种流行的学习算法,在分类与回归分析中发挥着重要作用。基于SVM算法开发的工具箱有很多种,下面我们要安装的是十分受欢迎的libsvm工具箱。 libsvm简介 LIBSVM 是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单、易于使用和快速有效的 SVM 模式识别与回归的软件包,它不仅提供了编译好的可在 Windows 系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用; 该软件还有一个特点,就是对 SVM 所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数就可以解决很多问题;并且提供了交互检验(Cross-SVM回归等问题,包括基于一对一算法的多类模式识别问题。 libsvm与MATLAB自带的svm工具箱的区别 在MATLAB中,同样自带了一个svm工具箱,不过相比于libsvm,在功能性和易用性方面有一些差距。具体差别表现在: MATLAB自带的svm实现函数仅支持分类问题,不支持回归问题;而libsvm不仅支持分类问题,亦支持回归问题 MATLAB自带的svm实现函数仅支持二分类问题,多分类问题需按照 多分类的相应算法 编程实现;而libsvm采用 一对一方法 支持多分类 MATLAB自带的svm工具箱无法改变高斯核函数中的参数

两种方式识别“传统”图片验证码

不羁岁月 提交于 2020-08-16 13:59:11
目前,很多网站为了反爬都会采取各种各样的策略,比较简单粗暴的一种做法就是图片验证码,随着爬虫技术与反爬技术的演变,目前验证码也越来越复杂,比较高端的如Google的I‘m not a robot,极验等等。这些新的反爬方式大多都基于用户行为分析用户点击前的鼠标轨迹来判断是访问者是程序还是人。 基于图像处理的图片验证码识别 这篇文章介绍的是破解一般“传统”的图片验证码的步骤。上面提到的极验(目前应用比较广)也已经可以被破解,知乎上有相关的专栏,这里就不重复了。 即便是传统的图片验证码,也是有难度区分的(图一是我母校研究生院官网上的验证码,基本形同虚设;图二则是某网站的会员登录时的验证码增加了一些干扰信息,字符也有所粘连),但是破解的流程大致是一样的。 图1 图2 ▐ 识别步骤 获取样本 从目标网站获取了5000个验证码图片到本地,作为样本。因为后期需要进行监督学习样本量要足够大。 样本去噪 ✎ 先二值化图片 这一步是为了增强图片的对比度,利于后期图片图像处理,代码如下: # 二值化图片 @staticmethod def two_value_img(img_path, threshold): img = Image.open(img_path).convert('L') # setup a converting table with constant threshold tables

LIBSVM多分类问题 参数详解及实例演示

空扰寡人 提交于 2020-08-14 15:47:07
前言 安装包及具体安装步骤,搜博主之前的MATLAB专栏文章 1. 入门案例 1.1 分类的小例子--根据身高体重进行性别预测 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 %% 使用Libsvm进行分类的小例子 %{ 一个班级里面有两个男生(男生1、男生2),两个女生(女生1、女生2),其中 男生1 身高:176cm 体重:70kg; 男生2 身高:180cm 体重:80kg; 女生1 身高:161cm 体重:45kg; 来源: oschina 链接: https://my.oschina.net/u/4352811/blog/4322446

LIBSVM 多分类问题- 葡萄酒种类识别

最后都变了- 提交于 2020-08-14 13:14:56
3.1 原始数据分析 1)测试数据为:wine data set,储存在chapter_WineClass.mat。classnumer = 3;wine,记录了178个样本的13个属性;wine_labels.178×1,记录了178个样本的各自类别标签。 2)数据的可视化:13个指标的属性值即数据的箱式图;数据的分维可视化图。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 % 画出测试数据的分维可视化图 figure subplot (3,5,1); hold on for run = 1:178 plot ( run ,wine_labels( run ), '*' ); end xla 来源: oschina 链接: https://my.oschina.net/u/4369588/blog/4322447

详解TF-Ranking:Google开源的排序框架,应用于邮件检索、推荐系统等场景

和自甴很熟 提交于 2020-08-08 18:35:25
今天分享的是一个有关LTR框架的介绍,LTR是Learning-To-Rank,解决的是排序问题。排序问题在人工智能领域应用很广,比如在Gmail里搜索一个关键词,返回最匹配的邮件。再比如进入Google Drive后的一些文章推荐。 傲海的分享主要参考Google2019年发布的一篇论文《TF-Ranking:Scalable TensorFlow Library for Learning-to-Rank》,蛮长的,看了小一周才学习完。这个库已经开源了,大家可以在下方地址访问并使用: https://github.com/tensorflow/ranking LTR三种模式:Pointwise、Pairwise、Listwise 介绍LTR的话先要讲下Pointwise、Pairwise、Listwise这三个模式的区别,以生活中的一个例子说明: 上图是一个点餐界面,假设我们强制用户只能在界面中点一个菜,那么Pointwise、Pairwise、Listwise是如何构建训练过程的呢: Pointwise:只关心单点的优化,比如用户点了排骨。那么就把排骨构建成正样本,其它菜都是负样本,构建成一个二分类问题,进行训练。Pointwise的问题在于缺少对整个列表的关系属性的挖掘 Pairwise:把优化问题看作两个样本的组合,训练的时候输入的是两个样本的特征组合,返回值比较高的样本

Optimize F-score in e1071 package

…衆ロ難τιáo~ 提交于 2020-06-27 23:03:13
问题 I'm trying to implement a one class SVM using the e1071 package in R. Can somebody give me pointers on how to optimize the F-score using a grid search ? I have tried the tune.svm functions but it has only resulted in high sensitivity or high Specificity. The percentage of positive class which I'm trying to predict is about 1-2% in the general population. The results i get have high accuracy but with a very low F-score: Reference Prediction members Not members members 1 4 Not members 12 983

机器学习(二)—支持向量机SVM

早过忘川 提交于 2020-04-30 03:16:48
1、SVM的原理是什么?   SVM是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。(间隔最大是它有别于感知机) 试图寻找一个超平面来对样本分割,把样本中的正例和反例用超平面分开,并尽可能的使正例和反例之间的间隔最大。   支持向量机的基本思想可以概括为,首先通过非线性变换将输入空间变换到一个高维的空间,然后在这个新的空间求最优分类面即最大间隔分类面,而这种非线性变换是通过定义适当的内积核函数来实现的。SVM实际上是根据统计学习理论依照结构风险最小化的原则提出的,要求实现两个目的:   1)两类问题能够分开(经验风险最小)   2)margin最大化(风险上界最小)既是在保证风险最小的子集中选择经验风险最小的函数。 分为3类支持向量机:   (1)当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;   (2)当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;   (3)当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。   注:以上各SVM的数学推导应该熟悉:硬间隔最大化(几何间隔)—学习的对偶问题—软间隔最大化(引入松弛变量)—非线性支持向量机(核技巧)。 2、SVM的主要特点   (1)非线性映射-理论基础 (2)最大化分类边界-方法核心

机器学习及flinkML算法学习

走远了吗. 提交于 2020-04-18 17:48:24
参考文章: 机器学习及flinkML算法学习 基于Flink流处理的动态实时亿级全端用户画像系统 机器学习概念 机器学习算法根据训练数据(training data)使得表示算法行为的数学目标最大化,并以此来进行预测或者做出决定。机器学习分为分类、回归、聚类等,每种都有不一样的目标。 应用场景和处理流程 所有的算法都需要定义每个数据点的特征(feature)集->输入; 正确的定义特征才是机器学习中最有挑战的部分。 大多数算法都是专为数据特征(就是一个代表各个特征值的数字向量)定义的,因此提取特征并转化为特征向量是机器学习过程中重要的一步。 输入数据分为“训练集”和“测试集”,并且只使用前者进行训练,这样就可以用后者来检验模型是否过度拟合了训练数据。 机器学习流水线会训练出多个不同版本的模型,然后分别对其进行评估。Ml提供几个算法进行模型评估。 常见的算法 分类算法 基于已经被标注的其他数据点作为例子来识别一个数据点属于几个类别中的哪一种;比如判断一封邮件是否为垃圾邮件。 垃圾邮件分类做法: HashingTF 文本数据构建词频特征向量 LogisticRegressionWithSGD 使用随机梯度下降法实现逻辑回归。 监督学习 SVM使用通信高效的分布式双坐标上升(CoCoA) 多元线性回归 优化框架 L-BFGS Generalized Linear Models

字符型图片验证码识别完整过程及Python实现

僤鯓⒐⒋嵵緔 提交于 2020-04-06 00:35:56
字符型图片验证码识别完整过程及Python实现 1 摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越来越严峻。本文介绍了一套字符验证码识别的完整流程,对于验证码安全和OCR识别技术都有一定的借鉴意义。 文章更新:2017-09-20 本文的基于传统的机器学习SVM的源码共享: 介绍文章: http://www.cnblogs.com/beer/p/7279136.html https://github.com/zhengwh/captcha-svm 然后经过了一年的时间,笔者又研究和get到了一种更强大的 基于CNN卷积神经网络 的直接端到端的验证识别技术(文章不是我的,然后我把源码整理了下,介绍和源码在这里面): 基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享) 文章介绍: http://www.cnblogs.com/beer/p/7392397.html 2 关键词 关键词:安全,字符图片,验证码识别,OCR,Python,SVM,PIL 3 免责声明 本文研究所用素材来自于某旧Web框架的网站 完全对外公开 的公共图片资源。 本文只做了该网站对外公开的公共图片资源进行了爬取, 并未越权 做任何多余操作。