机器学习算法
机器学习算法
hello_JeremyWang
这个作者很懒,什么都没留下…
展开
-
异常检测小结
1. 异常检测小结异常检测本质上就是找不同,找到检测异常的点或者数据。李宏毅老师在异常检测这部分介绍了两种方法。分别用来处理带 label 的数据以及不带 label 的数据。1.1 带 label 的数据对于带 label 的数据(此处要求数据不含杂质,即数据不包含异常值点),我们可以训练一个分类器,得到每个数据的类别以及信心分数。比如对于火影忍者的人物,我们可以训练一个分类器,将其分为鸣人、佐助、雏田等等。这个时候,如果我们给分类器一个柯南的图片,分类器也会将其分为火影中的某一类人物,但是由于分类原创 2022-02-22 16:17:26 · 1003 阅读 · 0 评论 -
跟着Datawhale学习集成学习
集成学习1、机器学习的主要任务1.1监督学习1.1.1回归1.1.2 分类1.2无监督学习1、机器学习的主要任务我理解的机器学习就是,如何通过设计算法使得机器掌握学习的能力,发现数据中的规律。今天主要来熟悉机器学习的主要任务。具体地说,从有无因变量的角度出发,可以将机器学习任务分为有监督学习和无监督学习。其次,在有监督学习的大框架下,我们又可以根据因变量是否连续将问题分为回归问题和分类问题。下面我们可以来看一些例子(例子代码由Datawhale团队提供)首先导入相应的包import numpy as原创 2021-03-15 16:14:31 · 812 阅读 · 0 评论 -
Datawhale集成学习中之Boosting(二)
1. 提升树算法上一篇我们讲到,Adaboost通过前一个分类器的错误率来不断调整学习的权重。而提升树算法则是通过新的决策树模型不断拟合之前分类器所遗留的残差去使得整体的预测效果越来越好。提升树的算法流程如下:2. GBDT算法GBDT算法通过引入新的基学习器拟合负梯度的方式不断提升算法的准确性。GBDT算法的流程是可以从算法的流程中看出GBDT和提升树的区别,主要在于新的基学习器拟合的式子的不同。2.1 GBDT程序的参数解释GradientBoostingRegressor参数解释:原创 2021-04-22 22:29:23 · 195 阅读 · 0 评论 -
Datawhale集成学习之Boosting(三)
1. XGBoost的常见参数Datawhale团队总结了XGBoost的常见参数,十分全面,这里直接借鉴了Datahwale团队的文档。通用参数:(两种类型的booster,因为tree的性能比线性回归好得多,因此我们很少用线性回归。)booster:使用哪个弱学习器训练,默认gbtree,可选gbtree,gblinear 或dartnthread:用于运行XGBoost的并行线程数,默认为最大可用线程数verbosity:打印消息的详细程度。有效值为0(静默),1(警告),2(信息),3(原创 2021-04-25 23:00:25 · 332 阅读 · 0 评论 -
Datawhale集成学习中
首先感谢Datawhale开源社区的学习材料1. BaggingBagging的核心在于自助采样(bootstrap)这一概念,即有放回的从数据集中进行采样,也就是说,同样的一个样本可能被多次进行采样。1.1 Bagging算法的基本流程首先我们随机取出一个样本放入采样集合中,再把这个样本放回初始数据集,重复K次采样,最终我们可以获得一个大小为K的样本集合。同样的方法, 我们可以采样出T个含K个样本的采样集合,然后基于每个采样集合训练出一个基学习器,再将这些基学习器进行结合。对回归问题的预测是通过预原创 2021-04-17 15:43:02 · 118 阅读 · 0 评论 -
Datawhale集成学习之Boosting(一)
1. Boosting的基本原理Boosting方法是使用同一组数据集进行反复学习,得到一系列简单模型,然后组合这些模型构成一个预测性能十分强大的机器学习模型。显然,Boosting提高最终的预测效果是通过不断减少偏差的形式。2. Boosting之AdaboostA大boost的主要原理有二:提高那些被前一轮分类器错误分类的样本的权重,而降低那些被正确分类的样本的权重。这样一来,那些在上一轮分类器中没有得到正确分类的样本,由于其权重的增大而在后一轮的训练中“备受关注”。各个弱分类器的组合是通过原创 2021-04-20 10:40:00 · 141 阅读 · 0 评论 -
Datawhale集成学习中
集成学习1. 投票法原理2. 投票法代码1. 投票法原理投票法的思想可以理解成“众人拾柴火焰高”。面对一个新的问题,当一个人独自去判断的话,出错的可能性是很大的。但是当一群人一起去判断的话,出错的概率就大大降低了。投票法在回归模型与分类模型上均可使用:回归投票法:预测结果是所有模型预测结果的平均值。分类投票法:预测结果是所有模型种出现最多的预测结果。分类投票法又可以被划分为硬投票与软投票。硬投票就是预测结果是所有投票结果最多出现的类。软投票就是预测结果是所有投票结果中概率加和最大的类。相对于原创 2021-04-13 23:33:28 · 190 阅读 · 1 评论 -
集成学习之Blending
1. Blending算法流程Blending的算法思想是用一层一层的学习器不断的去学习,下一层的学习器使用上一层学习器的输出作为自己的输入。具体的算法流程为:将数据划分为训练集和测试集(test_set),其中训练集需要再次划分为训练集(train_set)和验证集(val_set);创建第一层的多个模型,这些模型可以使同质的也可以是异质的;使用train_set训练步骤2中的多个模型,然后用训练好的模型预测val_set和test_set得到val_predict,test_predict1;原创 2021-05-10 22:50:47 · 218 阅读 · 0 评论 -
集成学习之Stacking
1. Stacking算法流程上次学习的集成算法是Blending算法,Blending在集成的过程中只会用到验证集的数据,对数据实际上是一个很大的浪费,而Stacking算法就是针对这个缺陷而提出的新的算法。Stacking算法的具体流程是:首先将所有数据集生成测试集和训练集(假如训练集为10000,测试集为2500行),那么上层会进行5折交叉检验,使用训练集中的8000条作为训练集,剩余2000行作为验证集(橙色)。每次验证相当于使用了蓝色的8000条数据训练出一个模型,使用模型对验证集进行验原创 2021-05-12 23:09:29 · 613 阅读 · 0 评论 -
拜师学习之降维
降维特征选择主成分分析1. 特征选择1.1 过滤式通过方差进行过滤,去除方差过小的特征from sklearn.preprocessing import VarianceThresholdX = [[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]]elector = VarianceThreshold()selector.fit_transform(X)'''array([[2, 0], [1, 4], [1, 1]])原创 2021-07-11 19:42:39 · 120 阅读 · 0 评论 -
拜师学习之回归
1. 回归回归的一个重要特征就是,其目标值是连续的。本节主要介绍了线性回归和岭回归的实例。1.1 线性回归实例from sklearn.datasets import load_bostonfrom sklearn.linear_model import LinearRegression, SGDRegressor, Ridge, LogisticRegressionfrom sklearn.model_selection import train_test_splitfrom sklearn原创 2021-07-26 19:09:28 · 151 阅读 · 0 评论 -
拜师之特征抽取
1. 文本特征抽取CountVectorizer()函数用来统计词语出现的次数。下面看一个例子原文地址from sklearn.feature_extraction.text import CountVectorizertexts=["dog cat fish","dog cat cat","fish bird", 'bird'] # “dog cat fish” 为输入列表元素,即代表一个文章的字符串cv = CountVectorizer()#创建词袋数据结构cv_fit=cv.fit_t原创 2021-07-10 17:30:37 · 146 阅读 · 0 评论 -
XGBoost实例(三)
1. 自定义随时函数下面的代码自定义了XGBoost的随时函数。XGBoost要求我们在自定义随时函数的时候,给出其一阶导函数和二阶导函数的值的表达式。同时,XGBoost也允许使用者给出自定义的评价函数,用以评价训练出来的模型的性能。import xgboost as xgbimport numpy as np# 1、xgBoost的基本使用# 2、自定义损失函数的梯度和二阶导# 3、binary:logistic/logitraw# 定义f: theta * xdef log_re原创 2021-09-04 21:50:53 · 1210 阅读 · 0 评论 -
聚类分析的一些笔记
原创 2021-09-12 09:11:18 · 116 阅读 · 0 评论 -
XGBoost公式推导
原创 2021-08-24 11:25:10 · 122 阅读 · 0 评论 -
SVM实践
1. SVM多分类案例SVM从原理而言只能做二分类任务。但是如果我们同时使用多个SVM去对数据进行拟合,就可以实现多分类的任务了。在sklearn包中,我们可以选择两种方式( decision_function_shape参数)去实现多分类任务,第一种是“ovo”,即一对一模式,如我们要将数据分为四类,便需要建立六个分类器(1vs2,1vs3,1vs4,2vs3,2vs4,3vs4)。第二种是“ovr”模型,即一对其他模型,如我们要将数据分为四类,便需要建立四个分类器(1 vs others,2 vs o原创 2021-09-09 10:14:06 · 802 阅读 · 0 评论 -
EM算法小结
原创 2021-08-28 17:43:28 · 105 阅读 · 0 评论 -
数据预处理的一些小技巧
1. 时序数据的异常值处理在本节,我们将介绍如何利用机器学习模型对时序数据进行异常值处理。我们以下图为例进行介绍,左一表示的是原始的时序数据,而中间一图中的绿色部分表示其中出现异常的点。在本节中,我们利用Bagging模型对异常的数据进行预测,从而替代原先异常的点。最终,我们可以得到右图中的数据分布。明显的,这个数据更加合理。上述处理的代码如下:import numpy as npimport matplotlib as mplimport pandas as pdimport matplot原创 2021-08-03 20:12:03 · 533 阅读 · 0 评论 -
拜师之朴素贝叶斯
朴素贝叶斯1. 原理朴素贝叶斯常用于文档分类。该算法要求特征独立,通过比较给定文档条件下各种类别的概率进行文档分类。有时候我们训练集中某个词的出现次数可能为0,最终造成预测概率为0。这显然是不合理的,这时候就要用到拉普拉斯平滑。2. 实例from sklearn.datasets import fetch_20newsgroupsfrom sklearn.model_selection import train_test_split, from sklearn.feature_extra原创 2021-07-17 15:48:57 · 146 阅读 · 0 评论 -
逻辑回归与K-means
1. 逻辑回归逻辑回归的想法就是通过sigmod函数将预测值的范围从无穷到零一之间。具体的公式如下所示:上面介绍了逻辑回归的策略,下面介绍一下逻辑回归的损失函数(类似于决策树中介绍过的信息熵)逻辑回归的实例:from sklearn.datasets import load_bostonfrom sklearn.linear_model import LinearRegression, SGDRegressor, Ridge, LogisticRegressionfrom sklearn原创 2021-07-31 15:54:06 · 316 阅读 · 0 评论 -
信息论小结
本节主要讲解了信息论里面的一些基础概念。更详细的可以参考(https://zhuanlan.zhihu.com/p/26551798或者https://zhuanlan.zhihu.com/p/36192699或者https://www.zhihu.com/question/304499706/answer/544609335)1. 熵熵是很常见的概念,也是决策树里面的基础。它可以衡量事件的不确定性。比如,抛一枚有均匀正反面的硬币,和掷一个均匀六面的骰子,哪一种试验的不确定性更强一点呢?熵的定义是:对原创 2021-08-07 16:47:58 · 390 阅读 · 0 评论 -
SVM推导(一)
原创 2021-09-05 23:09:48 · 98 阅读 · 0 评论 -
梯度下降小结
1. 梯度下降梯度下降主要是用来寻找函数的最值。其思想就是寻找函数的最快下降方向,进而沿着该方向进行函数数值的迭代。我们可以从下面这张图较为形象地了解梯度下降的原理。如何寻找上面说到的最快方向呢?我们可以从泰勒公式来看,其中 df(x)vdf(x)vdf(x)v 为变化值。需要注意的是,此时df(x)df(x)df(x)和vvv均为向量。而两个向量在什么时候的内积最大呢?就是二者方向相同的时候。这就解释了我们选择函数的梯度作为每次下降的方向。同时我们也可以看出,梯度下降是可以保证函数在不断原创 2021-08-04 16:46:39 · 238 阅读 · 0 评论 -
决策树与随机森林实例
分别使用决策树和随机森林对泰坦尼克号数据进行分析1. 决策树实例from sklearn.model_selection import train_test_splitfrom sklearn.feature_extraction import DictVectorizerfrom sklearn.tree import DecisionTreeClassifier, export_graphvizfrom sklearn.ensemble import RandomForestClassifie原创 2021-07-18 16:02:25 · 620 阅读 · 0 评论 -
莺尾花数据(画出不同分类器的ROC曲线)
本节主要是通过著名的莺尾花数据来介绍如何画出ROC曲线。Iris 鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含 3 类共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种。本节选取了KNN、逻辑回归、SVM三种分类器对数据集进行分类处理。代码如下:import numpy原创 2021-08-05 16:33:33 · 2279 阅读 · 0 评论 -
决策树与随机森林实例(二)
1. 决策树分类import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport matplotlib as mplfrom sklearn import treefrom sklearn.tree import DecisionTreeClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.pipeline imp原创 2021-08-20 15:31:33 · 307 阅读 · 0 评论 -
聚类分析实战
1. K-Means++K-Means算法就不再多说了,主要用到了sklearn中的KMeans函数,并将设置init='k-means++'即可。K-Means++主要需要调节的参数是簇的个数,也就是函数中的n_clusters参数。具体的实例如下,代码中探索了不同数据分布对K-Means++算法的影响。import numpy as npimport matplotlib.pyplot as pltimport sklearn.datasets as dsimport matplotlib.c原创 2021-09-16 10:39:46 · 513 阅读 · 0 评论 -
文本分类实例和Word2vec实例
本节的代码做了一下简单的文本分类,文本选用的是sklearn中自带的文本,加载后使用td-idf将文本向量化,之后采取了多种分类器进行了分类,并比较了各个分类器之间的误差。import numpy as npfrom sklearn.naive_bayes import MultinomialNB, BernoulliNBfrom sklearn.datasets import fetch_20newsgroupsfrom sklearn.feature_extraction.text import原创 2021-09-21 10:39:45 · 6090 阅读 · 0 评论 -
LSA模型和LDA模型在文本处理中的应用
from gensim import corpora, models, similaritiesfrom pprint import pprint# import logging# logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)if __name__ == '__main__': f = open('LDA_test.txt') stop_li原创 2021-09-24 10:33:10 · 256 阅读 · 0 评论 -
HMM模型做中文分词
本节代码通过HMM模型进行了中文分词import mathimport matplotlib.pyplot as pltimport numpy as npimport codecsimport randominfinite = -(2**31)def log_normalize(a): s = 0 for x in a: s += x s = math.log(s) for i in range(len(a)): if a原创 2021-09-26 22:24:33 · 291 阅读 · 0 评论 -
GMM与EM算法
GMM,也即混合高斯模型,可以用来拟合多类别的混合数据,也因此可以用来作为一种无监督的分类算法。具体做法也较为简单,即将数据代入模型中,观察其在哪个高斯分布下的概率密度值最高,就将其分为哪一类。而EM算法在其中的作用即是用来估计GMM的各个参数。import numpy as npfrom sklearn.mixture import GaussianMixturefrom sklearn.model_selection import train_test_splitimport matplotli原创 2021-09-19 10:51:36 · 365 阅读 · 0 评论