自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 收藏
  • 关注

原创 【Python机器学习】无监督学习(理论知识)

无监督学习包括没有已知输出、没有“老师指导”学习算法的各种机器学习。在无监督学习中,学习算法只有输入数据,并需要从这些数据中提取知识。

2024-01-19 19:08:32 509

原创 【Python机器学习】多分类问题的不确定度

decision_function和predict_proba也适用于多分类问题

2024-01-19 18:19:58 489

原创 【排序算法】快速排序的改进

快速排序有以下几种思路可以优化,一般来说,可以提升20%~30%的性能

2024-01-19 17:50:40 494

原创 【排序算法】快速排序的性能特点

快速排序切分方法的内循环会用一个递增的索引将数组元素和一个定值作比较。这种简洁性是快速排序的一个优点。归并排序和希尔排序一般都比快速排序慢,原因就是他们还在内循环中移动数据。

2024-01-18 17:08:22 434

原创 【排序算法】快速排序的基本算法

快速排序是应用最广泛的排序算法,流行的原因是它实现简单,适用于各种不同的输入数据且在一般应用中比其他排序算法都要快得多。快速排序引人注目的特点是原地排序,只需要一个很小的辅助栈,且将长度为N的数组排序所需时间和NlgN成正比。另外,快速排序的内循环比其他大多数排序算法都要短小。它的主要缺点是非常脆弱,在实现时需要非常小心才能避免低劣的性能。

2024-01-18 16:26:09 686

原创 【排序算法】Python实现——选择排序、插入排序、希尔排序

Python实现——选择排序、插入排序、希尔排序

2024-01-18 14:34:47 494

原创 【排序算法】排序算法的复杂度

研究复杂度的第一步是建立一个计算模型。一般来说,研究者会尽量寻找一个和问题相关的最简单的模型。对排序来说,研究对象是基于比较的算法,它们对数组元素的操作方式是由主键的比较决定的。一个基于比较的算法在两次比较之间可能会进行任意规模的计算,但它只能通过主键之间的比较得到某个主键的信息。

2024-01-17 19:03:58 497

原创 【排序算法】自底向上的归并排序

递归实现的归并排序是算法设计中分治思想的典型应用。实现归并排序的另一种方法是先归并那些微型数组,然后再成对的归并得到的子数组,循环操作,最终得到排序完成的数组。这种实现方法比标准递归方法代码量更少。

2024-01-17 18:29:33 577

原创 【排序算法】自顶向下的归并排序

要将一个数组排序,可以先递归的将它分成两半分别排序,然后将结果归并起来,这就是归并排序。归并排序最吸引人的性质是它能够保证将任意长度为N的数组排序所需时间和NlogN成正比,它的主要缺点是它需要额外的与N成正比的空间。

2024-01-17 18:08:48 579

原创 【排序算法】希尔排序

希尔排序的思想是使数组中任意间隔为h的元素都是有序的。这样的数组被称为h有序数组。在排序时,如果h很大,就能将元素移动到很远的地方,为实现更小的h有序创造条件。用这种方法,对于任意以1为结尾的h序列,都能够将数组排序。这就是希尔排序。

2024-01-16 18:26:33 961

原创 【排序算法】插入排序

插入排序:为了给要插入的元素腾出空间,将其余所有元素在插入之前都向右移动一位。与选择排序一样,插入排序中当前索引左边的所有元素都是有序的,但它们的最终位置还不确定,当索引到达数组的右端时,数组排序就完成了。

2024-01-16 17:44:04 698

原创 【算法】选择排序

最简单的排序算法:首先,找到数组中最小的元素,其次,将它和第一个元素交换位置;然后,在剩下的元素中找到最小的元素,将它和第二个元素交换位置;如此往复,直到将整个数组排序,这种方法叫做选择排序,因为他在数组里不断地选择剩余元素的最小者。

2024-01-16 17:21:04 666

原创 【算法基础】java基础——字符串&输出

字符串是由一串字符(char类型的值)组成的。一个string类型的字面量包括一对双引号和其中的字符,比如"hello world"。String非常基础,几乎所有Java程序都会用到。

2024-01-15 15:27:41 392

原创 【算法基础】java基础——数组&静态方法

数组能够顺序存续相同类型的多个数据。

2024-01-15 14:27:11 403

原创 【算法基础】java基础——基本结构、数据类型、表达式、语句

数据类型就是一组数据和对其所能进行的操作的集合。Java最基本的数据类型:整型、双精度实数类型、布尔型、字符型。Java程序控制的是用标识符命名的变量。每个变量都有自己的类型并存储了一个合法的值。

2024-01-15 13:42:25 430

原创 【java】创建打印数组的方法并调用

java的数组和Python不一样,不能直接用print打印,而如果每次都用循环的方法,比较麻烦,就直接创建一个类&方法,每次用的时候直接调用。

2024-01-14 20:59:07 348

原创 【Python机器学习】分类器的不确定估计——预测概率

predict_proba的输出是每个类别的概率,通常比decision_function的输出更容易理解,对于二分类问题,它的形状始终是(n_samples,2)。

2024-01-13 18:22:42 472

原创 【Python机器学习】分类器的不确定估计——决策函数

scikit-learn接口的分类器能够给出预测的不确定度估计,一般来说,分类器会预测一个测试点属于哪个类别,还包括它对这个预测的置信程度。

2024-01-13 18:02:12 419

原创 【Python机器学习】深度学习(神经网络)的优缺点

在机器学习的许多应用中,神经网络是最先进的模型之一,它的主要优点之一是能够获取大量数据中包含的信息,并构建无比复杂的模型。给定足够的计算时间和数据,并且仔细调节参数,神经网络通常可以打败其他机器学习算法。

2024-01-12 23:29:52 558

原创 【Python机器学习】深度学习——调参

神经网络学到的决策边界完全是非线性的,但相对平滑,默认情况下,MLP使用100个隐结点,可以减少数量,降低模型复杂度,对于小型数据集来说,仍然可以得到很好的结果。

2024-01-12 17:43:30 545

原创 【Python机器学习】深度学习——一些理论知识

深度学习在很多机器学习应用中都有巨大的潜力,但深度学习算法往往经过精确调整,只适用于特定的使用场景。先学习一些简单的方法,比如用于分类和回归的多层感知机(MLP),它可以作为研究更复杂的深度学习方法的起点。MPL也被称为(普通)前馈神经网络,有时也简称为神经网络。

2024-01-12 14:16:38 603

原创 【算法】简单的二分查找算法

二分查找算法由静态方法rank()实现,它接受一个整数键和一个有序的int数组作为参数,如果整数存在于数组,返回它的索引,否则返回-1,算法使用两个变量lo和hi,并保证整数如果存在于数组中则它一定存在于a[lo...hi]中,然后通过循环不断查找,每次查找如果没有查找到就将查找范围缩小一半。

2024-01-12 10:53:39 680

原创 【Python机器学习】SVM的优缺点

核支持向量机是非常强大的模型,SVM允许决策边界很复杂,即使数据只有几个特征。它在低维数据和高维数据上的表现都很好,但对样本个数的缩放表现不好。在有多大10000个样本的数据上运行SVM可能表现良好,但更高数量级的数据上,在运行时间和内存使用方面可能面临调整。

2024-01-11 10:56:10 374

原创 【Python机器学习】SVM——预处理数据

为了解决特征特征数量级差异过大,导致的模型过拟合问题,有一种方法就是对每个特征进行缩放,使其大致处于同一范围。核SVM常用的缩放方法是将所有的特征缩放到0和1之间。

2024-01-11 10:29:45 1018 1

原创 【Python机器学习】SVM——调参

gamma参数用于控制高斯核的宽度,它决定了点与点之间“靠近”是指多大的距离,C参数是正则化参数,与线性模型类似,它限制了每个点的重要性(dual_coef_)。

2024-01-11 09:58:45 1086

原创 【Python机器学习】SVM——一些理论知识

向数据中添加非线性特征,可以让线性模型变得强大,但是通常来说我们不知道要添加哪些特征,而且添加许多特征的计算开销会很大。有一种技巧可以在更高维度中学习分类器,而不用实际计算可能非常大的新的数据表示,这种技巧叫做核技巧,它的原理是直接计算扩展特征表示中数据点的距离(内积),而不用实际对扩展进行计算。

2024-01-10 19:10:17 344

原创 【Python机器学习】SVM——线性模型与非线性特征

SVM(核支持向量机)是一种监督学习模型,是可以推广到更复杂模型的扩展,这些模型无法被输入空间的超平面定义。

2024-01-10 16:15:31 617

原创 【Python机器学习】决策树集成——梯度提升回归树

梯度提升回归树通过合并多个决策树来构建一个更为强大的模型。虽然名字里有“回归”,但这个模型既能用于回归,也能用于分类。与随机森林方法不同,梯度提升采用连续的方式构造树,每棵树都试图纠正前一棵树的错误。默认情况下,梯度提升回归树中没有随机化,而是用到了强预剪枝。梯度提升树通常使用深度很小(1-5之间),这样的模型占用内存小,预测速度也更快。

2024-01-10 11:56:27 1531

原创 【Python机器学习】决策树集成——随机森林

随机森林本质上是许多决策树的集合,其中每棵树都和其他数略有不同,随机森林背后的思想是:每棵树的预测可能都比较好,但是可能对部分数据过拟合,如果构造很多树,并且每棵预测的都很好,但都以不同的方式过拟合,那么可以对这些树的结果取平均来降低过拟合。

2024-01-09 18:36:23 1739

原创 【Python机器学习】决策树的优缺点

控制决策树模型复杂度的参数是预剪枝参数,它在树完全展开之前停止树的构造

2024-01-09 15:04:09 398

原创 【Python机器学习】用于回归的决策树

用于回归的决策树与用于分类的决策树类似,在DecisionTreeRegressor中实现。DecisionTreeRegressor不能外推,也不能在训练数据范围之外的数据进行预测。

2024-01-09 14:24:56 738

原创 【Python机器学习】决策树——树的特征重要性

利用一些有用的属性来总结树的工作原理,其中最常用的事特征重要性,它为每个特征树的决策的重要性进行排序。对于每个特征来说,它都是介于0到1之间的数字,其中0代表“根本没有用到”,1代表“完美预测目标值”。特征重要性的求和为1。

2024-01-09 14:08:46 1026

原创 【Python机器学习】构造决策树

为了防止过拟合,有两种常见策略:1、尽早停止树的生长,也叫预剪枝2、先构造树,但随后删除或折叠信息量很少的结点,也叫后剪枝。预剪枝的限制条件可能包含限制树的最大深度、限制叶结点的最大数目、规定一个结点中数据点的最小数目。

2024-01-08 19:48:39 1067

原创 【Python】Graphviz的安装和使用

graphviz包可以用来决策树可视化,只安装包之后直接import使用会报错,因为graphviz是一个要单独安装的软件。

2024-01-08 19:37:32 650

原创 【Python机器学习】理论知识:决策树

决策树是广泛用于分类和回归任务的模型,本质上是从一层层if/else问题中进行学习,并得出结论。这些问题类似于“是不是”中可能问到的问题。

2024-01-08 18:20:02 764

原创 【Python机器学习】朴素贝叶斯分类器

朴素贝叶斯分类器是与线性模型非常相似的一种分类器,它的训练速度往往更快,但是泛化能力比线性分类器稍差。

2024-01-07 16:36:32 486

原创 【Python机器学习】线性模型的优缺点

线性模型的主要参数是正则化参数。在回归模型里是alpha,在一些分类模型里是C。alpha越大或C越小,说明模型越简单,通常在对数尺度上对alpha和C进行调节。

2024-01-07 15:11:03 446

原创 【Python机器学习】线性模型——用于多分类的线性模型

很多线性分类模型只使用与二分类问题,将二分类算法推广到多分类算法的一种常见方法是“一对其余”方法。在“一对其余”方法中,对每个类别都学习一个二分类模型,将这个类别和其他类别尽量区分,这样就生成了与类别数相同的二分类模型数。在测试点上运行所有分类器进行预测,在对应类别上分数最高的分类器“胜出”,将这个类别标签范围作为预测结果。

2024-01-07 14:48:19 646

原创 【Python机器学习】线性模型——用于二分类的线性模型

线性模型也广泛用于分类问题,对于二分类问题,可以用以下公式进行预测:y=w[0]*x[0]+w[1]*x[1]+…………+w[p]*x[p]+b>0公式与现行回归的公式非常类似,但没有返回特征的加权求和,而是为预测设置了阈值。如果函数值小于0,就预测类别-1,否则预测类别+1。

2024-01-07 10:52:08 659

原创 【Python机器学习】线性模型——lasso

除了岭回归,还有一种正则化的线性回归是lasso,与岭回归相同,使用lasso也是约束系数使其接近于0,但方法不同,叫做L1正则化。L1正则化的结果是使用lasso时某些系数刚好为0。说明某些特征被模型完全忽略。

2024-01-06 15:05:34 447

ram-price文件

ram-price文件

2024-01-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除