![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习
文章平均质量分 62
机器学习
Architect_0
这个作者很懒,什么都没留下…
展开
-
K-Means聚类算法中可能出现的问题 python
K-Means聚类尝试将样本数据集分成具有相同方差的n个类。详解K-Means:https://zhuanlan.zhihu.com/p/787982511.sklearn建立K-Means聚类算法首先看一个简单且典型的的K-Means聚类算法的所得到的效果。可以看到数据集被正确的分成了三类。接下来开始分析K-Means聚类方法随着迭代次数的分步演变过程。2.分步演变过程伪代码如下获取数据 n 个 m 维的数据随机生成 K 个 m 维的点while(t) for(int i原创 2021-06-23 03:47:38 · 4663 阅读 · 1 评论 -
代码:非参数密度估计的三种python实现 (直方图,核密度估计,K近邻)
我们经常不知道数据是根据什么类型的函数进行分布, 此时就需要非参数密度估计的方法。 本文对同一组数据进行了三种不同的非参数密度估计, 即直方图,核密度估计,K近邻。使用数据集:https://download.csdn.net/download/weixin_42388833/19418489?spm=1001.2014.3001.55011. 直方图计算并画出数据分布的直方图(size of bin = 0.02, 0.5, 2.0)import numpy as npimport matpl原创 2021-06-15 21:06:07 · 3425 阅读 · 0 评论 -
支持向量机SVM分类实现(Kernel-Tricks, 正则化,Gridsearch) python
1. 线性划分从最简单的开始,即存在超平面可以完美分割两个label的数据。此时不需要使用正则化(C取很大)就可以通过一个线性核函数训练SVM。即点不会出现在分离超平面以内。2. 核技巧 Kernel-Tricks当线性核函数无法满足数据分类的情况时(例如同心圆数据集),SVM允许使用核技巧Kernel-Tricks,也就是说选择适当的核函数,使得数据可以线性分割。最常用的核函数就是径向基核函数RBFhttps://baike.baidu.com/item/%E5%BE%84%E5%90%91原创 2021-06-22 20:06:11 · 842 阅读 · 0 评论 -
三个参数对随机森林分类结果的影响(附代码)
使用手写数据集研究集成规模,树的最大深度以及特征数对随机森林分类结果的影响。代码在末尾。使用交叉验证,返回accuracy,折数为101. 集成规模n_estimators集成规模即树的数量。为了观察其影响,分别对数量1~40进行交叉验证,返回得到准确率并绘图。观察可得,集成规模的增加可以提高模型在训练集和测试集上的准确度,这是因为增加树的数量可以减少偏差和方差,还可以发现模型不会随着复杂度的增加而过度拟合训练数据。2. 树的最大深度max_depth树的最大深度反映了单个树的复杂度,将集成原创 2021-05-31 02:59:52 · 2067 阅读 · 0 评论 -
决策树vs随机森林简单对比
为了进行决策树与随机森林的简单实现与对比,使用一组分类和回归数据集。from sklearn import datasets# Get the data loaderloader_classification = [ ("Iris", datasets.load_iris), ("Digits", datasets.load_digits), ("Wine", datasets.load_wine), ("Breast Cancer",原创 2021-05-31 01:40:15 · 3411 阅读 · 0 评论 -
使用Adaboost实现make_circles数据集的分类(sklearn)
使用Adaboost进行分类的基本思想是基于弱分类器的Boosting, 在每次迭代的样本中,增加上一次迭代中分类错误的样本的权重。下面是基本的使用Adaboost和决策树(层数为1)对make_circle进行分类。# coding: utf-8# Referenzen# - https://scikit-learn.org/stable/modules/ensemble.html#adaboost# - https://xavierbourretsicotte.github.io/AdaBo原创 2021-06-22 04:35:40 · 447 阅读 · 0 评论 -
梯度提升Gradient Boosting进行正弦函数回归&浅析损失函数和学习率影响
1. 正弦函数回归# coding: utf-8# - https://scikit-learn.org/stable/modules/ensemble.html#gradient-boosting# [1] J. Friedman, Greedy Function Approximation: A Gradient Boosting Machine, The Annals of Statistics, Vol. 29, No. 5, 2001.# [2] T. Hastie, R. Tibs原创 2021-06-22 14:55:15 · 564 阅读 · 0 评论 -
Adaboost实现手写数字数据集的分类(sklearn),浅析分类器数目、学习率的影响
使用Adaboot对手写数字数据集sklearn.datasets.load_digits进行分类。1.首先对前五个数字进行了展示2.训练AdaboostClassifier,使用AdaBoostClassifier.stagend_predict(x)可以获得分阶段的预测结果。求得对数据集的随着迭代次数增加(弱分类器的增加)的误差变化情况。观察可知,随着分类器的增加,Adaboost模型的分类的表现会更好。3.最后研究了学习率对Adaboost模型的影响。在Adaboost中,学习率即每次新训原创 2021-06-22 05:50:36 · 1123 阅读 · 0 评论 -
Batch\Stochastic\Mini-Batch 梯度下降法
梯度下降法存在一些变体, 本文讨论三种,即vanilla(batch),stochastic 和 mini-batch。不同之处在于,我们使用多少数据来计算目标函数的梯度。1. 批量梯度下降法(Vanilla\Batch Gradient Descent)Vanilla指的是某一事物标准,通常或者未修改的版本。所以批量梯度下降法就是基本的梯度下降法,即在整个数据集上对每个参数求目标函数的偏导数。优点:当目标函数为凸函数,批量梯度下降法必然会在全局最小值处收敛(否则可能会在局部极小值处收敛)缺点:原创 2021-06-15 21:04:53 · 209 阅读 · 0 评论 -
梯度下降法中学习率的影响(附代码实现)
Rosenbrock’s 函数是优化问题的基准问题:f(x)=∑i=1n−1[100(xx+1−xi2)2+(xi−1)2]f(x)=\sum_{i=1}^{n-1}[100(x_{x+1}-x_{i}^2)^2+(x_i-1)^2]f(x)=i=1∑n−1[100(xx+1−xi2)2+(xi−1)2]本文实现了一个基本的梯度下降法的算法,并且实现了两种学习率的确定方式,即Line Search 和 Constant Learning Rate。代码末尾。Constant Learnin原创 2021-06-15 21:05:41 · 2021 阅读 · 0 评论