机器学习理论与实战
文章平均质量分 68
理论部分基于统计学习方法,触类旁通
哎呦-_-不错
读书太少而想太多
展开
-
机器学习—LightGBM的原理、优化以及优缺点
文章目录一、LightGBM简介1. LightGBM提出的动机2.XGBoost的缺点及LightGBM的优化2.1 XGBoost的缺点2.2 LightGBM的优化二、LightGBM的基本原理1、基于Histogram的决策树算法1.1 直方图算法1.2 直方图做差加速2.带深度限制的 Leaf-wise 算法3.单边梯度采样算法4.互斥特征捆绑算法4.1 解决哪些特征应该绑在一起4.2 解决怎么把特征绑为一捆三、LightGBM的工程优化1. 直接支持类别特征2. 支持高效并行2.1 特征并行2.转载 2021-08-11 15:29:28 · 15073 阅读 · 3 评论 -
机器学习—K-means聚类、密度聚类、层次聚类理论与实战
文章目录引言一、K-means聚类1.算法原理2.算法模型常用参数、属性、方法介绍3.算法实战二、密度聚类—DBSCAN1.算法原理2. 算法参数、属性、方法介绍3.算法实战三、层次聚类1.算法原理2.算法参数、属性、方法介绍3.算法实战四、总结引言 聚类是机器学习算法中“新算法”出现最多、最快的领域。一个重要的原因是聚类不存在客观标准。下面我们分别介绍K-means聚类、DBSCAN算法(密度聚类)、AgglomerativeClustering算法(层次聚类),GMM算法(高斯混合模型)。一、K原创 2021-05-27 12:27:29 · 2660 阅读 · 47 评论 -
客户价值分析—RFM模型及变形
文章目录引言一、RFM模型二、RFM模型解读三、航空公司价值分析的LRFMC模型引言 客户价值分析,顾名思义,即通过客户数据识别不同价值客户。识别客户价值应用最广泛的模型是RFM模型。一、RFM模型 在RFM模型理论中,最近一次消费时间与截止时间间隔、消费频率、消费金额是测算客户价值的最重要的特征,其中,最近一次消费时间与截止时间间隔是最有力的特征。二、RFM模型解读三、航空公司价值分析的LRFMC模型然后根据航空公司客户价值LRFMC模型,选择与LRFMC指标相关的属性进原创 2021-04-06 16:40:26 · 1352 阅读 · 0 评论 -
机器学习—数据挖掘之灰色预测算法
文章目录引言1.灰色预测模型2.python实现引言 灰色预测算法是一种对含有不确定因素的系统进行预测的方法。在建立灰色预测模型之前,需先对原始时间序列进行数据处理,经过数据处理后的时间序列即成为生成列。灰色系统常用的数据处理方式有累加和累减两种。灰色预测以灰色模型为基础,在众多灰色模型中,GM(1,1)模型最为常用。下面展示灰色预测算法的过程及代码实现1.灰色预测模型 设特征X(0)={X(0)(i),i=1,2...,n}X^{(0)}=\{X^{(0)}(i),i=1,2...,n\}X(原创 2021-04-04 12:57:38 · 5064 阅读 · 0 评论 -
时序算法—AR、MA、ARMA和ARIMA模型以及Auto ARIMA
文章目录引言一、模型介绍1.AR模型2.MA模型3.ARMA模型4.ARIMA模型二、ARIMA建模流程1.第一步:获得观察值序列并平稳性检验2.第二步:一阶差分并平稳性检验3.第三步:白噪声检验4.第四步:模型定阶5.第五步:建立模型6.第六步:白噪声检验7.完整代码三、Auto ARIMA1.常用参数介绍2.案例引言 时间序列分析的目的是给定一个已被观测了的时间序列,预测该序列的未来值。ARIMA模型系列模型常用于基于时间序列的短期预测。为方便后面理解,这里简单介绍拖尾与截尾的含义。截尾是指原创 2021-04-02 22:45:32 · 8331 阅读 · 15 评论 -
机器学习—关联规则分析之Apriori算法及其python实现
文章目录引言一、一些概念1.关联规则的一般形式2.最小支持度和最小置信度3.项集4.支持度计数二、Apriori算法:使用候选产生频繁项集1.Apriori的性质2.Apriori算法实现过程3.Apriori算法实现过程实例三.Apriori算法—python实现引言 关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找到各项之间的关联关系,而这种关系并没有在数据中直接体现出来。以超市的销售数据为例,当存在很多商品时,可能的商品组合数量达到了令人望而却步的程度,这是提取关联规则的最大原创 2021-04-02 16:48:57 · 49008 阅读 · 36 评论 -
机器学习—XGBoost常见问题解析
文章目录1.xgboost使用之前是否需要对数据进行归一化处理?2.xgboost使用之前是否需要对类别型特征进行one-hot处理?3.XGBoost与GBDT的联系和区别有哪些?4.为什么XGBoost泰勒二阶展开后效果就比较好呢?5.XGBoost对缺失值是怎么处理的?6.XGBoost为什么可以并行训练?1.xgboost使用之前是否需要对数据进行归一化处理? 不需要。首先,归一化是对连续特征来说的。那么连续特征的归一化,起到的主要作用是进行数值缩放。数值缩放的目的是解决梯度下降时,等高线是椭原创 2021-03-25 17:31:02 · 4119 阅读 · 8 评论 -
机器学习—XGBoost实战与调参
文章目录一、XGBoost实战1.xgboost的数据格式2.参数介绍3.XGBoost分类3.1基于XGBoost原生接口的分类3.2xgboost.train参数介绍3.3使用sklearn接口的分类—XGBClassifier4.XGBoost回归4.1 基于XGBoost原生接口的回归4.2使用sklearn接口的回归—XGBClassifier5.XGBoost操作补充二、XGBoost参数调优1.参数调优的一般方法2.XGBoost调参(结合sklearn网格搜索)一、XGBoost实战原创 2021-03-24 22:25:18 · 2934 阅读 · 1 评论 -
机器学习—XGboost的原理、工程实现与优缺点
文章目录一、xgboost简介二、xgboost原理1.从目标函数生成一棵树1.1学习第t颗树1.2xgboost的目标函数1.3泰勒公式展开1.4定义一棵树1.5定义树的复杂度1.6叶子节点归组1.7树结构打分2.一棵树的生成细节2.1最优切分点划分算法2.1.1贪心算法2.1.2近似算法2.2加权分位数缩略图2.3稀疏感知算法三、xgboost的工程实现3.1列块并行学习3.2缓存访问3.3 “核外”块计算四、xgboost的优缺点4.1优点4.2缺点一、xgboost简介 XGBoost是陈天奇转载 2021-03-24 19:31:53 · 7209 阅读 · 0 评论 -
机器学习—模型超参数调优之网格搜索与随机搜索
文章目录引言1.网格搜索GridSearchCV()2.随机搜索GridSearchCV()3.总结引言 不同的超参数的值对于模型的性能有不同的影响,我们需要找到的就是使得模型性能最佳的超参数。1.网格搜索GridSearchCV() 网格搜索的思想非常简单,比如你有2个超参数需要去选择,那你就把所有的超参数选择列出来分别做排列组合。举个例子: ????=0.01,0.1,1.0 和 ????=0.01,0.1,1.0 ,你可以做一个排列组合,即:{[0.01,0.01],[0.01,0.1],转载 2021-03-16 13:55:29 · 4861 阅读 · 0 评论 -
机器学习—线性回归推广及案例
文章目录引言1.多项式回归2.广义可加模型(GAM)引言 在线性回归中,我们假设因变量与特征之间的关系是线性关系,这样的假设使得模型很简单,但是缺点也是显然的,那就是当数据存在非线性关系时,我们使用线性回归模型进行预测会导致预测性能极其低下,因为模型的形式本身是线性的,无法表达数据中的非线性关系。我们一个很自然的想法就是去推广线性回归模型,使得推广后的模型更能表达非线性的关系。常用的手段有多项式回归与广义可加模型(GAM)。1.多项式回归 为了体现因变量和特征的非线性关系,一个很自然而然的想法原创 2021-03-15 18:06:46 · 2099 阅读 · 0 评论 -
8. 聚类算法
文章目录引言一、相似度或距离1.闵可夫斯基距离2.马氏距离3.兰氏距离4.斜交空间距离5.相关系数6. 夹角余弦二、类或簇1.类的定义2.类的特征3.类间距离三、层次聚类1.聚合聚类引言一、相似度或距离1.闵可夫斯基距离2.马氏距离3.兰氏距离4.斜交空间距离5.相关系数6. 夹角余弦二、类或簇1.类的定义2.类的特征3.类间距离三、层次聚类1.聚合聚类...原创 2021-02-21 21:32:22 · 318 阅读 · 0 评论 -
7.1 API:GaussianMixture
文章目录引言GaussianMixture引言GaussianMixture是EM算法在混合高斯分布的实现sklearn-GaussianMixtureGaussianMixturefrom sklearn.mixture import GaussianMixturesklearn.mixture.GaussianMixture(n_components=1, *, covariance_type='full', tol=0.001, reg_covar=1e-06, max_iter=100翻译 2021-02-02 20:03:35 · 571 阅读 · 0 评论 -
7. EM算法
文章目录一、EM算法1.EM算法的引入2.EM算法的导出二、高斯混合模型一、EM算法1.EM算法的引入2.EM算法的导出二、高斯混合模型原创 2021-02-02 18:21:31 · 216 阅读 · 0 评论 -
6.6 AdaBoost实战
文章目录引言实战引言理论与sklearn实现部分参见该专栏其他文章实战import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport matplotlib as mplfrom sklearn.ensemble import RandomForestClassifier,AdaBoostClassifierimport warnings# 'sepal length', 'sepal width',原创 2021-01-25 19:17:10 · 142 阅读 · 0 评论 -
6.5 XGBoost实战
文章目录1. 判断蘑菇是否有毒—二分类2.判断蘑菇是否有毒—手动读取数据3.鸢尾花分类4.葡萄酒分类5.泰坦尼克号1. 判断蘑菇是否有毒—二分类蘑菇数据集下载—提取码:d16v # /usr/bin/python# -*- encoding:utf-8 -*-import xgboost as xgbimport numpy as npfrom sklearn.datasets import load_svmlight_file# 自定义损失函数的梯度和二阶导# 定义f: theta原创 2021-01-25 19:07:35 · 382 阅读 · 0 评论 -
6.4 随机森林实战
文章目录1. 鸢尾花数据集分类使用袋外数据作为测试集2.泰坦尼克号1. 鸢尾花数据集分类import numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as pltfrom sklearn.ensemble import RandomForestClassifiernp.random.seed(42)# 特征iris_feature = '花萼长度', '花萼宽度', '花瓣长度'原创 2021-01-25 17:35:35 · 440 阅读 · 1 评论 -
6.3 API : XGBoost
文章目录一. XGBoost1.通用参数2.Booster参数3.学习目标参数二、参数调参三、实例四、常用调参-GridSearch一. XGBoost完整参数XGBoost的参数一共分为三类:通用参数:宏观函数控制Booster参数:控制每一步的booster(tree/regression)。booster参数一般可以调控模型的效果和计算代价。我们所说的调参,很大程度上都是在调整booster参数学习目标参数:控制训练目标的表现。我们对于问题的划分主要体现在学习目标参数上。比如我们要做分类原创 2021-01-23 11:49:41 · 291 阅读 · 0 评论 -
6.2 API : RandomForestClassifier与RandomForestRegressor
文章目录RandomForestClassifierRandomForestRegressorRandomForestClassifierRandomForestRegressorRandomForestClassifierfrom sklearn.ensemble import RandomForestClassifiersklearn.ensemble.RandomForestClassifier(n_estimators=100, *, criterion='gini', max_depth原创 2021-01-21 22:05:17 · 1649 阅读 · 1 评论 -
6.1 API : AdaBoostClassifier与AdaBoostRegressor
文章目录AdaBoostClassifierAdaBoostRegressor参数介绍原网址原网址AdaBoostClassifiersklearn.ensemble.AdaBoostClassifier(base_estimator=None, *, n_estimators=50, learning_rate=1.0, algorithm='SAMME.R', random_state=None)描述AdaBoost分类器属性base_estimator_ :estimator原创 2021-01-21 20:26:02 · 1211 阅读 · 0 评论 -
6.集成学习
文章目录一、集成学习简介二、Voting—投票1.硬投票分类器2.软投票分类器三、Bagging与随机森林1.Bagging2.随机森林3.样本不均衡的常用处理办法4.样本间相似度5.异常检测四、Bagging—AdaBoost算法1.AdaBoost算法2.AdaBoost算法举例五、Boosting—GBDT算法1.提升树2.梯度提升树六、Boosting—XGBoost1.XGBoost公式推导2.XGBT一、集成学习简介二、Voting—投票1.硬投票分类器from sklearn.da原创 2021-01-19 20:06:04 · 311 阅读 · 2 评论 -
5.4 SVR回归(时间序列分析)
文章目录1.SVR时间序列预测2.SVR调参3.SVR高斯核与过拟合1.SVR时间序列预测SVR可用于时间序列分析,但不是较好的选择。现在一般采用LSTM神经网络来处理时间序列数据# SVR预测# 也可用于时间序列分析(ARIMA也可用于时间序列分析)import numpy as npfrom sklearn import svmimport matplotlib.pyplot as pltif __name__ == "__main__": # 构造数据 N = 50原创 2021-01-17 21:54:42 · 10675 阅读 · 2 评论 -
5.3 SVM分类
文章目录1.鸢尾花SVM分类2.SVM多分类1.鸢尾花SVM分类鸢尾花数据集——提取码:1234#!/usr/bin/python# -*- coding:utf-8 -*-# 鸢尾花SVM-二特征分类import numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as plt# sklearn中svmfrom sklearn import svmfrom sklearn.原创 2021-01-17 16:19:30 · 514 阅读 · 0 评论 -
5.2 分类器的评价指标—accuracy、precision、recall、F1、Fβ、AUC与ROC
文章目录1. 分类器评价指标公式2.实例1. 分类器评价指标公式AUC与ROC2.实例#!/usr/bin/python# -*- coding:utf-8 -*-import numpy as npfrom sklearn.metrics import accuracy_scorefrom sklearn.metrics import precision_score, recall_score, f1_score, fbeta_scorefrom sklearn.metrics i原创 2021-01-17 16:18:24 · 486 阅读 · 0 评论 -
5.1 API : SVC
文章目录1.SVC的参数2.官方案例3.实例1.SVC的参数from sklearn.svm import SVCrbf中超参数为C与gammaSVC(*, C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=- 1, deci原创 2021-01-15 19:26:43 · 345 阅读 · 0 评论 -
5.支持向量机
文章目录一、简介二、线性可分支持向量机1.函数间隔、几何间隔二、目标函数推导—凸二次最优化问题3.目标函数求解4.线性可分支持向量机算法一、简介二、线性可分支持向量机1.函数间隔、几何间隔二、目标函数推导—凸二次最优化问题凸二次规划问题3.目标函数求解4.线性可分支持向量机算法...原创 2021-01-13 22:59:33 · 169 阅读 · 0 评论 -
5.1 凸二次规划问题
文章目录一、凸二次最优化概念二、凸二次最优化求解—拉格朗日法一、凸二次最优化概念二、凸二次最优化求解—拉格朗日法如果凸二次最优化问题中的不等式约束是大于0或者大于等于0,则必须先转换成小于等于0,再使用拉格朗日乘子法著名的KKT条件整合了拉格朗日乘子法求解带有不等式约束的极值问题例子参考懒得敲公式了,直接截的图,详见参考...原创 2021-01-13 21:18:13 · 1331 阅读 · 0 评论 -
4.3 朴素贝叶斯分类实战——新闻分类、垃圾邮件识别
文章目录一、sklearn20类新闻分类二、垃圾邮件识别一、sklearn20类新闻分类有人可能会碰到20newsgroups数据集加载超时问题,我的解决办法是科学上网from sklearn.datasets import fetch_20newsgroupsfrom sklearn.model_selection import train_test_split# 特征抽取from sklearn.feature_extraction.text import TfidfVectorizerf原创 2021-01-12 22:31:03 · 390 阅读 · 0 评论 -
4.2 文本特征抽取的两种方式CountVectorizer与TfidfVectorizer
文章目录引言一、CountVectorizer—统计次数1.介绍案例二、TfidfVectorizer1.介绍2.案例引言在我看来,以下两种方法都是将文本数据转换为数值型数据。CountVectorizer的数组格式可以理解为数组每一行记录每一个文本数据中单词的个数TfidfVectorizer的数组格式可以理解为数组每一行记录每一个文本数据中单词的重要性一、CountVectorizer—统计次数作用主要为:对文本数据进行特征值化1.介绍细节详见官网作用:对文本数据进行特征值化原创 2021-01-12 20:37:25 · 867 阅读 · 0 评论 -
4.1 API : MultinomialNB、GaussianNB、BernoulliNB
文章目录1.MultinomialNB实例2.GaussianNB实例3.BernoulliNB实例1.MultinomialNB假设特征的先验概率为多项式分布,多项式朴素贝叶斯分类器适用于具有离散特征的分类(例如,用于文本分类的字数统计)。多项式分布通常需要整数特征计数from sklearn.naive_bayes import MultinomialNBMultinomialNB(*, alpha=1.0, fit_prior=True, class_prior=None)Paramet原创 2021-01-12 11:29:52 · 3069 阅读 · 1 评论 -
4. 朴素贝叶斯
文章目录一、朴素贝叶斯的基本方法二、朴素贝叶斯参数估计1.极大似然估计2.贝叶斯估计三、朴素贝叶斯算法四、朴素贝叶斯代码实现五、拉普拉斯修正代码实现一、朴素贝叶斯的基本方法二、朴素贝叶斯参数估计1.极大似然估计2.贝叶斯估计三、朴素贝叶斯算法四、朴素贝叶斯代码实现import numpy as np# 加载数据的函数def loaddata(): X = np.array([[1, 'S'], [1, 'M'], [1, 'M'], [1, 'S'],原创 2021-01-11 22:33:53 · 264 阅读 · 2 评论 -
3.3 决策树分类与回归实战
文章目录引言实验代码引言这里使用鸢尾花数据进行实验实验代码import numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_split, GridSearchCVfrom sklearn.tree import DecisionTreeClassifierfrom sklearn原创 2021-01-10 22:56:01 · 455 阅读 · 0 评论 -
3.2 决策树可视化
import numpy as npimport pandas as pdfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.preprocessing import LabelEncoderfrom sklearn import treeimport pydotplusimport matplotlib as mpl# 加载数据def loaddata(): features = ["age", "work",原创 2021-01-10 20:28:52 · 234 阅读 · 0 评论 -
3.1 API : DecisionTreeClassifier、DecisionTreeRegressor
文章目录引言1. DecisionTreeClassifier引言sklearn中实现的决策树都是二叉树1. DecisionTreeClassifier一般默认使用基尼指数即可,因为熵有对数运算,耗时采用CART算法from sklearn.tree import DecisionTreeClassifier决策树分类器DecisionTreeClassifier(*, criterion='gini', splitter='best', max_depth=None, min_sampl原创 2021-01-10 17:16:24 · 532 阅读 · 0 评论 -
3. 决策树
文章目录一、信息熵、条件熵、信息增益1.信息熵2.条件熵3.信息增益二、ID3算法ID3算法代码实现一、信息熵、条件熵、信息增益1.信息熵2.条件熵3.信息增益二、ID3算法ID3算法只有树的生成,所以该算法生成的树容易产生过拟合。ID3算法代码实现在这里插入代码片...原创 2021-01-10 15:29:52 · 243 阅读 · 0 评论 -
2.5 分类模型评估指标—AUC与ROC及绘制混淆矩阵与ROC曲线
文章目录一、引言二、sklearn.metrics.roc_curve详解三、sklearn.metrics.roc_auc_curve详解四、鸢尾花数据集一、引言如果想弄懂AUC和ROC曲线,一定要彻底理解混淆矩阵的概念!!!混淆矩阵中有Postitive(阳性)、Negative(阴性)、False(伪)、True(真)的概念预测类别为0的为Negative(阴性),预测类别为1的为Postitive(阳性)预测错误的为False(伪)、预测正确为True(真) 对上述概念进行组合,就有原创 2021-01-09 11:31:25 · 1137 阅读 · 0 评论 -
2.4 sklearn中的metrics.roc_auc_score评价指标
文章目录引言案例引言它应该是加入了多分类情况,关系没理清,后期补上from sklearn.metrics import roc_auc_scoreroc_auc_score(y_true, y_score, *, average='macro', sample_weight=None, max_fpr=None, multi_class='raise', labels=None) 计算曲线ROC的面积 - Parameters(参数) y_true : array-like of sh原创 2021-01-08 22:24:59 · 7492 阅读 · 7 评论 -
2.3 sklearn中的metrics.roc_curve评价指标
文章目录1.案例2.y_score讨论1)y_score是标签数据2)y_score是概率值from sklearn.metrics import roc_curveroc_curve(y_true, y_score, *, pos_label=None, sample_weight=None,drop_intermediate=True) - Parameters(参数) y_true : ndarray of shape (n_samples,) 二进制标签,真实数据结果;如果标签既不是{原创 2021-01-08 21:16:56 · 958 阅读 · 3 评论 -
2.2案例:鸢尾花分类——逻辑回归
文章目录一、引言鸢尾花数据集二、鸢尾花分类一、引言鸢尾花数据集为机器学习常用的数据集,今天,我们基于该数据集进行算法学习鸢尾花数据集鸢尾花数据集有3个类别,每个类别有50个样本,其中一个类别与另外两个线性可分,另外两个线性不可分特征:sepal_length花萼长度speal_width花萼宽度petal_length花瓣长度petal_width花瓣宽度标签0:'setosa’山鸢尾1:'versicolor’变色鸢尾花2:'virginica’维吉尼亚鸢尾花二、鸢尾花原创 2021-01-08 19:33:10 · 3452 阅读 · 1 评论 -
2.1 API : LogisticRegression
文章目录LogisticRegressionLogisticRegressionfrom sklearn.linear_model import LogisticRegressionLogisticRegression(penalty='l2', *, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='lbfgs'原创 2021-01-08 10:49:29 · 185 阅读 · 0 评论