
机器学习算法
在路上0616
不在互联网公司了,但是敲代码的技能还在!
展开
-
lightgbm 训练模型代码
import lightgbm as lgbimport pandas as pddef lgb_train(x_train, y_train, x_test, y_test): clf = lgb.LGBMClassifier( boosting_type='gbdt', # num_leaves=31, num_leaves=31, reg_alpha=0.05, reg_lambda=1.5, .原创 2021-10-19 21:08:49 · 762 阅读 · 0 评论 -
python加载xgb模型文件,并查看特征重要性
加载模型import xgboost as xgbmodel = xgb.Booster({'nthread':1})model.load_model("./card_xgb_model_v5")# 查看模型重要性sorted([(i,v) for i,v in model.get_fscore().items()],key=lambda x:x[1])结果如下:[………,('f63', 396), ('f65', 397), ('f56', 405), ('f62',原创 2020-06-10 10:46:51 · 3686 阅读 · 2 评论 -
spark分布式平台训练xgboost一个需要注意的地方
经过transform转换之后,会出现如下几列,其中rawPrediction的值,文档解释是的边距,有点抽象:举个例子来说,我用鸢尾花训练数据transform之后的结果如下[[5.0,2.0,3.5,1.0],2.0,[-0.18701201677322388,-0.18626302480697632,1.2945261001586914],[0.156238853931...原创 2020-04-09 11:24:44 · 900 阅读 · 0 评论 -
pandas数据判断是否为NaN值的方式
实际项目中有这样的需求,将某一列的值,映射成类别型的数据,这个时候,需要我们将范围等频切分,或者等距切分。具体的做法可以先看某一些特征的具体分布情况,然后我们选择合适的阈值进行分割。def age_map(x): if x < 26: return 0 elif x >=26 and x <= 35: return 1 ...原创 2018-09-26 08:49:29 · 81363 阅读 · 0 评论 -
从POI点找到边界
工作中有这样的一个需求,通过历史订单的经纬度点,进行一个聚类,聚之后我们需要找到它的边界点存储。聚类的操作有基于Kmeans的和DBSCAN的密度聚类,只是这里需要注意,经纬度点的聚类需要用到距离的计算,不能简单的作为欧式距离或者曼哈顿距离。因为地球是一个球面,在根据经纬度点计算距离的时候,需要先把点投放到平面上,才能保证计算的距离是有意义的,因此,需要根据两个经纬度点计算距离的时候,如下的计...原创 2018-09-02 12:42:16 · 1564 阅读 · 0 评论 -
PCA的过程
操作流程:1、去除平均值,让每一维特征减去各自特征的平均值2、计算协方差矩阵如果数据是三维的,那么协方差矩阵是这样的。主对角线上是方差,非对角线是两两元素的协方差。协方差的绝对值越大,对彼此的影响就越大。3、计算协方差矩阵的特征值与特征向量4、对特征值从大较小的排序5、选择最大的K个特征值,对应的特征向量6、将数据转换到K个特征向量构建的新空间中。具体做法是...原创 2018-08-09 09:22:24 · 5409 阅读 · 1 评论 -
LR为什么取log损失函数,又为什么在似然函数计算之后取对数
在学习和做项目的过程中,逐渐加深了对LR的理解。其中最重要的一点就是为什么取-log函数为损失函数,损失函数的本质就是,如果我们预测对了,能够不惩罚,如果预测错误,会导致损失函数变得很大,也就是惩罚较大,而-log函数在【0,1】之间正好符合这一点,另外还有一点需要说明,LR是一种广义的线性回归模型,平方损失函数的话,对于Sigmoid函数求导计算,无法保证是凸函数,在优化的过程中,求得的解有可能...原创 2018-03-28 10:44:38 · 4940 阅读 · 3 评论 -
利用Python将数值型特征进行离散化操作
data = np.random.randn(20)factor = pd.cut(data,4)pd.get_dummies(factor)0 0 0 0 11 1 0 0 02 0 0 0 13 0 0 1 04 1 0 0 05 0 1 0 06 0 1 0 07 0 1 0 08 0 0 1 09 0 1 0 010 0 0 0 111 0 1 0 01...原创 2018-03-24 17:15:02 · 3961 阅读 · 0 评论 -
sklearn中填补缺失值的方法
from sklearn.preprocessing import Imputer填补缺失值:sklearn.preprocessing.Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True)主要参数说明:missing_values:缺失值,可以为整数或NaN(缺失值numpy.n...原创 2018-03-10 19:15:48 · 8327 阅读 · 3 评论 -
对于机器学习的几点理解
1、机器学习,我对它的理解就是,通过少量的编程,能够赋予计算机自我解决问题的能力,本质是一种预测。2、机器学习的概念和技术发展了好些年了,这两年和深度学习一起成为技术中的佼佼者。但是机器学习不是万能的,也是比较麻烦的。 说它不是万能的是因为,有些问题的模式,通过机器学习算法没办法解决,问题本身没有规律,没有固定的分布,你让机器如何学习。因此我们要正确的看待机器学习,理智一些。 说它麻烦...原创 2018-02-21 18:25:25 · 4952 阅读 · 0 评论 -
总结一下这几个月实习的项目
第一个项目是有关反作弊的,基于小组讨论的准则来进行的规则判断,这是我人生中接触的第一份实习工作,第一个独立的任务,中间经历了很多的bug,让我一度相信那句话,项目锻炼人。之前写sql语句的时候,没想到平时学的简单的语句能在项目中起到关键作用,尤其感慨基础的重要性,我在学校写的最多的sql语句,也就十几二十行的样子,业务需要关联4个表,写了近100多行的sql语句,这并不算完,几次测试都通不过,在M原创 2018-02-06 23:28:43 · 1075 阅读 · 0 评论 -
对于密度聚类的关键掌握
主要是对说说关于密度聚类DBSCAN,这个算法比较新。确实表现的效果也比较好,能够解决一些问题。密度聚类,是假设聚类结构能够通过样本分布的紧密程度来确定,使用密度聚类才有效。首先掌握该算法要知道几个关键的属性: 邻域,核心对象,密度直达,密度可达,密度相连。以及两条重要的性质: 连接性:表示的是同一个簇中,两个对象是相连接的 最大性:表示的是如果一个簇中的对象能够密度可达另一个对...原创 2018-02-26 16:48:12 · 611 阅读 · 0 评论 -
pandas中的替换场景
工作中有个坑,自己做之前效率太低,后来知道了一个方法。应用场景如下,需要在一个数据中找到为空的值,然后用同样的值去替换,或者用同一行中,右边的值,替换掉为空的值。其中,需要用到的函数为:import numpy as npimport pandas as pddf.fillna(0)将取值为NaN的元素都赋值为0df.fillna(method = “ffill”) 用上一原创 2018-01-16 16:46:23 · 1224 阅读 · 0 评论 -
秋招机器学习面试题问题总结
1、LR为什么用Sigmod函数,这个函数的优缺点各是什么,为什么不用其他的函数?LR的损失函 数是什么?2、决策树如果防止过拟合的,损失函数是什么?3、KKT条件有哪些,什么条件下用KKT条件。4、L1正则化为什么能够得到稀疏解,L2为什么能够得到趋于0的解,它们的图像是怎样的?5、GBDT的损失函数是什么?6、SVM的损失函数是什么?如何推导SVM?为什么引入核原创 2017-10-01 18:31:31 · 662 阅读 · 0 评论 -
机器学习方法总结
首先,本科和研究生都学的计算机,本科阶段主要学的是嵌入式系统,有关单片机的内容。研究生阶段,尝试过学习PHP和JAVA的方向,但是为此还是没有找到能激起我内心兴奋的那个点,后来学习机器学习,但是有一阵子被吓得退缩了。因为什么矩阵,概率论,特征向量……一大推数学和专业词汇出现在我的面前,表示真的被吓到了。明显感觉入门比较难,可是后来还是入了门,并没有老师和学长带,全是自己学习和研究的,那原创 2017-11-04 20:57:23 · 442 阅读 · 2 评论 -
偏差和方差以及噪声的理解
偏差:度量的是学习算法的期望预测与真实结果的偏离程度,刻画的是学习算法本身的 拟合能力。方差:度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响。噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差下界,刻画的是学习问题本身的难度。泛化性能是由学习算法的能力,数据的充分性,以及学习任务本身所共同决定的。下面这个是混淆矩阵:查准率也叫作准确率,它描述的是:检索的信息...原创 2017-10-02 10:09:01 · 3679 阅读 · 0 评论 -
面试经验分享-机器学习岗位
最近一直在参加校招,投递的岗位都是机器学习算法,个人很喜欢也希望在这个方向上有所发展。但是理想很丰满,现实很残酷。经历了残酷的笔试,一个一个挂掉,到最后过了笔试,面试却卡了。心里特别难受。比如百度一面和58同城的二面,阻挡了我进入他们公司的脚步。现在想想,还是怪自己Coding能力太弱,没有让面试挂折服,继续学习。失败之余,来给后来人一些经验,下面就是面试经验:百度的面试,前天安排好时间,问你原创 2017-09-18 17:22:49 · 1125 阅读 · 0 评论 -
开发机器学习应用程序的步骤
通常从数据的提炼,到最后算法的应用,遵循如下几个步骤:1、收集数据。收集我们关心的数据,方法如:网络爬虫,一些设备发送过来的数据,如从物联网设备获取来的数据。2、准备输入数据。得到数据之后,我们要确保得到的数据格式符合要求。如某些算法要求特征值需要使用特定的格式。3、分析输入的数据。查看是否有明显的异常值,如某些数据点和数据集中的其他值存在明显的差异。通过一维,二维或者三维图形原创 2017-05-03 19:45:04 · 3943 阅读 · 0 评论 -
K近邻算法总结
算法之一 K近邻算法(KNN)一、kNN算法分析K最近邻(k-Nearest Neighbor,KNN)分类算法可以说是最简单的机器学习算法了。它采用测量不同特征值之间的距离方法进行分类。它的思想很简单:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。 比如上面这个图,我们有两类数据,分别是蓝色方块和红色三角原创 2017-04-08 19:30:47 · 934 阅读 · 0 评论