原文:https://cloud.tencent.com/community/article/161873
12)分类决策树C4.5
C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:1) 用信息增益率 来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;2) 在树构造过程中进行剪枝;3) 能够完成对连续属性的离散化处理;4) 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集 ,当训练集大得无法在内存容纳时程序无法运行。
构建一个决策树时,有2个重点,第一个是构建树的过程中首先选择哪个属性进行判断,即选择哪个属性作为根节点。 这个叫做属性选择度量 ,度量方式常见的有3种, ID3使用信息增益度, C4.5采用信息增益率, CART采用GINI指标 。第二个是如何修剪这棵树,即减枝。
信息增益率 使用“分裂信息”值将信息增益规范化。分类信息类似于Info(D),定义如下:
这个值表示通过将训练数据集D划分成对应于属性A测试的v个输出的v个划分产生的信息。信息增益率定义:
选择具有最大增益率的属性作为分裂属性。
13)集成学习
集成学习(英文: Ensemble Learning)是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果 的一种机器学习方法。集成学习的思路是在对新的实例进行分类的时候,把若干个单个分类器集成起来,通过对多个分类器的分类结果进行某种组合来决定最终的分类,以取得比单个分类器更好的性能。如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。
集成学习方法是机器学习领域中用来提升分类算法准确率 的技术,主要包括Bagging和Boosting即装袋和提升。
14)集成学习之Bagging算法
装袋算法(bagging)采取自助法的思路,从样本中随机抽样,形成多个训练样本 ,生成多个树模型。然后以多数投票的方式来预测结果 。相同的分类器,各个分类器是独立的;使用同一个算法对样本多次训练,建立多个独立的分类器;最终的输出为各个分类器的投票(用于分类)或取平均值(用于数值预测)。
15)集成学习之Boosting算法
Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数。他是一种框架算法,主要是通过对样本集的操作获得样本子集,然后用弱分类算法在样本子集上训练生成一系列的基分类器。他可以用来提高其他弱分类算法的识别率,也就是将其他的弱分类算法作为基分类算法放于Boosting 框架中,通过Boosting框架对训练样本集的操作,得到不同的训练样本子集,用该样本子集去训练生成基分类器;每得到一个样本集就用该基分类算法在该样本集上产生一个基分类器,这样在给定训练轮数 n 后,就可产生 n 个基分类器,然后Boosting框架算法将这 n个基分类器进行加权融合,产生一个最后的结果分类器,在这 n个基分类器中,每个单个的分类器的识别率不一定很高,但他们联合后的结果有很高的识别率,这样便提高了该弱分类算法的识别率。在产生单个的基分类器时可用相同的分类算法,也可用不同的分类算法,这些算法一般是不稳定的弱分类算法,如神经网络(BP) ,决策树(C4.5)等。
Boosting最早由Schapire 提出,Freund 对其进行了改进。通过这种方法可以产生一系列神经网络,各网络的训练集决定于在其之前产生的网络的表现,被已有网络错误判断的示例将以较大的概率出现在新网络的训练集中。这样,新网络将能够很好地处理对已有网络来说很困难的示例。另一方面,虽然Boosting方法能够增强神经网络集成的泛化能力,但是同时也有可能使集成过分偏向于某几个特别困难的示例。因此,该方法不太稳定,有时能起到很好的作用,有时却没有效果 。值得注意的是,Schapire 和Freund 的算法在解决实际问题时有一个重大缺陷,即它们都要求事先知道弱学习算法学习正确率的下限,这在实际问题中很难做到。1995年,Freund和Schapire 提出了AdaBoost(Adaptive Boost)算法 ,该算法的效率与Freund算法 很接近,却可以非常容易地应用到实际问题中,因此,该算法已成为目前最流行的Boosting算法。
Bagging 方法中,各神经网络的训练集由从原始训练集中随机选取若干示例组成,训练集的规模通常与原始训练集相当,训练例允许重复选取。这样,原始训练集中某些示例可能在新的训练集中出现多次,而另外一些示例则可能一次也不出现。Bagging方法通过重新选取训练集增加了神经网络集成的差异度,从而提高了泛化能力。Breiman 指出,稳定性是Bagging能否发挥作用的关键因素,Bagging能提高不稳定学习算法的预测精度,而对稳定的学习算法效果不明显,有时甚至使预测精度降低。学习算法的稳定性是指如果训练集有较小的变化,学习结果不会发生较大变化,例如,k最近邻方法是稳定的,而判定树、神经网络等方法是不稳定的。
Bagging与Boosting 的区别在于Bagging 的训练集的选择是随机的,各轮训练集之间相互独立 ,而Boosting的训练集的选择不是独立的,各轮训练集的选择与前面各轮的学习结果有关;Bagging 的各个预测函数没有权重,而Boosting是有权重的;Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成 。对于象神经网络这样极为耗时的学习方法,Bagging可通过并行训练节省大量时间开销。
此外还存在多种个体生成方法。例如,有些研究者 利用遗传算法来产生神经网络集成中的个体;有些研究者使用不同的目标函数、隐层神经元数、权空间初始点等来训练不同的网络,从而获得神经网络集成的个体。
16)集成学习之随机森林算法
随机森林(Random Forest算法),指的是利用多棵树对样本进行训练并预测的一种分类器。该分类器最早由Leo Breiman和Adele Cutler提出,并被注册成了商标。简单来说,随机森林就是由多棵CART(Classification And Regression Tree)构成的 。对于每棵树,它们使用的训练集是从总的训练集中有放回采样 出来的,这意味着,总的训练集中的有些样本可能多次出现在一棵树的训练集中,也可能从未出现在一棵树的训练集中。在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例随机地无放回的抽取的,根据Leo Breiman的建议,假设总的特征数量为M,这个比例可以是sqrt(M),1/2sqrt(M),2sqrt(M)。
因此,随机森林的训练过程可以总结如下:
(1)给定训练集S,测试集T,特征维数F。确定参数:使用到的CART的数量t,每棵树的深度d,每个节点使用到的特征数量f,终止条件:节点上最少样本数s,节点上最少的信息增益m,对于第1-t棵树,i=1-t
(2)从S中有放回的抽取大小和S一样的训练集S(i),作为根节点的样本,从根节点开始训练。
(3)如果当前节点上达到终止条件,则设置当前节点为叶子节点,如果是分类问题,该叶子节点的预测输出为当前节点样本集合中数量最多的那一类c(j),概率p为c(j)占当前样本集的比例;如果是回归问题,预测输出为当前节点样本集各个样本值的平均值。然后继续训练其他节点。如果当前节点没有达到终止条件,则从F维特征中无放回的随机选取f维特征。利用这f维特征,寻找分类效果最好的一维特征k及其阈值th,当前节点上样本第k维特征小于th的样本被划分到左节点,其余的被划分到右节点。继续训练其他节点。有关分类效果的评判标准在后面会讲。
(4)重复(2)(3)直到所有节点都训练过了或者被标记为叶子节点。
(5)重复(2),(3),(4)直到所有CART都被训练过。
利用随机森林的预测过程如下:
对于第1-t棵树,i=1-t:
(1)从当前树的根节点开始,根据当前节点的阈值th,判断是进入左节点(=th),直到到达,某个叶子节点,并输出预测值。
(2)重复执行(1)直到所有t棵树都输出了预测值。如果是分类问题,则输出为所有树中预测概率总和最大的那一个类,即对每个c(j)的p进行累计;如果是回归问题,则输出为所有树的输出的平均值。
17)集成学习之迭代决策树算法
GBDT(Gradient Boosting Decision Tree迭代决策树) 又叫 MART(Multiple Additive Regression Tree) ,是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。
GBDT有3个特征。 第一个是构建GBDT的树是回归决策树, 第二个是采用梯度迭代Gradient Boosting, 第三个是Shrinkage缩减技术。
回归树 Regression Decision Tree,提起决策树(DT, Decision Tree) 绝大部分人首先想到的就是C4.5分类决策树。但如果一开始就把GBDT中的树想成分类树,那就是一条歪路走到黑,一路各种坑,所以说千万不要以为GBDT是很多棵分类树。决策树分为两大类,回归树和分类树。前者用于预测实数值,如明天的温度、用户的年龄、网页的相关程度;后者用于分类标签值,如晴天/阴天/雾/雨、用户性别、网页是否是垃圾页面。这里要强调的是,前者的结果加减是有意义的,如10岁+5岁-3岁=12岁,后者则无意义,如男+男+女=到底是男是女? GBDT的核心在于累加所有树的结果作为最终结果 ,就像前面对年龄的累加(-3是加负3),而分类树的结果显然是没办法累加的,所以GBDT中的树都是回归树,不是分类树 ,这点对理解GBDT相当重要(尽管GBDT调整后也可用于分类但不代表GBDT的树是分类树)。
Boosting,迭代,即通过迭代多棵树来共同决策。这怎么实现呢?难道是每棵树独立训练一遍,比如A这个人,第一棵树认为是10岁,第二棵树认为是0岁,第三棵树认为是20岁,我们就取平均值10岁做最终结论?--当然不是!且不说这是投票方法并不是GBDT,只要训练集不变,独立训练三次的三棵树必定完全相同,这样做完全没有意义。之前说过,GBDT是把所有树的结论累加起来做最终结论的,所以可以想到每棵树的结论并不是年龄本身,而是年龄的一个累加量。GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量 。比如A的真实年龄是18岁,但第一棵树的预测年龄是12岁,差了6岁,即残差为6岁。那么在第二棵树里我们把A的年龄设为6岁去学习,如果第二棵树真的能把A分到6岁的叶子节点,那累加两棵树的结论就是A的真实年龄;如果第二棵树的结论是5岁,则A仍然存在1岁的残差,第三棵树里A的年龄就变成1岁,继续学。这就是Gradient Boosting在GBDT中的意义。
Shrinkage(缩减)的思想认为,每次走一小步逐渐逼近结果的效果,要比每次迈一大步很快逼近结果的方式更容易避免过拟合。即它不完全信任每一个棵残差树,它认为每棵树只学到了真理的一小部分,累加的时候只累加一小部分,通过多学几棵树弥补不足。用方程来看更清晰,即没用Shrinkage时:(yi表示第i棵树上y的预测值, y(1~i)表示前i棵树y的综合预测值)
y(i+1) = 残差(y1~yi), 其中: 残差(y1~yi) = y真实值 - y(1 ~ i)
y(1 ~ i) = SUM(y1, ..., yi)
Shrinkage不改变第一个方程,只把第二个方程改为:
y(1 ~ i) = y(1 ~ i-1) + step * yi
即Shrinkage仍然以残差作为学习目标,但对于残差学习出来的结果,只累加一小部分(step残差)逐步逼近目标,step一般都比较小,如0.01~0.001(注意该step非gradient的step),导致各个树的残差是渐变的而不是陡变的。直觉上这也很好理解,不像直接用残差一步修复误差,而是只修复一点点,其实就是把大步切成了很多小步。本质上,*Shrinkage为每棵树设置了一个weight,累加时要乘以这个weight,但和Gradient并没有关系 。这个weight就是step。就像Adaboost一样,Shrinkage能减少过拟合发生也是经验证明的,目前还没有看到从理论的证明。
18)Boosting算法之AdaBoost算法
boosting方法有许多不同的变形。其中最流行的一种就是AdaBoost方法,这个名称是“adaptive boosting”的缩写。这个方法允许设计者不断地加入新的“弱分类器”,直到达到某个预定的足够小的误差率。在AdaBoost方法中,每一个训练样本都被赋予一个权重,表明它被某个分类分类器选入训练集的概率。如果某个样本点已经被准确分类,那么在构造下一个训练集中,它被选中的概率就被降低;相反,如果某个样本点没有被正确分类,那么它的权重就得到提高。通过这样的方式,AdaBoost方法能够“聚焦于”较为困难(更富有信息)的样本上 。在具体实现上,最初令每一个样本的权重都相同,对于第k次迭代操作,我们就根据这些权重来选取样本点,进而训练分类器,然后根据这个分类器来提高被他错分的那些样本点的权重,并降低被正确分类的样本权重。
19)KNN
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类 技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。
算法流程如下:1. 准备数据,对数据进行预处理;2. 选用合适的数据结构存储训练数据和测试元组;3. 设定参数,如k;4.维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组。随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列;5. 遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L 与优先级队列中的最大距离Lmax;6. 进行比较。若L>=Lmax,则舍弃该元组,遍历下一个元组。若L < Lmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列。7. 遍历完毕,计算优先级队列中k 个元组的多数类,并将其作为测试元组的类别。8. 测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k 值;
KNN的优点在于:1.简单,易于理解,易于实现,无需估计参数,无需训练;2. 适合对稀有事件进行分类;3.特别适合于多分类问题(multi-modal,对象具有多个类别标签), kNN比SVM的表现要好。
KNN的缺点在于:该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。 该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。可理解性差,无法给出像决策树那样的规则。
20)神经网络
人工神经元 是神经网络的基本元素,其原理可以用下图表示:
常见的激活函数有以下5类:
神经网络是由大量的神经元互联而构成的网络。根据网络中神经元的互联方式,常见网络结构主要可以分为下面3类:
(1) 前馈神经网络 ( Feedforward Neural Networks ) 前馈网络也称前向网络。这种网络只在训练过程会有反馈信号,而在分类过程中数据只能向前传送,直到到达输出层,层间没有向后的反馈信号 ,因此被称为前馈网络。感知机( perceptron)与BP神经网络就属于前馈网络。图4是一个3层的前馈神经网络,其中第一层是输入单元,第二层称为隐含层,第三层称为输出层(输入单元不是神经元,因此图中有2层神经元)
(2) 反馈神经网络(Feedback Neural Networks ) 反馈型神经网络是一种从输出到输入具有反馈连接的神经网络,其结构比前馈网络要复杂得多。典型的反馈型神经网络有:Elman网络和Hopfield网络;
(3) 自组织网络 ( SOM ,Self-Organizing Neural Networks ) 自组织神经网络是一种无监督学习网络。它通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数与结构;
"BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法 训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。"
BP是后向传播的英文缩写,那么传播对象是什么?传播的目的是什么?传播的方式是后向,可这又是什么意思呢。传播的对象是误差,传播的目的是得到所有层的估计误差,后向是说由后层误差推导前层误差:
BP的思想可以总结为利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。 BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。BP利用一种称为激活函数 来描述层与层输出之间的关系,从而模拟各层神经元之间的交互反应。激活函数必须满足处处可导的条件 。
你可能感兴趣的:(机器学习/深度学习)
什么是深度学习框架中的计算图?
杰瑞学AI
Computer knowledge NLP/LLMs AI/AGI 深度学习 人工智能 pytorch
在深度学习框架中,计算图是核心的数据结构和抽象概念,它用来表示和定义深度学习模型的计算过程。我们可以把它想象成一个描述数学运算如何组合和执行的有向图。以下是计算图的关键要素和作用:节点:代表操作或变量。操作:数学运算,如加法(+)、乘法(*)、矩阵乘法(matmul)、激活函数(ReLU,sigmoid)、卷积(conv2d)、损失函数(cross_entropy)等。变量:通常是张量,即存储数据
蛋白质结构预测/功能注释/交互识别/按需设计,中国海洋大学张树刚团队直击蛋白质智能计算核心任务
hyperai
蛋白质作为生命活动的主要承担者,在人体生理功能中扮演关键角色。然而传统研究面临结构解析成本高昂、功能注释严重滞后、新型蛋白质设计效率低下等挑战。近年来,生命科学对蛋白质复杂特性解析的需求日益迫切,大数据、深度学习、多模态计算等技术的突破性发展,为构建蛋白质智能计算体系提供了全新的发展契机。蛋白质智能计算体系的构建,使得蛋白质在大规模功能注释、交互预测及三维结构建模等领域取得显著成果,为药物发现与生
【心灵鸡汤】深度学习技能形成树:从零基础到AI专家的成长路径全解析
智算菩萨
人工智能 深度学习
引言:技能树的生长哲学在这个人工智能浪潮汹涌的时代,深度学习犹如一棵参天大树,其根系深深扎入数学与计算科学的沃土,主干挺拔地承载着机器学习的核心理念,而枝叶则繁茂地延伸至计算机视觉、自然语言处理、强化学习等各个应用领域。对于初入此领域的新手而言,理解这棵技能树的生长规律,掌握其形成过程中的关键节点和发展阶段,将直接决定其在人工智能道路上能够走多远、攀多高。技能树的概念源于游戏设计,但在学习深度学习
【计算机毕业设计】基于Springboot的办公用品管理系统+LW
枫叶学长(专业接毕设)
Java毕业设计实战案例 课程设计 spring boot 后端
博主介绍:✌全网粉丝3W+,csdn特邀作者、CSDN新星计划导师、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。主要内容:
【TVM 教程】如何处理 TVM 报错
ApacheTVM是一个深度的深度学习编译框架,适用于CPU、GPU和各种机器学习加速芯片。更多TVM中文文档可访问→https://tvm.hyper.ai/运行TVM时,可能会遇到如下报错:---------------------------------------------------------------AnerroroccurredduringtheexecutionofTVM.F
【PaddleOCR】OCR文本检测与文本识别数据集整理,持续更新......
博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907)博主粉丝群介绍:①群内初中生、
多模态大模型的技术应用与未来展望:重构AI交互范式的新引擎
zhaoyi_he
重构 人工智能
一、引言:为什么多模态是AI发展的下一场革命?过去十年,深度学习推动了计算机视觉和自然语言处理的飞跃,但两者的发展路径长期割裂。随着生成式AI和大模型时代的到来,**多模态大模型(MultimodalFoundationModels)**以统一的建模方式处理图像、文本、音频、视频等多源数据,重塑了“感知-认知-决策”链条,为AGI迈出关键一步。OpenAI的GPT-4o、Google的Gemini
ImportError: /nvidia/cusparse/lib/libcusparse.so.12: undefined symbol: __nvJitLinkComplete_12_4
爱编程的喵喵
Python基础课程 python ImportError torch nvJitLink 解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。 本文主要介绍了ImportError:/home/
【机器学习笔记 Ⅱ】11 决策树模型
巴伦是只猫
机器学习 机器学习 笔记 决策树
决策树模型(DecisionTree)详解决策树是一种树形结构的监督学习模型,通过一系列规则对数据进行分类或回归。其核心思想是模仿人类决策过程,通过不断提问(基于特征划分)逐步逼近答案。1.核心概念节点类型:根节点:起始问题(最佳特征划分点)。内部节点:中间决策步骤(特征判断)。叶节点:最终预测结果(类别或数值)。分支:对应特征的取值或条件判断(如“年龄≥30?”)。2.构建决策树的关键步骤(1)
【机器学习笔记 Ⅱ】10 完整周期
机器学习的完整生命周期(End-to-EndPipeline)机器学习的完整周期涵盖从问题定义到模型部署的全过程,以下是系统化的步骤分解和关键要点:1.问题定义(ProblemDefinition)目标:明确业务需求与机器学习任务的匹配性。关键问题:这是分类、回归、聚类还是强化学习问题?成功的标准是什么?(如准确率>90%、降低10%成本)输出:项目目标文档(含评估指标)。2.数据收集(DataC
【机器学习笔记Ⅰ】13 正则化代价函数
正则化代价函数(RegularizedCostFunction)详解正则化代价函数是机器学习中用于防止模型过拟合的核心技术,通过在原始代价函数中添加惩罚项,约束模型参数的大小,从而提高泛化能力。以下是系统化的解析:1.为什么需要正则化?过拟合问题:当模型过于复杂(如高阶多项式回归、深度神经网络)时,可能完美拟合训练数据但泛化性能差。解决方案:在代价函数中增加对参数的惩罚,抑制不重要的特征权重。2.
【机器学习笔记Ⅰ】6 多类特征
巴伦是只猫
机器学习 机器学习 笔记 人工智能
多类特征(Multi-classFeatures)详解多类特征是指一个特征(变量)可以取多个离散的类别值,且这些类别之间没有内在的顺序关系。这类特征是机器学习中常见的数据类型,尤其在分类和回归问题中需要特殊处理。1.核心概念(1)什么是多类特征?定义:特征是离散的、有限的类别,且类别之间无大小或顺序关系。示例:颜色:红、绿、蓝(无顺序)。城市:北京、上海、广州(无数学意义的大小关系)。动物类别:猫
图像分割技术详解:从原理到实践
lanjieying
本文还有配套的精品资源,点击获取简介:图像分割是图像处理领域将图像分解为多个区域的过程,用于图像分析、特征提取等。文章介绍了图像分割的原理,并通过一个将图像划分为2*4子块的示例,展示了如何使用Python和matplotlib库中的tight_subplot函数进行图像分割和展示。文章还探讨了图像分割在不同领域的应用,以及如何在机器学习项目中作为数据预处理步骤。1.图像分割基本概念在图像处理领域
机器学习笔记——支持向量机
star_and_sun
机器学习 笔记 支持向量机
支持向量机参数模型对分布需要假设(这也是与非参数模型的区别之一)间隔最大化,形式转化为凸二次规划问题最大化间隔间隔最大化是意思:对训练集有着充分大的确信度来分类训练数据,最难以分的点也有足够大的信度将其分开间隔最大化的分离超平面的的求解怎么求呢?最终的方法如下1.线性可分的支持向量机的优化目标其实就是找得到分离的的超平面求得参数w和b的值就可以了注意,最大间隔分离超平面是唯一的,间隔叫硬间隔1.1
【机器学习&深度学习】多分类评估策略
一叶千舟
深度学习【理论】 深度学习【应用必备常识】 大数据 人工智能
目录前言一、多分类3大策略✅宏平均(MacroAverage)✅加权平均(WeightedAverage)✅微平均(MicroAverage)二、类比理解2.1宏平均(MacroAverage)2.1.1计算方式2.1.2适合场景2.1.3宏平均不适用的场景2.1.4宏平均一般用在哪些指标上?2.1.5怎么看macroavg指标?2.1.6宏平均值低说明了什么?2.1.7从宏平均指标中定位模型短板
【机器学习笔记Ⅰ】7 向量化
巴伦是只猫
机器学习 机器学习 笔记 人工智能
向量化(Vectorization)详解向量化是将数据或操作转换为向量(或矩阵)形式,并利用并行计算高效处理的技术。它是机器学习和数值计算中的核心优化手段,能显著提升代码运行效率(尤其在Python中避免显式循环)。1.为什么需要向量化?(1)传统循环的缺陷低效:Python的for循环逐元素操作,速度慢。代码冗长:需手动处理每个元素。示例:计算两个数组的点积(非向量化)a=[1,2,3]b=[4
大语言模型应用指南:ReAct 框架
AI大模型应用实战
java python javascript kotlin golang 架构 人工智能
大语言模型应用指南:ReAct框架关键词:大语言模型,ReAct框架,自然语言处理(NLP),模型融合,多模态学习,深度学习,深度学习框架1.背景介绍1.1问题由来近年来,深度学习技术在自然语言处理(NLP)领域取得了显著进展。尤其是大语言模型(LargeLanguageModels,LLMs),如BERT、GPT系列等,通过在大规模无标签数据上进行预训练,获得了强大的语言理解和生成能力。然而,预
大语言模型原理基础与前沿 基于语言反馈进行微调
AI天才研究院
计算 AI大模型企业级应用开发实战 AI人工智能与大数据 计算科学 神经计算 深度学习 神经网络 大数据 人工智能 大型语言模型 AI AGI LLM Java Python 架构设计 Agent RPA
大语言模型原理基础与前沿基于语言反馈进行微调作者:禅与计算机程序设计艺术/ZenandtheArtofComputerProgramming1.背景介绍1.1问题的由来随着深度学习技术的飞速发展,自然语言处理(NLP)领域取得了显著的进展。大语言模型(LargeLanguageModels,LLMs)如GPT-3、BERT等在各项NLP任务上取得了令人瞩目的成绩。然而,如何进一步提高大语言模型的理
李宏毅2025《机器学习》第四讲-Transformer架构的演进
Transformer架构的演进与替代方案:从RNN到Mamba的技术思辨Transformer作为当前AI领域的标准架构,其设计并非凭空而来,也并非没有缺点。本次讨论的核心便是:新兴的架构,如MAMA,是如何针对Transformer的弱点进行改进,并试图提供一个更优的解决方案的。要理解架构的演进,我们必须首先明确一个核心原则:每一种神经网络架构,都有其存在的技术理由。CNN(卷积神经网络):为
条件概率:不确定性决策的基石
大千AI助手
人工智能 Python # OTHER 决策树 算法 机器学习 人工智能 条件概率 概率论
条件概率是概率论中的核心概念,用于描述在已知某一事件发生的条件下,另一事件发生的概率。它量化了事件之间的关联性,是贝叶斯推理、统计建模和机器学习的基础。本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!一、定义与公式设(A)和(B)是两个随机事件,且(P(B)>0):条件概率(P(A\midB))表示
探索AI人工智能医疗NLP实体识别系统的架构设计
AI学长带你学AI
人工智能 自然语言处理 easyui ai
探索AI人工智能医疗NLP实体识别系统的架构设计关键词:人工智能、医疗NLP、实体识别、系统架构、深度学习、自然语言处理、医疗信息化摘要:本文将深入探讨医疗领域NLP实体识别系统的架构设计。我们将从基础概念出发,逐步解析医疗文本处理的特殊性,详细介绍实体识别技术的核心原理,并通过实际案例展示如何构建一个高效可靠的医疗实体识别系统。文章还将探讨当前技术面临的挑战和未来发展方向,为医疗AI领域的从业者
人工智能动画展示人类的特征
AGI大模型与大数据研究院
AI大模型应用开发实战 java python javascript kotlin golang 架构 人工智能
人工智能,动画,人类特征,情感识别,行为模拟,机器学习,深度学习,自然语言处理1.背景介绍人工智能(AI)技术近年来发展迅速,已渗透到生活的方方面面。从智能语音助手到自动驾驶汽车,AI正在改变着我们的世界。然而,尽管AI技术取得了令人瞩目的成就,但它仍然难以完全模拟人类的复杂行为和特征。人类的特征是多方面的,包括情感、认知、社交和创造力等。这些特征是人类区别于其他生物的重要标志,也是人类社会文明发
《支持向量机(SVM)在医疗领域的变革性应用》
CodeJourney.
支持向量机 算法 机器学习
在医疗科技日新月异的今天,先进的数据分析与机器学习技术正逐渐成为提升诊疗水平、助力医学研究的关键力量。支持向量机(SVM),凭借其独特的优势,在医疗这片复杂且对精准度要求极高的领域崭露头角,带来诸多令人瞩目的应用成果。一、疾病诊断:癌症早期筛查的“火眼金睛”癌症,作为全球健康的“头号杀手”,早期诊断对提升患者生存率意义非凡。在乳腺癌筛查领域,SVM发挥着重要作用。医疗科研人员收集大量乳腺组织的影像
机器学习20-线性网络思考
坐吃山猪
机器学习 机器学习 人工智能 线性网络
机器学习20-线性网络思考针对线性网络的基础问题,使用基础示例进行解释1-核心知识点1-线性模型家族的线性回归和逻辑回归分别是什么,线性模型家族还有没有其他的模型线性模型家族是一系列基于线性假设的统计模型,它们假设因变量和自变量之间存在线性关系。线性模型家族中的两个最常见模型是线性回归和逻辑回归。线性回归(LinearRegression):线性回归是一种用于预测连续因变量的模型。它假设因变量yy
机器学习18-强化学习RLHF
坐吃山猪
机器学习 机器学习 人工智能
机器学习18-强化学习RLHF1-什么是RLHFRLHF(ReinforcementLearningfromHumanFeedback)即基于人类反馈的强化学习算法,以下是详细介绍:基本原理RLHF是一种结合了强化学习和人类反馈的机器学习方法。传统的强化学习通常依赖于预定义的奖励函数来指导智能体的学习,而RLHF则通过引入人类的反馈来替代或补充传统的奖励函数。在训练过程中,人类会对智能体的行为或输
机器学习19-Transformer和AlexNet思考
坐吃山猪
机器学习 机器学习 transformer 人工智能
Transformer和AlexNet思考关于Transformer和AlexNet发展的一些思考1-核心知识点Word2Vec的作用是什么,和Transformer的诞生有什么关系吗?AlexNet的主要核心思路是什么,为什么表现那么好?现在有什么比AlexNet更优秀的算法2-思路整理1-Word2Vec的作用是什么,和Transformer的诞生有什么关系吗?Word2Vec的作用Word2
机器学习21-线性网络思考
坐吃山猪
机器学习 机器学习 人工智能 线性网络
机器学习21-线性网络思考针对线性网络的发展问题,进行补充学习1-核心知识点1-传统机器学习针对线性分类算法求解的方式有哪些?请详细列举不同的算法对应的损失函数和计算思路在传统机器学习中,线性分类算法是一种非常重要的方法,用于将数据划分为不同的类别。以下是几种常见的线性分类算法,包括它们的损失函数和计算思路:1.感知机(Perceptron)损失函数感知机的损失函数是基于误分类点的,其目标是最小化
深度学习篇---简单果实分类网络
下面我将提供一个使用Python从零实现果实分类模型的完整流程,包括数据准备、模型构建、训练和部署,不依赖任何深度学习框架,仅使用NumPy进行数值计算。1.数据准备与预处理首先需要准备果实图像数据集,将其分为好果和坏果两类,并进行预处理:importosimportnumpyasnpfromPILimportImagefromsklearn.model_selectionimporttrain_
Python深度学习:3步实现AI人脸识别,效果堪比专业软件!
小筱在线
python 人工智能 python 深度学习
引言:AI人脸识别的时代已经到来在当今数字化时代,人脸识别技术已经从科幻电影走进了我们的日常生活。从手机解锁到机场安检,从银行身份验证到智能门禁系统,这项技术正以前所未有的速度改变着我们的生活方式。而令人振奋的是,借助Python和深度学习技术,普通人也能构建出专业级的人脸识别系统。本文将带领您通过三个关键步骤,使用Python深度学习技术实现一个准确率高达99%的人脸识别系统。这个系统不仅原理简
Spring AI 第二讲 之 Chat Model API 第五节HuggingFace Chat
HuggingFaceInferenceEndpoints允许您在云中部署和提供机器学习模型,并通过API对其进行访问。开始使用有关HuggingFaceInferenceEndpoints的更多详细信息,请访问此处。前提条件添加spring-ai-huggingface依赖关系:org.springframework.aispring-ai-huggingface获取HuggingFaceAPI
github中多个平台共存
jackyrong
github
在个人电脑上,如何分别链接比如oschina,github等库呢,一般教程之列的,默认
ssh链接一个托管的而已,下面讲解如何放两个文件
1) 设置用户名和邮件地址
$ git config --global user.name "xx"
$ git config --global user.email "
[email protected] "
ip地址与整数的相互转换(javascript)
alxw4616
JavaScript
//IP转成整型
function ip2int(ip){
var num = 0;
ip = ip.split(".");
num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
n
读书笔记-jquey+数据库+css
chengxuyuancsdn
html jquery oracle
1、grouping ,group by rollup, GROUP BY GROUPING SETS区别
2、$("#totalTable tbody>tr td:nth-child(" + i + ")").css({"width":tdWidth, "margin":"0px", &q
javaSE javaEE javaME == API下载
Array_06
java
oracle下载各种API文档:
http://www.oracle.com/technetwork/java/embedded/javame/embed-me/documentation/javame-embedded-apis-2181154.html
JavaSE文档:
http://docs.oracle.com/javase/8/docs/api/
JavaEE文档:
ht
shiro入门学习
cugfy
java Web 框架
声明本文只适合初学者,本人也是刚接触而已,经过一段时间的研究小有收获,特来分享下希望和大家互相交流学习。
首先配置我们的web.xml代码如下,固定格式,记死就成
<filter>
<filter-name>shiroFilter</filter-name>
&nbs
Array添加删除方法
357029540
js
刚才做项目前台删除数组的固定下标值时,删除得不是很完整,所以在网上查了下,发现一个不错的方法,也提供给需要的同学。
//给数组添加删除
Array.prototype.del = function(n){
navigation bar 更改颜色
张亚雄
IO
今天郁闷了一下午,就因为objective-c默认语言是英文,我写的中文全是一些乱七八糟的样子,到不是乱码,但是,前两个自字是粗体,后两个字正常体,这可郁闷死我了,问了问大牛,人家告诉我说更改一下字体就好啦,比如改成黑体,哇塞,茅塞顿开。
翻书看,发现,书上有介绍怎么更改表格中文字字体的,代码如下
 
unicode转换成中文
adminjun
unicode 编码转换
在Java程序中总会出现\u6b22\u8fce\u63d0\u4ea4\u5fae\u535a\u641c\u7d22\u4f7f\u7528\u53cd\u9988\uff0c\u8bf7\u76f4\u63a5这个的字符,这是unicode编码,使用时有时候不会自动转换成中文就需要自己转换了使用下面的方法转换一下即可。
/**
* unicode 转换成 中文
一站式 Java Web 框架 firefly
aijuans
Java Web
Firefly是一个高性能一站式Web框架。 涵盖了web开发的主要技术栈。 包含Template engine、IOC、MVC framework、HTTP Server、Common tools、Log、Json parser等模块。
firefly-2.0_07修复了模版压缩对javascript单行注释的影响,并新增了自定义错误页面功能。
更新日志:
增加自定义系统错误页面功能
设计模式——单例模式
ayaoxinchao
设计模式
定义
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
分析
从定义中可以看出单例的要点有三个:一是某个类只能有一个实例;二是必须自行创建这个实例;三是必须自行向系统提供这个实例。
&nb
Javascript 多浏览器兼容性问题及解决方案
BigBird2012
JavaScript
不论是网站应用还是学习js,大家很注重ie与firefox等浏览器的兼容性问题,毕竟这两中浏览器是占了绝大多数。
一、document.formName.item(”itemName”) 问题
问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName&quo
JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
bijian1013
junit4.11 单元测试
下载了最新的JUnit版本,是4.11,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了一下,一般的解决方案是,换一个低一点的版本就好了。还有人说,是缺少hamcrest的包。去官网看了一下,如下发现:
[Zookeeper学习笔记之二]Zookeeper部署脚本
bit1129
zookeeper
Zookeeper伪分布式安装脚本(此脚本在一台机器上创建Zookeeper三个进程,即创建具有三个节点的Zookeeper集群。这个脚本和zookeeper的tar包放在同一个目录下,脚本中指定的名字是zookeeper的3.4.6版本,需要根据实际情况修改):
#!/bin/bash
#!!!Change the name!!!
#The zookeepe
【Spark八十】Spark RDD API二
bit1129
spark
coGroup
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.SparkContext._
object CoGroupTest_05 {
def main(args: Array[String]) {
v
Linux中编译apache服务器modules文件夹缺少模块(.so)的问题
ronin47
modules
在modules目录中只有httpd.exp,那些so文件呢?
我尝试在fedora core 3中安装apache 2. 当我解压了apache 2.0.54后使用configure工具并且加入了 --enable-so 或者 --enable-modules=so (两个我都试过了)
去make并且make install了。我希望在/apache2/modules/目录里有各种模块,
Java基础-克隆
BrokenDreams
java基础
Java中怎么拷贝一个对象呢?可以通过调用这个对象类型的构造器构造一个新对象,然后将要拷贝对象的属性设置到新对象里面。Java中也有另一种不通过构造器来拷贝对象的方式,这种方式称为
克隆。
Java提供了java.lang.
读《研磨设计模式》-代码笔记-适配器模式-Adapter
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 适配器模式解决的主要问题是,现有的方法接口与客户要求的方法接口不一致
* 可以这样想,我们要写这样一个类(Adapter):
* 1.这个类要符合客户的要求 ---> 那显然要
HDR图像PS教程集锦&心得
cherishLC
PS
HDR是指高动态范围的图像,主要原理为提高图像的局部对比度。
软件有photomatix和nik hdr efex。
一、教程
叶明在知乎上的回答:
http://www.zhihu.com/question/27418267/answer/37317792
大意是修完后直方图最好是等值直方图,方法是HDR软件调一遍,再结合不透明度和蒙版细调。
二、心得
1、去除阴影部分的
maven-3.3.3 mvn archetype 列表
crabdave
ArcheType
maven-3.3.3 mvn archetype 列表
可以参考最新的:http://repo1.maven.org/maven2/archetype-catalog.xml
[INFO] Scanning for projects...
[INFO]
linux shell 中文件编码查看及转换方法
daizj
shell 中文乱码 vim 文件编码
一、查看文件编码。
在打开文件的时候输入:set fileencoding
即可显示文件编码格式。
二、文件编码转换
1、在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
&
MySQL--binlog日志恢复数据
dcj3sjt126com
binlog
恢复数据的重要命令如下 mysql> flush logs; 默认的日志是mysql-bin.000001,现在刷新了重新开启一个就多了一个mysql-bin.000002
数据库中数据表数据迁移方法
dcj3sjt126com
sql
刚开始想想好像挺麻烦的,后来找到一种方法了,就SQL中的 INSERT 语句,不过内容是现从另外的表中查出来的,其实就是 MySQL中INSERT INTO SELECT的使用
下面看看如何使用
语法:MySQL中INSERT INTO SELECT的使用
1. 语法介绍
有三张表a、b、c,现在需要从表b
Java反转字符串
dyy_gusi
java 反转字符串
前几天看见一篇文章,说使用Java能用几种方式反转一个字符串。首先要明白什么叫反转字符串,就是将一个字符串到过来啦,比如"倒过来念的是小狗"反转过来就是”狗小是的念来过倒“。接下来就把自己能想到的所有方式记录下来了。
1、第一个念头就是直接使用String类的反转方法,对不起,这样是不行的,因为Stri
UI设计中我们为什么需要设计动效
gcq511120594
UI linux
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用
JBOSS服务部署端口冲突问题
HogwartsRow
java 应用服务器 jboss server EJB3
服务端口冲突问题的解决方法,一般修改如下三个文件中的部分端口就可以了。
1、jboss5/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
2、./server/default/deploy/jbossweb.sar/server.xml
3、.
第三章 Redis/SSDB+Twemproxy安装与使用
jinnianshilongnian
ssdb reids twemproxy
目前对于互联网公司不使用Redis的很少,Redis不仅仅可以作为key-value缓存,而且提供了丰富的数据结果如set、list、map等,可以实现很多复杂的功能;但是Redis本身主要用作内存缓存,不适合做持久化存储,因此目前有如SSDB、ARDB等,还有如京东的JIMDB,它们都支持Redis协议,可以支持Redis客户端直接访问;而这些持久化存储大多数使用了如LevelDB、RocksD
ZooKeeper原理及使用
liyonghui160com
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper
程序员解决问题的60个策略
pda158
框架 工作 单元测试
根本的指导方针
1. 首先写代码的时候最好不要有缺陷。最好的修复方法就是让 bug 胎死腹中。
良好的单元测试
强制数据库约束
使用输入验证框架
避免未实现的“else”条件
在应用到主程序之前知道如何在孤立的情况下使用
日志
2. print 语句。往往额外输出个一两行将有助于隔离问题。
3. 切换至详细的日志记录。详细的日
Create the Google Play Account
sillycat
Google
Create the Google Play Account
Having a Google account, pay 25$, then you get your google developer account.
References:
http://developer.android.com/distribute/googleplay/start.html
https://p
JSP三大指令
vikingwei
jsp
JSP三大指令
一个jsp页面中,可以有0~N个指令的定义!
1. page --> 最复杂:<%@page language="java" info="xxx"...%>
* pageEncoding和contentType:
> pageEncoding:它