机器学习
文章平均质量分 85
一点点进步吧……
Sun_Sherry
这个作者很懒,什么都没留下…
展开
-
机器学习:最大熵模型
给定训练集Tx1y1x2y2xNyNT{(x1y1x2y2xNyN)},现在需要利用最大熵原理构建一个分类模型。经验分布在给定数据集上,联合概率分布PXYP(X,Y)PXY和边缘概率分布PXP(X)PXPXxYyvXxYyNPXxYyNvXxYyPXxvXxNPXxNvXx其中,vXxYyv(X=x,Y=y)vXx。原创 2023-08-23 19:00:00 · 714 阅读 · 0 评论 -
机器学习:隐马尔可夫模型(HMM)
隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成同一个观测从而产生观测随机序列的过程。隐藏的马尔可夫链随机生成状态序列,而每一个状态又生成一个观测。原创 2023-08-12 15:05:15 · 894 阅读 · 0 评论 -
EM算法推导--三硬币模型推导过程
本篇博客主要介绍李航《统计学习方法(第2版)》中讲解EM算法涉及到的三硬币模型案例,原文中该模型的推导过程被省略了。原创 2023-08-09 17:32:52 · 518 阅读 · 0 评论 -
机器学习:马尔可夫模型
考虑一组随机变量序列XX0X1XtXX0X1Xt,其中XtX_{t}Xt表示时刻ttt的随机变量,并且每个随机变量XtX_{t}Xt的取值集合相同,称为状态空间SSS。SSS可以是离散的,也可以是连续的。假设在时刻000的随机变量X0X_{0}X0遵循概率分布PX0π0PX0π0, 即为初始状态分布。若某个时刻t≥1t\ge1t≥1的随机变量XtX_{t}Xt。原创 2023-08-05 11:12:42 · 955 阅读 · 0 评论 -
模型解释性:PFI、PDP、ICE等包的用法
本篇主要介绍几种其他较常用的模型解释性方法。原创 2023-02-28 13:42:18 · 2193 阅读 · 1 评论 -
利用Python实现局部异常因子(LOF)的计算
局部异常因子(Local Outlier Factor,LOF)算法是目前比较常用的离群点检测算法,该算法通过一种模糊的手段来判断数据对象是否为异常点。这里仅介绍使用sklearn包中的LocalOutlierFactor的用法。原创 2023-02-23 15:21:00 · 1405 阅读 · 2 评论 -
模型解释性:SHAP包的使用
本篇博客介绍另一种事后可解释性方法:SHAP(SHapley Additive exPlanation)方法。原创 2023-02-13 15:42:12 · 2959 阅读 · 0 评论 -
模型解释性:Lime包的使用
对于每一个输入实例,LIME首先利用该实例以及该实例的一组近邻数据训练一个易于解释的线性模型来拟合待解释模型的局部边界,然后基于该线性模型解释待解释模型针对该实例的决策依据,其中,线性模型的权重系数直接体现了当前决策中该实例的每一维特征的重要性(可以只针对重要特征进行解释)。基于复杂数据挖掘方法构建的预测模型,通常存在“黑箱问题”,导致其可解释性与可利用性降低。是一类可解释的模型,即简单模型的一个集合;是可选的正则项,用于控制模型复杂度。可解释的简单模型(一般为线性模型)是扰动样本与预测样本。原创 2023-02-06 21:17:56 · 2572 阅读 · 3 评论 -
机器学习:Python实现多标签分类(Multi-label Classification)
传统的多分类算法是对一个训练样本仅标记一个类别标签。而多标签分类(Multi-label Classification, MLC)是指对每个训练样本分配一个或一个以上的类别标签。其数学模型如下:给定一个ddd维输入空间XX1X2XdXX1X2Xd和一个输出标签Yλ1λ2λqq1Yλ1λ2λqq1。多标签实例可以定义为一对xy(x,y)xy,其中xx1x2xd∈Xxx1x2。原创 2023-02-04 22:32:30 · 3981 阅读 · 0 评论 -
Python进行因子分析
因子分析法(Factor Analysis)是一种利用降维的思想,从研究原始变量相关矩阵内部的依赖关系出发,把一些具有错综复杂关系的变量归结为少数几个综合因子的一种多变量统计分析方法。其优势在于不仅可以在减少大量指标分析的工作量的同时保证分析结果的合理性,还能够使得提取的公因子更具有对研究对象的解释性和客观性。设随机变量XX1X2XpXX1X2Xp, 其中EXμDX∑EXμDX∑;同时有几个难以观测的随机变量FF1F2Fmm。原创 2023-01-28 20:52:17 · 1937 阅读 · 0 评论 -
如何使用局部敏感哈希(LSH)算法进行特征降维?
传统的哈希(Hashing)算法通过映射函数将记录的存储位置与记录的关键字关联起来,实现记录的快速查找。所以传统哈希算法的关键是要避免碰撞冲突,尽可能保证每一个记录经过哈希函数的映射可以得到不同的结果。局部敏感哈希(Locality-Sensitive Hashing,LSH)算法的基本思想是让在原始数据空间中距离比较近的点经过哈希运算后,有较大的概率发生碰撞。原创 2022-10-02 13:20:41 · 1270 阅读 · 0 评论 -
线性回归:自相关检测及其处理方法
线性回归的自相关问题原创 2022-06-12 17:19:37 · 12295 阅读 · 0 评论 -
线性回归:异方差检测及其处理方法
异方差性的存在,会对回归模型的正确建立和统计推断带来严重后果。首先,在异方差情况下,所有与参数估计量方差有关的相关计算都会受到影响。原创 2022-06-04 22:18:42 · 10429 阅读 · 0 评论 -
使用PyMetis实现聚类融合算法
任何聚类算法都对数据集本身对有一定的预先假设。根据“No Free Lunch” 理论,如果数据集本身的分布并不符合预先的假设,则算法的结果将毫无意义,甚至可以说该结果只是给出了一个错误的分布,或者给数据集强加了一个虚构的分布。因此,面对特定的应用问题,如何选择合适的聚类算法是聚类分析研究中的一个重要课题。原创 2022-03-30 20:00:00 · 2312 阅读 · 0 评论 -
EDA:异常数据检测方法
本文主要整理了几种常用的异常值检测方法。笔者对于非常学术的理论知识介绍无能为力, 具体理论知识可以看最后的参考资料中的内容。1.可视化方法 一般可以采用可视化方法进行异常值的检测,常用工具包括箱线图,直方图、散点图等。以鸢尾花数据集为例进行说明,具体代码如下:import pandas as pdimport numpy as npfrom sklearn.datasets import load_irisimport seaborn as snsfrom matplotlib impo.原创 2021-07-24 16:31:29 · 808 阅读 · 0 评论 -
机器学习算法:支持向量机
支持向量机(Support Vector Machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个凸二次规划的问题,也等价于正则化的合叶损失函数最小化的问题。支持向量机分为以下三类:线性可分支持向量机:又称为硬间隔支持向量机。当训练数据线性可分时,通过硬间隔最大化学习的线性分类器;线性支持向量机:又称为软间隔支持向量机。当训练数据近似线性可分时,通过软间隔最大化学习的线性分类器;非线性支持向量机:当训练原创 2021-07-18 15:03:02 · 961 阅读 · 0 评论 -
机器学习:XGBoost算法
XGBoost(eXtreme Gradient Boosting)是Gradient Boosting框架下的一种高效能实现。原创 2021-07-17 20:41:36 · 965 阅读 · 0 评论 -
机器学习:GBDT算法
GBDT(Gradient Boosting Decision Tree, 梯度提升决策树)算法原创 2021-07-16 11:55:30 · 163 阅读 · 0 评论 -
机器学习:lightGBM算法
lightGBM的sklearn接口:lightGBM分类:主要参数如下:boosting_type:‘gbdt’(传统的GBDT模型)、‘dart’、‘goss’、‘rf’(随机森林)dart: Dropouts meet Multiple Additive Regression Trees. 在每棵树的迭代过程中不再单单去拟合前一棵树的残差,而是从前面已有的树中采样一部分树,组合成一个新的树,然后去拟合这部分的残差,从而使后面的树贡献变大一些。goss:Gradient-based One原创 2021-07-11 10:58:03 · 6632 阅读 · 0 评论 -
机器学习:常用聚类算法
聚类就是对大量未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的相似度较小。聚类是一种“无监督学习”任务。1.常用距离计算及相似度方法 给定样本Xi=(xi1;xi2;… ;xin)X_{i}=(x_{i1};x_{i2};\dots;x_{in})Xi=(xi1;xi2;…;xin)与Xj=(xj1;xj2;… ;xjn)X_{j}=(x_{j1};x_{j2};\dots;x_{jn})Xj=(xj1;xj2;…;xjn),聚类中的常原创 2021-07-08 11:27:42 · 409 阅读 · 0 评论 -
机器学习:多重共线性
1 什么是多重共线性原创 2021-07-06 18:19:01 · 2417 阅读 · 1 评论 -
如何处理样本不平衡问题?
在实际场景中存在数据分布不平衡问题,比如在金融风控项目中,逾期和未逾期的用户占比相差很大。这就造成了实际分布不均的数据和算法的假设存在偏差的情况。同时,不均衡的样本对模型训练后的精度及相关的评价指标也会造成影响。 常用的解决样本不平衡的方法就是对过多的样本进行欠采样或者对过少的样本进行过采样。随机欠采样(undersampling):随机欠采样就是随机去除一些多数样本使得正、反例样数据接近,然后再进行学习。随机欠采样的优点在于平衡数据的同时减小了数据量,加速了训练;缺点是数据减少会影响力模型的特原创 2021-06-27 16:01:35 · 693 阅读 · 0 评论 -
特征工程:特征降维
特征降维指的是采用某种映射方法,将高维向量空间的数据点映射到低维的空间中。在原始的高维空间中,数据可能包含冗余信息及噪声信息,其在实际应用中会对模型识别造成误差,降低模型准确率;而通过特征降维可以减少冗余信息造成的误差,从而提高模型准确率。 特征降维的常用方法有特征选择和线性降维。1 特征选择 特征选择方法比较简单粗暴,直接将不重要的特征删除。特征选择方法主要包括三大类:过滤法(Filter)、包装法(Wrapper)和嵌入法(Embedded)。过滤法:根据发散性或者相关性对各个特征进行原创 2021-06-26 16:27:32 · 6467 阅读 · 0 评论 -
特征工程:特征处理
数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已;好的特征不仅能够表示出数据的主要特点,还应该符合模型的假设;特征越好、灵活性越强,构建的模型越简单、性能越出色。 特征工程是从原始数据提取特征的过程,这些特征可以很好地描述数据,并且利用特征建立的模型在未知数据上的性能表现达到最优。特征工程一般包括特征使用、特征获取、特征处理、特征选择和特征监控。...原创 2021-06-23 17:53:38 · 1615 阅读 · 0 评论 -
机器学习算法:逻辑回归
逻辑回归是一种分类算法。其对每条样本进行“打分”,一旦分数值超过了指定的阈值,则分为一个类别;而没有达到这个阈值的则分为另一个类。原创 2021-06-21 17:50:07 · 369 阅读 · 0 评论 -
机器学习算法:线性回归
线性回归是回归分析中的一种,评估的自变量XXX和因变量YYY之间是一种线性关系。但自变量只有一个时,称为简单线性回归;当自变量有多个时,称为多元线性回归。1.数学模型 给定数据集D={(∗∗x∗∗1,yi),(x2,y2),…,()}D=\left\{(**x**_{1},y_{i}),(x_{2},y_{2}),\dots,() \right\}D={(∗∗x∗∗1,yi),(x2,y2),…,()}...原创 2021-06-20 19:27:58 · 234 阅读 · 1 评论 -
机器学习算法:随机森林
随机森林(Random Forest,简称RF)时Bagging集成的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体地说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有ddd个属性)中选择一个最优属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含kkk个属性的子集,然后再从这个子集中选择一个最优属性用于划分。kkk控制了随机性的引入程度,一般情况下,k=log2dk=log_{2}dk=log原创 2021-06-16 17:35:34 · 623 阅读 · 0 评论 -
Boosting和Bagging
1.集成学习 集成学习(ensemble learning)是通过构建并结合多个学习器来完成学习任务。将多个学习器进行结合,常常可以获得比单一学习器更显著优越的泛化性能。根据集成学习中个体学习器的生成方式,目前的集成学习方法可以大致分为两类:Boosting:个体学习器之间存在强依赖关系,必须串行生成的序列化方法;Bagging: 个体学习器之间不存在强依赖关系,可同时生成的并行化方法;2.Boosting Boosting算法的工作机制:先从初始训练集训练出一个基学习器,再根据基学习器的原创 2021-06-16 15:50:21 · 350 阅读 · 0 评论 -
机器学习算法:决策树算法
决策树(Decision Tree)是一种基本的分类和回归算法。该算法模型呈树形结构,主要由结点和有向边组成。原创 2021-06-16 13:24:02 · 6347 阅读 · 0 评论 -
利用卡方检验进行特征选择
1 卡方检验卡方检验就是统计样本的理论频次和实际频次的吻合程度或拟合优度。卡方值越大,二者偏离程度就越大。卡方值为0,则表明与理论值完全相符。其计算公式如下:原创 2021-01-20 09:36:02 · 3492 阅读 · 0 评论 -
Python实现BestKS分箱和IV的计算
因为最近在计算IV的时候计算出的IV值明显偏高,当时怀疑代码:import pandas as pdimport numpy as npimport warningswarnings.filterwarnings('ignore')def univeral_df(data,feature,target,total_name,good_name,bad_name): """ 统计feature不同值对应的target数量 """...原创 2021-01-18 11:17:32 · 2090 阅读 · 0 评论 -
使用评分+电影类型信息进行电影推荐(附代码)
1. 电影推荐原创 2020-06-16 21:41:33 · 2387 阅读 · 0 评论 -
如何确定K-means算法中的k值?
k-means算法是机器学习中常用的聚类算法,原理简单实现容易,内存占用量也比较小。肘部法所使用的聚类评价指标为:数据集中所有样本点到其簇中心的距离之和的平方。但是肘部法选择的并不是误差平方和最小的。轮廓系数是一种非常常用的聚类效果评价指标。先利用sklearn.datasets中的方法生成自己的聚类数据集。假设已经通过聚类算法将待分类的数据进行了聚类,并最终得到了。,分别计算其轮廓系数。的轮廓系数的平均值,即为该聚类结果总的轮廓系数。的方法主要有两种:肘部法、轮廓系数法。对于每个簇中的每个样本点。...原创 2020-06-09 19:28:31 · 40545 阅读 · 23 评论 -
sklearn包中的朴素贝叶斯算法
朴素贝叶斯(Native Bayes)算法是基于贝叶斯定理和特征条件独立假设的分类算法。sklearn中的native_bayes模块提供了5中朴素贝叶斯模型。1. GaussianNB2.MultinomialNB3. ComplementNB4. CategoricalNB5.BernoulliNB参考:1.https://scikit...原创 2020-04-21 20:42:58 · 1487 阅读 · 0 评论 -
隐语义模型(LFM)实现电影推荐
1.电影推荐原创 2020-05-07 20:04:44 · 2053 阅读 · 5 评论 -
python实现复杂网络K-Shell算法
先上代码以后再补充。import networkx as nximport pandas as pddef k_shell(graph): importance_dict={} level=1 while len(graph.degree): importance_dict[level]=[] while True: ...原创 2018-11-13 14:35:27 · 5852 阅读 · 12 评论 -
python--时间序列预测(time series prediction)
题外话:前段时间做了一点时间序列预测,积累了一点经验,写出来与大家分享一下。能力有限,若是有错误,请指正。本文理论内容不会特别多。1.时间序列预测时间序列预测,主要就是依靠过去和现在的数据,分析两者之间的关系,然后利用得到的这个关系去预测未来的数据。现在主要运用在股票和人口等的预测上。个人觉得时间序列预测与其他预测不同的,通常时间序列预测只有1维数据,所以很多机器学习方法不能直接使用。...原创 2018-07-02 19:51:28 · 37224 阅读 · 21 评论 -
one-hot编码和哑变量(dummy)编码
1.one-hot编码和哑变量编码1.1 定义one-hot编码:dummy编码:2.两种编码的区别原创 2020-03-05 22:49:27 · 4387 阅读 · 0 评论 -
分类模型评价指标:精确率、召回率及P-R曲线、ROC曲线具体实现(附详尽代码)
1.评价指标定义(二分类)对于二分类问题,可将样例根据其真实类别与学习器预测的类别组合成混淆矩阵。在该矩阵中,矩阵中的行代表样例的真实类别,矩阵中的列代表预测器预测的类别(行和列所代表的可以互相交换)。原创 2019-12-30 18:20:02 · 5825 阅读 · 8 评论