机器学习
予亭
活泼开朗,爱好广泛。
展开
-
方差和偏差的理解
偏差定义为模型的输出预测结果的期望与真实结果的差距。用来表示模型的拟合程度,模型越复杂,偏差越小,因为把所有测试集都拟合的很好,包括噪音,模型简单,有些样本数据的拟合就有点大,导致偏差大。方差定义为模型每一次输出结果与期望之间的误差。方差体现的是模型的稳定程度,换个词就是泛化能力,对于异常数据的拟合效果也不会特别差,至少不是很离谱,通常模型简单,方差越小,模型越复杂,方差越大。模型过于复杂反而把噪音数据越拟合了,预测的结果也自然是噪音,数学表达的意思就是于是产生了模型简单:偏差大、方差小模型复原创 2020-09-02 20:20:59 · 773 阅读 · 0 评论 -
FM算法:因子分解机
前言在一些特征极度稀疏的情况下,甚至是one-hot编码下,也很难对整个模型起到作用,但如果组合分析,可能会对拟合数据起到作用,但是如何特征组合?组合的依据是什么?本文就来讲解这些。场景在电影的推荐场景中,用户的维度特别大,电影的维度也非常大,例如下图:特征中:前四列表示用户u(one-hot编码,稀疏)五列表示电影i(ont-hot编码,稀疏)五列表示用户u对电影i的打分(归一...原创 2020-07-16 18:51:51 · 253 阅读 · 0 评论 -
GBDT梯度提升树
前言GBDT的全称是Gradient Boosting Decision Tree,Gradient Boosting和Decision Tree是两个独立的概念。GBDT算法Boosting讲解Boosting的概念很好理解,意思是用一些弱分类器的组合来构造一个强分类器。因此,它不是某个具体的算法,它说的是一种理念。和这个理念相对应的是一次性构造一个强分类器。像支持向量机,逻辑回归等都属...原创 2020-06-24 11:58:15 · 230 阅读 · 0 评论 -
2020腾讯广告大赛 :13.5 baseline
前言数据集有点大,大概是3千万的数据,1G左右,如果用机器学习方法,预计需要内存32G左右,至少需要24G,或者自己分批慢慢跑特征,很多人用自然语言处理的时序模型来做本次比赛,需要的机器会更高一些,是在没机器跑了。本代码是在腾讯钛平台上跑的,用的8核32G的机器。关于腾讯钛平台这个平台代码和数据是分开的,代码可以在notebook平台、可视化拖拽机器平台等部署,这两种方式都可以,我这里利用的notebook平台,界面如下:这里要强调一下,数据集是在COS存储平台,notebook会打通存储平台,通原创 2020-06-21 17:08:38 · 685 阅读 · 0 评论 -
小白学习CTR推荐算法模型:GBDT+LR
前言晚上很多内容讲解LGBT+LR的推荐系统,但是很多都讲解的都过于自然,很多都省略了,本文从小白角度来慢慢分析。包括代码分析等等。问题是什么CTR全称是click-through rate,中文名叫点击率,它是怎么回事呢?就是给一个样本,这个样本的标签是一个0或者1的值,1表示用户会点击,0表示用户不会点击,数据集中有很多0、1的数据,这些数据用来训练,其实可以看作一个预测的二分类任务。思路很多博客都有提到这个思路,大致就是把GBDT选择的叶子节点拿来做one-hot特征,类似在原来基础上再做特原创 2020-06-20 23:41:37 · 1232 阅读 · 0 评论 -
Xgboost生成Feature
了解了一个新的方法坐下记录,不过发现这样新特征加入之后,训练的结果并没有提升非常多。from sklearn.model_selection import train_test_splitfrom pandas import DataFramefrom sklearn import metricsfrom sklearn.datasets import make_hastie_10_2from xgboost.sklearn import XGBClassifierimport xgbo原创 2020-05-18 23:22:22 · 443 阅读 · 0 评论 -
SVM:通俗易懂的SMO算法
SMO算法首先我们再写一下带核函数的优化目标:min⏟a12∑i=1m∑j=1maiajyiyjK(xi,xj)−∑i=1mais.t∑i=1mai=00≤ai≤C\underbrace{min}_{a} \frac{1}{2}\sum_{i=1}^m \sum_{j=1}^m a_ia_jy_iy_jK(x_i,x_j)-\sum_{i=1}^ma_i\\s.t \sum_{i=1}^ma_i=0\\0\le a_i \le Camin21i=1∑mj=1∑maiajyiyj原创 2020-05-11 14:50:32 · 1269 阅读 · 0 评论 -
基于决策树的算法问题解惑:ID3、C4.5 、CART树
ID3算法ID3算法就是用信息增益来判断当前节点应该用什么特征来构建决策树。信息增益大,则越适合用来分类。它计算每一个特征的信息增益,增益最大的特征作为分裂特征,该特征每一个值都是一个子节点,这样所有样本就被分到了子节点上,然后对每一个子节点上的样本再分裂,之前已经分裂的特征就丢弃了,也不起作用了。它的缺点:a)ID3没有考虑连续特征,比如长度,密度都是连续值,无法在ID3运用。这大大...原创 2020-03-25 18:52:09 · 704 阅读 · 0 评论 -
模型融合Blending 和 Stacking
前言机器学习中很多训练模型通过融合方式都有可能使得准确率等评估指标有所提高,这一块有很多问题想学习,于是写篇博客来介绍,主要想解决:什么是融合?几种方式融合基本的模型融合组合及适用场景、优缺点等什么是融合?构建并结合多个学习器来完成学习任务,我们把它称为模型融合或者集成学习。不同的模型有各自的长处,具有差异性,而模型融合可以使得发挥出各个模型的优势,让这些相对较弱的模型(学习器)通...原创 2020-03-03 00:19:54 · 5682 阅读 · 0 评论 -
支持向量机SVM:原理讲解+手写公式推导+疑惑分析
本文是需要一定基础才可以看懂的,建议先看看参考博客。SVM-统计学习基础一开始讲解了最小间距超平面:所有样本到平面的距离最小。而距离度量有了函数间隔和几何间隔,函数间隔与法向量www和bbb有关,www变为2w2w2w则函数间距变大了,于是提出了几何距离,就是对www处理,除以∣∣w∣∣||w||∣∣w∣∣,除以向量长度,从而让几何距离不受影响。但是支持向量机提出了最大间隔分离超平面,这似乎...原创 2019-05-12 18:18:27 · 1731 阅读 · 0 评论 -
支持向量机 - 软间隔最大化
前言之前写的一偏文章主要是SVM的硬间隔,结合SVM拉格朗日对偶问题可以求解得到空间最大超平面,但是如果样本中与较多的异常点,可能对样本较敏感,不利于模型泛化,于是有了软间隔的支持向量机形式,本文来了解一下此问题。软间隔最大化引入松弛变量,使得一部分异常数据也可以满足约束条件:yi(xi+b)>=1−εiy_i(x_i+b) >=1 - \varepsilon_iyi(xi+...原创 2020-01-18 18:22:21 · 421 阅读 · 0 评论 -
支持向量机(SVM)中的对偶问题
前言在SVM中有一个求极小值的问题转换过程,转换为一个对偶问题,但是我不太清楚这个问题为什么可以转换,而且还不太清楚为什么这么转换?不太明确转换后有什么优点,写个文章来了解这些内容。对偶问题转换min12∣∣w∣∣2s.t.yi(xi+b)>1i=1,2...,n\min \quad \frac{1}{2} ||w||^2 \\s.t. \quad y_i(x_i...原创 2020-01-18 15:55:20 · 6632 阅读 · 1 评论 -
最简单的机器学习入门:线性回归
前言线性函数用来做回归、做分类其实是数学内容应用与时间的一个简单方法,其实这个高中生都可能会了解,只不过针对批样本用到了矩阵,会涉及到一些线性代数内容。让我们来了解一下这个数学背后的逻辑。简单的y=wx+b直线函数表达式我们知道这是一关于x的直线函数,给出x的值就可以知道y是多少,思考这么一个问题:正序逻辑:告诉你w、b的值,你就知道线性公式了,我们可以给出很多x的值,每个x值都有一个对...原创 2020-01-10 13:00:33 · 578 阅读 · 0 评论 -
数据清洗遇到的问题思考
因为本次任务是基础的数据预处理和数据集划分,所以本次讨论不涉及特征工程和模型相关的。问题一 缺失数据有很多人问到了缺失值处理的问题。统一汇总提问:为什么需要处理缺失值?确实值会影响模型训练,某些特征值确实,有可能使得该条样本完全是负样本,影响模型。缺失率大于多少时应当抛弃该特征?一半比例的数据可以丢弃缺失值填充有哪些方法?缺失值填充方法:特殊值、均值、中位数、众数等...原创 2019-08-06 22:37:00 · 3598 阅读 · 0 评论 -
基于协同过滤的推荐算法
前言基于协同过滤的推荐参考博客原创 2019-12-31 09:48:24 · 1696 阅读 · 0 评论 -
TextRank算法:提取关键词+摘要
前言TextRank算法是基于PageRank的思想用在来文本领域,具体的PageRank算法可以参考我的博客:PageRank 页面排名算法。接下来就让我们了解一下怎么用在文本领域。概念PageRank有节点、入链的概念,那么在文本领域怎么类比呢?节点:可以是句子,也可以是关键词入链、出链:textRank默认所有句子之间都是互相链接的,相当于每一个句子都是N-1的句子关联。句子...原创 2019-12-22 18:04:32 · 713 阅读 · 0 评论 -
PageRank 页面排名算法
前言写这篇文章主要是为了后面的TextRank算法做铺垫,所以我会非常简短的描述,可能读者理解起来有一点费劲。PageRank佩奇排名(PageRank),又称网页排名、谷歌左侧排名、PR等,是Google公司所使用的对其搜索引擎搜索结果中的网页进行排名的一种算法。是Google创始人拉里·佩奇和谢尔盖·布林于1997年构建早期的搜索系统原型时提出的链接分析算法,PageRank是Goo...原创 2019-12-22 16:32:00 · 2473 阅读 · 0 评论 -
2019 CCF 乘用车细分市场销量预测 - 分析
前言比赛提供了60个车型在22个省份,从2016年1月至2017年12月的销量。参赛队伍需要预测接下来4个月(2018年1月至2018年4月)的汽车销量,额外提供了搜索数据、新闻及评论数据。这个数据是做额外的分析作用的。思路大体思路就是提取特征,利用前n个月数据预测本月数据。依次来得到4个月的预测数据,例如先预测1月份数据,再利用1月份数据得到2月份特征,用来预测2月的销量,这样误差就传...原创 2019-12-16 21:46:51 · 1580 阅读 · 2 评论 -
kaggle 入门一些问题
前言最近研究一下kaggle机器学习平台,这个凭条最大可提供16G的内存,还有CPU等资源使用,非常不错,想着来学习一下。读取数据集kaggle支持多种数据集,你可以自己上传数据集,也可以用别人上传的数据集,也可以用平台提供的数据集,非常多的选择,而且如果你上传的数据集跟别人是一样的,平台还会提示你,让你用已有的数据集,避免重复的数据集。...原创 2019-11-18 09:32:40 · 1858 阅读 · 1 评论 -
数据挖掘 - task 3: 各类分类算法
前言用逻辑回归、svm和决策树;随机森林和XGBoost进行模型构建,评分方式任意,如准确率等。决策树随机森林XGBoost参考博客原创 2019-08-11 12:51:53 · 249 阅读 · 0 评论 -
机器学习 评测指标 - 问题思考
这些问题大家可以看下:问题一 评价的指标中如何结合着来看?指标与指标间会有什么样的关系?问题二 如何通过各个指标选择最好的模型?本业务中该选择那种评价指标最合适?不同的评价指标的选择场景?问题三 多分类的情况下,混淆矩阵的召回率,精准率怎么表示比较友好?问题四 二分类问题对其中一个类别准确率较低的原因是什么,是由于上采样破坏了原数据的分布吗?一般有什么方法解决?问题五 模型评估是算的准确...原创 2019-08-15 22:53:58 · 318 阅读 · 0 评论 -
交叉验证 (Cross-Validation) - CV
交叉验证这不是某一个方法的名称,而是一类方法的统称,主要形式是把训练集分成两部分,一部分是用来训练模型,另一部门用来验证模型,相当于一份数据集被分为训练集和验证集,这样做主要是因为数据集中可能会有一些样本不平衡导致模型过拟合,增加验证集来验证模型,通过这种方法来了解模型的泛化能力。普通验证方法按比例将数据集划分,比如8:2、7:3这样的比例将数据集划分,大的一头数据集用来训练,少的数据用来验...原创 2019-08-26 22:07:41 · 4409 阅读 · 0 评论 -
聚类算法总结 - 优缺点对比
前言聚类算法是一种无监督的算法,由于不需要训练集,算法简单快速,引用在一些工程里比较简单突出,今天来了解一下聚类算法。k-means算法(k均值算法)算法步骤:(1)随机选取 K 个点,作为 K 类的聚类中心,用 KiK_iKi表示(2)遍历所有的数据点 PjP_jPj,通过计算距离,找到距离 PjP_jPj 最近的聚类中心点 KiK_iKi,此时可以说第 j 个数据属于...原创 2019-08-27 09:55:19 · 50982 阅读 · 0 评论 -
使用谷歌 colab 平台来训练机器学习模型、深度学习模型
前言免费的机器学习资源平台,自己电脑跑不动的模型,可以尝试在谷歌colab平台跑实验,不过感觉还是比不上阿里天池的机器资源,人家可是16G的内存呀!不过感觉人家这个更加方便。谷歌云盘谷歌这个colab是基于云盘的,你的所有代码都在云盘里,如果你要编辑代码,则使用谷歌的...原创 2019-08-29 09:41:09 · 4875 阅读 · 3 评论 -
关于数据集不平衡的处理方式
前言最近在学习机器挖掘内容,其中有一个问题应该是大家都会碰到的问题,就是如果样本数据中类别样本个数相差巨大该如何处理,比如,A类别100个样本,B类别10000个样本。这样类别差别训练模型实际效果并不理想。所以需要一个方法来解决这个问题。技巧欠采样(undersampling)和过采样(oversampling)会对模型带来怎样的影响?这篇文章讲解了很多东西,其实大家可以看看,其中也有用模型...原创 2019-09-02 09:50:16 · 1375 阅读 · 0 评论 -
特征筛选问题思考
前言提取了很多特征,但是这些特征那些是有效的呢?那些特征是可以剔除的呢?基于此问题,本博客来讨论一下。参考博客原创 2019-09-09 01:01:15 · 299 阅读 · 0 评论 -
python pandas的groupBy 使用
需求想看着两个列作为分组key的情况下得到一个词典,这样可以方便来转换数据。代码代码 可以来看下df = pd.DataFrame({'A': ['a', 'b', 'a'], 'B': ['b', 'a', 'c'], 'C': [1, 2, 3]})print(df)key = ['A','B']#group = df.groupBy(ke...原创 2019-10-02 23:42:38 · 1633 阅读 · 0 评论 -
技巧:pandas处理操作集合
nan判断及处理利用pd.isnull(x) 对nan数据的处理def tranNanToFive(x): if pd.isnull(x): return 200 return xdfNewTwo['c'] = dfNewTwo['c'].map(tranNanToFive) 可以有效的nan数据转换,当然也可以删除列数据为nan的行数据,例如如下:...原创 2019-10-04 21:52:23 · 2225 阅读 · 0 评论 -
kaggle下载代码运行后的结果文件
问题kaggle代码写好了,模型结果也输出到指定文件,可是现在不知道文件在哪里下载,这个与天池实验室的操作不同,网上找的资料也没有直接回答这类问题的,不过有些博客还是给了一点提示,本文来直接讲述这个问题。解决kaggle上 notebook 其实可以分为两个过程:调试、上线。调试阶段就是你在不停的写代码、运行代码等过程,上线过程是commit 过程,就是你代码写好了,也调试OK,现在可以上线...原创 2019-10-09 09:56:43 · 9366 阅读 · 1 评论 -
特征选择 - 一些问题思考
前言参加了一个学习小组,大家一起思考问题,正好讨论特征选择的问题,就记录一下,很多问题的思考还是比较好的,希望可以帮助大家,也感谢一些讨论的小伙伴。问题:特征选择的方法特征选择时有过滤法、包装法,集成法,这些方法在应用的时候有没有什么特别的应用场景,还是随机选择?(1)过滤法:有方差筛选、相关系数、卡方检验和互信息等,方差筛选可以剔除方差为0的无用信息;相关系数主要用于监督学习中,设定阈...原创 2019-08-10 11:15:29 · 714 阅读 · 0 评论