★★★机器学习
文章平均质量分 75
ML相关
维格堂406小队
人天生都是软弱的,唯其软弱而犹能承担起苦难,才显出人的尊严。
展开
-
FE01_OneHot-Python应用
Intro onehot的操作,解决两个问题:可以把列名关联上去可以处理之前的value数据构造import pandas as pddf=pd.DataFrame({"id":[1,2,3,4],"grade":["A","B","A","C"],"class":[ "1班","2班","3班","1班"]})pd.get_dummiescategory_feature=["grade","class"]pd.concat([df,pd.get_dummies(df[categ原创 2022-01-12 17:46:40 · 293 阅读 · 0 评论 -
Boosting之GBDT源码分析
对数损失函数 LR中,求参数时用到了极大似然,即求得某些参数使得已知样本出现的概率最大。对于分类问题,训练集我们已知label,如果所有样本都预测准确,那么y^=y\hat{y}=yy^=y。即:y=0y=0y=0,P(Y∣X)P(Y|X)P(Y∣X)尽可能接近0y=1y=1y=1,P(Y∣X)P(Y|X)P(Y∣X)尽可能接近1则目标为:∏i=1N[P(Y=1∣X=xi)]yi[1−P(Y=0∣X=xi)]1−yi\prod_{i=1}^{N}\left[P\left(Y=1|X=x_{i原创 2021-05-18 20:36:29 · 360 阅读 · 0 评论 -
MeanShift聚类-02python案例
Intro Meanshift的使用案例~数据引入from sklearn.cluster import MeanShift, estimate_bandwidthimport matplotlib.pyplot as pltfrom itertools import cycleimport numpy as npimport warningswarnings.filterwarnings("ignore")%matplotlib inlinefrom sklearn.dataset原创 2021-04-02 14:58:28 · 513 阅读 · 1 评论 -
MeanShift聚类-01原理分析
Intro 工作中用到了meanshift,不追溯太复杂的原理以及各种算法变体,原始paper等等。只从概念上,对原理做简要的总结和介绍。主要逻辑,参考sklearn的源码。和常用k-means一样,meanshift也是一个迭代算法。我们关注的无非以下几点:迭代的逻辑,按照什么方式进行迭代迭代终止的条件怎么给样本打label主要逻辑sklearn的代码逻辑如下:初始化:生成bandwidth和seeds。如果没有指定bandwidth和seeds,会根据样本生成并行化完成所有se原创 2021-04-02 14:53:19 · 272 阅读 · 0 评论 -
回归评估指标-Python实现
常用回归模型评估指标的python计算逻辑。python和相关package版本:import sysimport sklearnimport pandas as pdimport numpy as npimport math print("Python版本:",sys.version)print("sklearn版本:",sklearn.__version__)print("pandas:",pd.__version__)print("numpy:",np.__version__)P原创 2020-06-19 14:37:47 · 920 阅读 · 0 评论 -
回归评估指标-总结
回归问题也有N多评估指标,介绍一些常用的指标。真实值用yyy表示,y^\hat{y}y^表示预测值MAEMAE(Mean Absolute Error)平均绝对误差MAE=1n∑i=1n∣yi−yi^∣MAE=\frac{1}{n} \sum_{i=1}^{n}\left|y_{i}-\hat{y_{i}}\right|MAE=n1i=1∑n∣yi−yi^∣MSEMSE(Mean Square Error)平均平方差/均方误差MSE=1n∑i=1n(yi−yi^)2MSE=原创 2020-06-19 14:36:33 · 832 阅读 · 0 评论 -
Learning R---randomForest
随机森林据说工业中应用很广,正巧工作中也在尝试使用。 主要基于R语言函数包randomForest ,对参数设置以及相关内容做记录和总结。一、随机森林简介理论部分,有空好好学习下。完了,整理好。 二、函数简介1、randomForest主函数,随机森林算法实现分类和回归。该函数执行的是Breiman的随机森林算法(基于原来的Fortran代码)。也可以用以评估数据点之间的相似性。randomFo原创 2017-11-10 16:01:43 · 2421 阅读 · 0 评论 -
FE01_OneHot-R应用
之前处理类别型变量都没有做处理,甚至没想过做啥变换,我这个建模大概是假的吧。Dummy Variable虚拟变量的含义虚拟变量又称虚设变量、名义变量或哑变量,用以反映质的属性的一个人工变量,是量化了的质变量,通常取值为0或1。引入哑变量可使线形回归模型变得更复杂,但对问题描述更简明,一个方程能达到俩个方程的作用,而且接近现实。虚拟变量的作用最开始用树的模型没有考虑过要处理类别型变量,...原创 2020-04-02 14:21:51 · 265 阅读 · 0 评论 -
FE01_OneHot-Scala应用
OneHot是处理类别型变量常用的处理方法,scala中如果应用呢?如果测试集中出现训练集中没有value,怎么处理?1 数据构造import org.apache.spark.ml.{Model, Pipeline, PipelineModel, PipelineStage}import org.apache.spark.ml.classification.LogisticRegres...原创 2020-04-02 11:31:24 · 484 阅读 · 0 评论 -
模型调参-网格搜索Scala实现
本文主要内容如下:介绍Scala中使用网格搜索的流程使用Pipeline对代码做简单的整合网格搜索采用并行网格搜索输出每个超参组合的avgMetric对源码做一点解析版本信息:<scala.version>2.11.12</scala.version><spark.version>2.4.3</spark.version>数...原创 2020-03-25 19:47:20 · 629 阅读 · 0 评论 -
二分类模型评价指标-Scala实现
本文主要使用Scala计算二分类模型的评价指标,包括以下内容:precision、recall、F1ScoreaccuracyAUCKS对上述指标计算方法进行封装,方便调用。传入参数为预测的数据框构造数据简单的构造数据,得到预测的DataFrame,其包含预测的概率、label和真实的label。import org.apache.spark.ml.{Model, Pipeli...原创 2020-03-25 19:24:15 · 1287 阅读 · 0 评论 -
交叉验证-Python应用
主要介绍Skearn中交叉验证的相关函数:数据切分函数交叉验证函数 部分交叉验证函数是和网格搜索等调参方法一起用的,此文不涉及,另Package版本:Sklearn版本为0.22Pandas版本0.23.4Numpy版本1.17.4数据划分train_test_split随机把数据划分为成两部分,先看helpimport pandas as pdimport n...原创 2020-03-24 19:50:26 · 995 阅读 · 0 评论 -
交叉验证-原理小结
交叉验证是模型调参时常常借助的工具和方法,本文整理交叉验证相关内容。定义和概念训练集、验证集、测试集 如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分别为训练集(training set) 、验证集(validation set)和测试集(test set)。其中:训练集用来训练模型验证集用于模型的选择测试集用于最终对学习方法的评估 在学...原创 2020-03-24 19:48:36 · 1476 阅读 · 2 评论 -
Pipeline-Scala应用
Pipeline可以端对端的输出模型结果,中间DataFrame的转换、预处理等等都收归在Pipeline的各个stage中。相对而言,比较简洁和方便。用LR把Pipeline的整体流程跑通。import org.apache.spark.ml.{Model, Pipeline, PipelineModel, PipelineStage}import org.apache.spark.ml.t...原创 2020-03-24 19:40:53 · 567 阅读 · 0 评论 -
IsolationForest-02Python案例
Intro sklearn中IsolationForest使用,包括参数说明和实际案例。 简述下算法思想: 随机选择特征,在该特征的maximum和minimum中随机选择切分值(split value)。如此递归划分,形成树。根节点到终止节点(叶子结点)的长度,等价于split的次数。对于多棵树,计算平均长度,可以反映样本异常的程度。即异常样本通常较快被划分到叶子结点,因而路径长度较小。...原创 2020-01-15 14:14:33 · 2663 阅读 · 2 评论 -
IsolationForest-03Sklearn源码
Intro 分析sklearn的IsolationForest源码,搞清楚代码结构和样本异常得分的计算逻辑。目前对python类、方法等概念不是很了解,只从直观上解释代码。查看源码的方式 建议直接用Pycharm,方便代码跳转查看。可以copy一个副本在相同目录下,如_iforestTest.py,后面可以直接在这个脚本里做注释。另外可以在该脚本中加入print语句,观察过程性数据。基...原创 2020-01-15 14:07:54 · 743 阅读 · 0 评论 -
IsolationForest-01原理
Intro 2008年刘飞、周志华等提出Isolation Forest算法,iforest不借助类似距离、密度等指标去描述样本与其他样本的差异,而是直接去刻画所谓的疏离程度(isolation)。该算法简单、高效,在工业界应用较多(好像没有看到很多case)~ Isolation Forest算法的逻辑很直观,算法采用二叉树对数据进行split,样本选取、特征选取、split value...原创 2020-01-15 14:03:13 · 429 阅读 · 0 评论 -
【转载】斯坦福大学机器学习——朴素贝叶斯
## **转载声明** 这位博主的文章相当好,点赞![http://blog.csdn.net/linkin1005/article/details/39025879](http://blog.csdn.net/linkin1005/article/details/39025879)首次听说朴素贝叶斯是在吴军的google黑板报数学之美专题,统计语言模型一章中谈及。其后,吴信东在我们学...转载 2017-08-17 23:16:56 · 371 阅读 · 0 评论 -
机器学习基石---Linear Models for Classification
三种线性模型的比较 先对比Linear Classification、Linear Regression、Logistic Regression: 1. Linear Classification模型 * 输出结果是评分结果ss的符号 * 误差衡量为0/1 error * cost function 是NP-hard问题 2. Linear Regression模型原创 2018-02-06 16:35:42 · 413 阅读 · 0 评论 -
Boosting之Adaboost原理
Boosting之Adaboost原理1 Boosting框架 Boosting可以看成多个不同的基分类器的线性加权和的形式,那么自然需要知道每个基分类器及其对应的权重,具体的算法逻辑见下图。 如上图所示,在boosting算法中每一个基分类器都依赖于前面已经生成的基分类器,所以Boosting是一种迭代的算法。根据基分类器迭代方式和权重的不同,Boosting可以分为...原创 2018-04-26 17:52:27 · 620 阅读 · 0 评论 -
Boosting之Adaboost简单实现
《机器学习实战》第七章,Adaboost的实现。有两个问题: 1. 基分类器是用的是单决策树桩,选择最好的分类器是遍历所有可能,挑选加权误差最小的那个单决策树桩。实际应用应该选择普通CART树做基分类器,那么权重对基分类器的影响总不能遍历所有可能存在的决策树情况。这里的逻辑需要再确认 2. 如果基分类器的加权误差大于0.5,这里比较方式有大于和小于,所以不存在小于0.5的情况,如果存在小于0.5原创 2018-04-26 20:12:51 · 326 阅读 · 0 评论 -
Boosting之Adaboost应用
前面两篇笔记Boosting之Adaboost原理和Boosting之Adaboost简单实现主要介绍了Adaboost在二分类中的理论和简单实现,本文主要关注Python中Sklearn相关函数的调用,有空的话写写R的相关内容,主要参考资料是Sklearn的文档。 Python训练Adaboost分类模型 原理部分已经解释过,Adaboost模型可以看成加法模型,那么Adaboost的参数可以原创 2018-04-29 19:53:06 · 703 阅读 · 0 评论 -
Boosting之GBDT原理
前面介绍了Adaboost的相关原理,实现,应用,本文主要介绍Boosting算法的另外一个重要算法:GBDT(Gradient Boosting Decison Tree)。GBDT有很多简称,有GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ), GBRT(Gradient Boosting Regression Tree),...原创 2018-05-24 14:22:56 · 815 阅读 · 1 评论 -
二分类模型评价指标-Python实现
Sklearn的metrics模块下有多个计算模型评价指标的函数,本文只介绍二分类的指标函数。 1.准确率1.1参数说明sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None) 解释 参数 y_true 真实的label,一维数组...原创 2018-07-16 12:43:52 · 10358 阅读 · 2 评论 -
模型调参-网格搜索
调参中的参数是指模型本身的超参数,而不是求解目标函数可以得到的参数解析解。常用的方法是网格搜索,所谓的网格搜索可以理解成穷举法。而现实中,我们往往不能穷举所有的参数的组合。因此需要对部分参数,在一定范围内调参。具体的调参逻辑依赖于参数在不同算法中的数学含义。本文简单介绍网格搜索的逻辑,实际的应用需要结合算法和业务场景。 1.网格搜索 网格搜索是传统并且常用的超参数优化方法,一般...原创 2018-07-16 16:41:40 · 974 阅读 · 0 评论 -
模型调参-网格搜索Python实现
网格搜索的思想很直观,`sklearn`中有封装好的函数供调用。 1. 版本信息Python和sklearn的版本信息如下: 1. Python版本 3.6.3 Anaconda 2. Sklearn版本 0.19.1 2. 参数2.1 输入参数 参数 解释 Parameters estimator 估计器,也就是sle...原创 2018-07-16 18:47:10 · 1668 阅读 · 0 评论 -
遗传算法---原理
挖坑待埋—原创 2019-06-25 09:32:20 · 195 阅读 · 0 评论 -
遗传算法---Python实现
挖坑待埋原创 2019-06-25 09:33:27 · 360 阅读 · 0 评论 -
遗传算法---Python调包
挖坑待填原创 2019-06-25 09:34:19 · 692 阅读 · 0 评论 -
他山之石-BDCI2018供应链需求预测
主要学习top1和top2方案的方法和思路原创 2019-07-30 13:23:46 · 507 阅读 · 0 评论 -
Decison Tree
基本概念的定义、解释、总结。 相关概念1、信息量 只能通俗地讲下,随机变量XXX存在多个取值,如果一个事件发生概率为1,那么他一定会发生,完全没有信息量。概率越小的事件(取值)发生时,它所含的信息量越大。(参考统计学里的p-value,所谓事出反常必有妖)。可以想到信息量和事件发生的概率成正比。 定义:出现概率为p的消息所含的信息量。 I=−log(p)I=−l...原创 2018-04-07 18:07:00 · 220 阅读 · 0 评论 -
机器学习基石---第二周PLA
knitr::opts_chunk$set(echo = TRUE) 台大《机器学习基石》第二周课的笔记,只整理部分重要内容。希望能把课上学的,做一个精简的记录。 变量说明 存在两类数据,标记为yy,取值为−1,1{-1,1}。特征向量记为xx,x=(x0,x1,x2,...,xd)x=(x_0,x_1,x_2,...,x_d)。其中x0x_0为常量1,其余为具体特征值。存在原创 2017-12-19 15:27:17 · 539 阅读 · 0 评论 -
机器学习基石---Why Can Machines Learn(Part3)
knitr::opts_chunk$set(echo = TRUE)1 前文回顾 Part2主要探讨M" role="presentation">MMM的数值对learning的影响。并且得出如果M" role="presentation">MMM有限,learning可能是可行的,因为此时满足Ein≈Eout" role="presentation">Ein≈Eout原创 2018-01-29 16:36:02 · 216 阅读 · 0 评论 -
MDS多维尺度分析
挖坑,周末填!2017-11-16原创 2017-11-16 10:32:15 · 1032 阅读 · 0 评论 -
用R建立集成学习模型(boosting、bagging、stacking)
原文地址:https://machinelearningmastery.com/machine-learning-ensembles-with-r/集成学习能够提升准确率,而本文将会介绍如何用R建立三种高效的集成学习模型。 本次案例研究将手把手地教你实现bagging、boosting、stacking,以及展示如何继续提高模型的准确率。 让我们开始吧!提高模型的准确率给特定的数据集找到性能优秀翻译 2017-10-10 17:26:46 · 11665 阅读 · 11 评论 -
朴素贝叶斯
先看下面的内容,主要是CS299中朴素贝叶斯的内容,有博主写的很详细,就直接搬运过来了。本文主要是参数求解的内容 【转载】斯坦福大学机器学习——朴素贝叶斯 【转载】朴素贝叶斯算法原理小结 指标含义和说明条件独立性假设or类内独立性目标函数参数求解原创 2017-08-19 17:01:37 · 240 阅读 · 0 评论 -
【转载】朴素贝叶斯算法原理小结
这位博主写的很好,可以移步此处http://www.cnblogs.com/pinard/p/6069267.html转载 2017-08-19 15:40:57 · 262 阅读 · 0 评论 -
Logistic回归
Part1:优缺点优:直接对分类的可能性进行建模,无需事先假设数据分布。对率函数是任意阶可导的凸函数,方便求解 缺:对自变量的多重共线性比较敏感,预测结果呈S型分布,变化率越来越小,导致很多区间的变量变化对目标概率没有区分度 优点:计算代价不高,易于理解和实现。 缺点:容易欠拟合,分类精度可能不高。 适用数据类型:数值型和标称型数据。 from 周志华《机器学习》 1、无需事先假设数据分原创 2017-06-11 10:46:11 · 1050 阅读 · 0 评论 -
【转载】斯坦福大学机器学习——高斯判别分析
## 转载声明这位博主的文章相当好,点赞![http://blog.csdn.net/linkin1005/article/details/39054023](http://blog.csdn.net/linkin1005/article/details/39054023)同朴素贝叶斯一样,高斯判别分析(Gaussian discriminant analysismodel, GDA)也是一种转载 2017-08-09 21:43:16 · 351 阅读 · 0 评论 -
生成模型和判别模型
摘自李航《统计学习方法》监督学习的任务学习一个模型,应用这一模型,对给定的输入预测相应的输出。 这个模型一般的形式为决策函数: Y=f(X) 或者条件概率分布: P(Y|X) 监督学习的方法又可以分为:生成方法和判别方法。所学到的模型又称为生成模型和判别模型生成学习方法定义由数据学习联合概率分布P(X,Y)【通常是通过P(X,Y)=P(X|Y)P(X)】,然后求出条件概率分布P(Y|X)作原创 2017-08-08 21:07:31 · 312 阅读 · 0 评论