
机器学习
文章平均质量分 74
颢师傅
这个作者很懒,什么都没留下…
展开
-
【redis】redis使用get及set功能,及发布订阅
【代码】【redis】redis使用get及set功能,及发布订阅。原创 2023-12-14 10:33:50 · 298 阅读 · 0 评论 -
【DQN】基于pytorch的强化学习算法Demo
DQN(Deep Q-Network)是一种基于深度神经网络的强化学习算法,于2013年由DeepMind提出。它的目标是解决具有离散动作空间的强化学习问题,并在多个任务中取得了令人瞩目的表现。DQN的核心思想是使用深度神经网络来逼近状态-动作值函数(Q函数),将当前状态作为输入,输出每个可能动作的Q值估计。通过不断迭代和更新网络参数,DQN能够逐步学习到最优的Q函数,并根据Q值选择具有最大潜在回报的动作。DQN的训练过程中采用了两个关键技术:经验回放和目标网络。原创 2023-11-24 08:59:33 · 780 阅读 · 1 评论 -
【SOPHON】算能盒子SE-16的C++模型转换
本文以 arcface 为例, 介绍如何编译迁移一个onnx模型至TPU平台运行。有疑问具体可参考。原创 2023-10-27 17:57:36 · 468 阅读 · 0 评论 -
【optuna】将实验结果保存为excel
Optuna 是一个用于自动超参数优化的开源 Python 库。它提供了一个简单且灵活的接口,帮助你在机器学习和深度学习任务中优化算法的超参数。Optuna 的设计目标是使超参数优化过程更加高效和易用。它采用了一种基于序列化和并行化的策略,允许用户定义自己的目标函数,并在超参数搜索空间中动态地探索参数组合,以找到最佳的超参数配置。Optuna 的核心概念是 “Study” 和 “Trial”:Study(研究)是一个优化过程的最高级别实体。原创 2023-10-26 19:30:00 · 674 阅读 · 0 评论 -
【机器学习】使用scikitLearn对数据进行聚类:7种异常和新颖性检测方式
两者的区别在于,异常检测学习训练集中的中心特征,将部分边缘特征理解为异常值。新颖性检测,则是学习模式,并判断新数据是否属于该模式。新颖性检测的训练集中不含异常/新颖值,异常检测则相反。直观上说,PCA提取了数据的主要特征,如果一个数据样本不能被重构,则说明这个数据样本的特点和主要数据特征不一样,那么它就是一个异常样本。使用一个最小化的空间超球体包裹已知数据,新数据如果不在球体内部,则是新颖的。异常值通常比k个最近的邻居更孤立。是一种随机森林,相比于正常的数据,异常数据经过更少的步骤,即可与正常数据区隔开。原创 2022-10-04 04:25:28 · 1496 阅读 · 0 评论 -
【机器学习】使用scikitLearn对数据进行聚类:高斯聚类GaussianMixture
生成每个实例时,根据一组权重参数,先选取该实例所属集群的标签,根据标签从k个高斯分布中选取该集群对应的分布,然后再利用高斯分布采样出该实例,就完成了一个新实例点的生成。其中AIC不受实例的数目影响,BIC较AIC对精度的考虑低,对参数量的考虑多,能找出更精简的模型(实例m相当于对参数数量进行了加权)。BIC及AIC的值越小,代表模型越好,可见实例及参数越多,似然函数值越低,代表拟合精度越差,同时算法所用实例及参数越多。p为模型可学习参数量,m为实例数目,L为模型的似然函数最大值。原创 2022-10-04 03:05:34 · 3113 阅读 · 0 评论 -
【机器学习】使用scikitLearn对数据进行聚类:Kmeans聚类算法的应用及密度聚类DBSCAN
(4)由于远离中心的实例,可能含有噪声,并且特征不明显,所以将标签扩散至所有实例的方法,未必能很好的提升准确率,故选择一定的比例,将标签扩散至接近中心的实例。(3)其它实例按照接近中心点的程度,进行标签扩散操作。(2)找出最接近每个中心点的实例,进行人为标注。(1)使用聚类聚成n类,形成n个中心点。原创 2022-09-30 00:10:13 · 1174 阅读 · 0 评论 -
【机器学习】使用scikitLearn对数据进行聚类:Kmeans聚类算法及聚类效果评估
上述代码中, n_init=10为默认值,init="random"为随机选定的聚类中心,其不是默认值,默认情况下,kmeans对聚类中心的选择,是按某种概率分布,使初始聚类中心之间的间距尽可能远。当集群具有不同的大小、不同的密度或非球形时,K-Means的表现较差,K-Means算法重点考虑聚类半径,当聚类半径不同时,可以考虑高斯聚类,也因此在聚类前先要进行数据标准化或归一化。,先聚类,构造聚类模型,再将原始图片进行聚类操作,聚集出k类,新图片到来时,再用聚类模型对图片进行分类,返回最近类别的全部图片。原创 2022-09-27 01:36:31 · 4077 阅读 · 0 评论 -
【机器学习】使用scikitLearn对数据进行降维处理:流形学习及局部线性嵌入LLE及其它降维技术
PCA的最大特点是可以消除远数据中无用的维度,这是因为PCA是稀疏假设,如果原数据集无用的维度很少,降维会造成较高的信息损失。(如2维曲面在3维空间中卷曲,2维曲面的局部,可以视为是2维的。其思路为,取某实例点附近的若干点,将该实例点做若干点的线性表示,然后寻找可以最好地保留这些局部关系的低维表示形式。然后使用下式,下式中z为降维后x对应的实例,该式的精神是固定线性表示的权重,寻找新实例z的最佳位置。LDA的一个非常大的好处是,最适用于做分类问题的预处理步骤,它使不同的类之间的距离保持尽可能的远。原创 2022-09-26 01:53:15 · 784 阅读 · 0 评论 -
【机器学习】使用scikitLearn对数据进行降维处理:KPCA法及参数选择
针对KernelPCA,调整参数的值有两种方法,当PCA作为某算法一种预处理步骤时,以算法整体的性能指标,作为选择PCA参数的依据,这种方法最易于理解,下面算法展示的是,以核PCA作为降维预处理(先用核技术升至无穷维,再投影至2维),最后使用逻辑回归,对二维数据进行分类,衡量上述流程整体的准确率,以筛选PCA算法的参数。使用KPCA后,有可能将低维扭曲的实例在高维进行展开,便于进行投影操作。KPCA是核化的PCA。原创 2022-09-26 00:29:26 · 2343 阅读 · 0 评论 -
【机器学习】使用scikitLearn对数据进行降维处理:PCA法及增量训练
对于机器学习而言,降维意味着丢失原始数据的部分不重要的特征,从这个角度而言,降维使数据的信息丢失,会限制算法潜在的最高准确度,但对于某一种固定的算法,它有望在数据量恒定下,通过降维预处理提升算法的准确性,算法准确率是否获得提升,与数据集自己的特性高度相关。投影优劣的评判方法为:原始数据在经轴投影后,原始数据与投影数据求均方距离,该距离越小,投影效果越好,原始数据经投影后,丢失的信息越少。是指,高维数据沿某个轴进行垂直投影,投影后,原数据对应的该轴维度消失,达到对数据进行降维的效果。原创 2022-09-25 16:46:31 · 1218 阅读 · 0 评论 -
【机器学习】集成学习:scikitLearn实现AdaBoost及梯度提升GradientBoosting,及XGBT库
举个例子,在以前没有权重时(其实是平局权重时),一共10个点时,对应每个点的权重都是0.1,分错1个,错误率就加0.1;经过第一轮训练,数据权重重置后,还是10个点,权重依次是[0.01,0.01,0.01,0.01,0.01,0.01, 0.01,0.01,0.01,0.91],如果分错了第1一个点,那么错误率是0.01,分错了最后一个点,那么错误率就是0.91。上图中,单个预测模型的权重为αj,此值为模型的权重而非数据的权重,当预测其预测越准时,其取值越大;上式来看,分类器预测错误越多,rj的值越大。原创 2022-09-18 19:07:07 · 705 阅读 · 0 评论 -
【机器学习】集成学习:使用scikitLearn中的RandomForestClassifier及RandomForestRegressor实现随机森林
(1)组合BaggingClassifier以及DecisionTreeClassifier,通过bagging及pasting方法建立综合预测模型。(2)使用RandomForestClassifier类,对于回归则有RandomForestRegressor。,而不是搜寻到的最优阈值,可以进一步使随机森林随机化。这种产生决策树的方式为Extra-Trees,极端树。特征,相当于施加了某种正则化,以单个预测模型更高的偏差,换取整体更低的方差。在scikitLearn中,随机森林有两种实现方法,原创 2022-09-18 13:50:28 · 1159 阅读 · 0 评论 -
【机器学习】集成学习:使用scikitLearn中的BaggingClassifier实现bagging和pasting策略
上述代码集成了500棵决策树的预测结果,每次训练模型随机采样100个实例进行训练,当预测模型自身带有可供概率预测的方法时,如含predict_proba()方法时,BaggingClassifier分类器将做软投票,否则使用硬投票的方法完成分类。特别注意,当使用bagging时,由于抽样后被放回(bootstrap=True),有些实例被放回,而有些实例从未被使用,这部分实例比例固定约占30%,这部分未被使用实例被称为“包外实例”,可使用这部分实例进行包外评估,代替测试集对模型进行评估。原创 2022-09-17 18:06:04 · 982 阅读 · 0 评论 -
【机器学习】集成学习:使用scikitLearn中的VotingClassifier综合多个不同模型进行软硬投票
集合一组预测器的预测结果,得出最终预测结果,即为集成学习。原创 2022-09-16 19:58:16 · 1522 阅读 · 0 评论 -
【机器学习】使用scikitLearn进行决策树分类与回归:DecisionTreeClassifier及DecisionTreeRegressor
min_samples_split(分裂前节点必须有的最小样本数)、min_samples_leaf(叶节点必须有的最小样本数量)、min_weight_fraction_leaf(与min_samples_leaf一样,但表现为加权实例总数的占比)、max_leaf_nodes(最大叶节点数量),以及max_features(分裂每个节点评估的最大特征数量)。决策树是一种无参数模型,事先不知道参数的个数,如果不对决策树进行正则化处理,则决策树很容易对数据过拟合。,起到平衡作用,将使模型正则化。原创 2022-09-16 18:47:33 · 1278 阅读 · 0 评论 -
【机器学习】使用scikitLearn进行SVM支持向量机进行回归
关于epsilon参数:越大虚线范围越宽。如果不确定,使用默认值0.epsilon越大,模型泛化能力越好,其值与预测值的大小相关。如果将分类用SVM算法的优化目标反转,使尽可能多的数据集实例出现在虚线中部,同时减少虚线外出现实例的数量。该模型为epsilon不敏感,在固定epsilon的情况下,在虚线内添加更多实例,不改变回归结果。在固定epsilon的情况下,C值越大,对错分情况非惩罚越大,泛化性越差。原创 2022-09-16 07:30:25 · 1370 阅读 · 0 评论 -
【机器学习】使用scikitLearn进行SVM支持向量机非线性分类
该算法不支持核技巧,不过它与训练实例的数量和特征数量几乎呈线性相关:其训练时间复杂度大致为O(m×n)。实际上,核函数有很多,不同核函数可以适应不同领域的数据集,一般从线性核函数开始进行尝试,LinearSVC比SVC(kernel=“linear”)快得多。这种方法的特点是,先选地标,一般将每个原实例设为一个地标,这样原先m个实例变成m个地标,每个地标变成转换后的一个新特征,即新数据实例集转换为m个特征。采用高斯径向基函数(RBF)作为相似函数,计算相似特征替代原特征,再以新特征进行分类。原创 2022-09-16 07:03:28 · 550 阅读 · 0 评论 -
【机器学习】使用scikitLearn进行SVM支持向量机线性分类
铰链损失函数比0,1损失函数更细节化,决策函数大于0,在0至1之间时,虽然预测正确,也有损失,越接近1,损失越小,超过1时,损失为0;当C值很大时,间隔比较窄,C值很小时,间隔比较宽,泛化能力更好,相当于进行了正则化处理,体现了方差与偏差的权衡。当任何实例,都不出现在上图两虚线之中,这种分类,成为硬间隔分类,硬间隔分类对个别的异常支持向量值敏感。总体而言,C值越小,允许的错分数越多,泛化能力越强。图中黑色线为0,1损失,预测错时,损失为1,正确时没有损失。,与虚线外的其它值无关。,数据集的分类结果,原创 2022-09-15 22:54:03 · 1048 阅读 · 0 评论 -
【机器学习】使用scikitLearn可视化混淆矩阵进行分类误差分析
如图所示,越亮的色块错误越多,如真值5被错分为真值8的情况最多,可通过对图像进行预处理,或对5及8样本数增广的形式,提高对应分类的正确率。图中颜色越白的区域,图片越多。对角线上是被正确分类的图片。原创 2022-09-13 19:06:37 · 723 阅读 · 0 评论 -
【机器学习】逻辑回归logit与softmax
原理很简单:给定一个实例x,Softmax回归模型首先计算出每个类k的分数sk(x),然后对这些分数应用softmax函数(也叫归一化指数),估算出每个类的概率。与线性回归模型一样,逻辑回归模型也是计算输入特征的加权和(加上偏置项),但是不同于线性回归模型直接输出结果,它输出的是结果的数理逻辑值。所以如果是正类,逻辑回归模型预测结果是1,如果是负类,则预测为0。上述函数保证了如果正类的概率值被判定接近0,及负类的概率接近1,成本函数的值都会非常高。交叉熵的值越小,y和y预测这两个分布间越接近。原创 2022-09-13 01:28:06 · 1299 阅读 · 0 评论 -
【机器学习】scikitLearn正则化l1,l2,提前停止
*λ的增加会导致更平坦(即不极端,更合理)的预测,从而减少了模型的方差,但增加了其偏差。正则项是岭和Lasso正则项的简单混合,你可以控制混合比r。当r=0时,弹性网络等效于岭回归,而当r=1时,弹性网络等效于Lasso回归。对于梯度下降这一类迭代学习的算法,还有一个与众不同的正则化方法,就是在验证误差达到最小值时停止训练,该方法叫作提前停止法。将线性摸中系数的平方项添加至成本函数,如均方误差,这迫使学习算法不仅拟合数据,而且还使模型权重尽可能小。注意,Lasso回归的λ要更小一些,以匹配更小的参数。原创 2022-09-12 22:03:42 · 543 阅读 · 0 评论 -
【机器学习】欠拟合及过拟合与学习曲线、误差来源
但是应注意到,验证集和训练集曲线间还有相当的距离,而两者的模型是一致的,这反映出过拟合的特性,因为数据量的差异,使得相同模型在训练集和验证集上的误差有较大差异,当继续增加数据集数量时,两条曲线会继续接近,直到接近重合。如图所示,当参与训练的数据量很小的时候,模型可以轻易拟合训练集,但是对于测试集,呈现欠拟合装。平稳时最小误差的大小,是由模型的选型决定的。进一步,训练集及验证集误差接近,均不为0,体现了一种由模型自身局限性引起的欠拟合状态。即,对于过拟合的模型,增加数据集数量,可以进一步减少模型误差。原创 2022-09-12 17:50:04 · 806 阅读 · 0 评论 -
【机器学习】scikitLearn分类:鉴别二分类、多分类、多标签及多输出的分类任务
传统的多标签分类任务,将标签分开,有几个标签,就建立几个分类器,再将预测结果拼合,深度学习时,需在输出端设置标签个数的输出节点,再给每个结点接sigmoid函数,设置阈值进行判断。预测10个类,同时训练10个分类器,预测每个实例是否为某个类别,取10个分类器中得分最高的类别,作为最终类别,进行输出。在多标签的基础上,每个标签,也可以看成是输出,有多个可能出现的值,如一共有3个标签需要输出,每个标签值的取值范围是0至255.将对象群中的每个实例分到多个类别,超过2个,叫做多元分类。原创 2022-09-09 21:45:00 · 1728 阅读 · 0 评论 -
【机器学习】模型训练:scikitLearn线性模型的公式法与三种梯度下降法求解
独立同分布(Independent Identically Distribution)在概率统计理论中,指随机过程中,任何时刻的取值都为随机变量,如果这些随机变量服从同一分布,并且互相独立,那么这些随机变量是独立同分布。假设这个最接近b的向量是Ax*(其中x* 就是最优的参数解),那么,向量b和向量Ax*之间的距离应该是最小的。求一个近似的x*,使b和Ax*各项的差的平方的和最小。,在计算梯度下降的每一步时,都是基于完整的训练集X的。m是训练实例的数量,n是特征的数量,特征是方程的参数。原创 2022-09-09 21:00:00 · 855 阅读 · 0 评论 -
【机器学习】分类任务以mnist为例,数据集准备及预处理
【代码】【机器学习】分类任务以mnist为例,数据集准备及预处理。原创 2022-09-04 20:25:02 · 1205 阅读 · 0 评论 -
【总】机器学习博文导航
4.SVM支持向量机进行分类与回归操作。6.数据降维:投影及流形学习降维方法。5.集成学习:决策树与随机森林。原创 2022-08-19 05:45:21 · 266 阅读 · 0 评论 -
【机器学习】python机器学习使用scikit-learn对模型进行微调:使用RandomizedSearchCV对pipline进行参数选择
python机器学习使用scikit-learn对模型进行微调:使用GridSearchCV或RandomizedSearchCV对pipline进行参数选择。原创 2022-08-18 22:00:00 · 716 阅读 · 0 评论 -
【机器学习】python机器学习使用scikit-learn对模型进行微调:按特征贡献大小保留最重要k个特征的transform
python机器学习使用scikit-learn对模型进行微调:决策树按特征贡献大小保留最重要的k个特征的transform原创 2022-08-18 21:30:00 · 452 阅读 · 0 评论 -
【机器学习】python机器学习使用scikit-learn对模型进行微调:RandomizedSearchCV的分布参数设置
综上,最优参数取值较为确定时,使用geom或expon,不确定时使用reciprocal。2.几何的离散分布及指数分布。原创 2022-08-18 21:15:00 · 1650 阅读 · 0 评论 -
【机器学习】python机器学习使用scikit-learn对模型进行评估:使用t分布及z分布评估模型误差的95%置信空间
2、当总体标准差未知,需要估计,用t检验。当n>>30,z检验和t检验结果相近,以t检验为准。但是z检验比较好计算,就在大样本时替代t。z分数置信区间:[188.18052438939552, 581.671498118216]1、当整体标准差已知的时候,就不需要用样本标准差去估计总体标准差了。t分数置信区间:[187.94412423 581.74792449]均方根误差:432.29251756337266。......原创 2022-08-18 19:30:00 · 1868 阅读 · 1 评论 -
【机器学习】python机器学习使用scikit-learn对模型进行微调:使用GridSearchCV及RandomizedSearchCV
1.先使用网格搜索:这里以随机森林算法做示例。原创 2022-08-16 07:09:21 · 774 阅读 · 0 评论 -
【机器学习】python机器学习使用scikit-learn评估模型:基于普通抽样及分层抽样的k折交叉验证做模型选择
引入回归模型,检视在训练集上的均方误差,平均绝对误差;数据准备:以房屋地理位置、人群收入等,预测房价。原创 2022-08-15 06:53:49 · 763 阅读 · 0 评论 -
【机器学习】python机器学习scikit-learn和pandas进行Pipeline处理工作:归一化和标准化及自定义转换器(二)
不同于最小-最大缩放的是,标准化不将值绑定到特定范围,对某些算法而言,这可能是个问题(例如,神经网络期望的输入值范围通常是0~1)。但是标准化的方法受异常值的影响更小。例如,假设某个地区的平均收入为100(错误数据),最小-最大缩放会将所有其他值从0~15降到0~0.15,而标准化则不会受到很大影响。当调用流水线的fit()方法时,会在所有转换器上按照顺序依次调用fit_transform(),将一个调用的输出作为参数传递给下一个调用方法,直到传递到最终的估算器,则只会调用fit()方法。.........原创 2022-08-14 17:04:26 · 982 阅读 · 0 评论 -
【机器学习】python机器学习借助scikit-learn进行数据预处理工作:缺失值填补,文本处理(一)
提示:pandas中的参数axis指定要遍历的是所有index还是遍历所有列做操作。一、数字预处理工作,分为处理数字缺失值及处理文本两部分。3.将缺失的值设置为某个值(0、平均数或者中位数等)。1.放弃这些相应的区域。二、处理文本和分类属性。......原创 2022-08-13 22:15:00 · 792 阅读 · 0 评论 -
【机器学习】python借助pandas及matplotlib将输入数据可视化,并计算相关性
数据准备:详见:【机器学习】python借助pandas及scikit-learn使用三种方法分割训练集及测试集用图像找出数据之间的关系:#输出线性相关度矩阵:原创 2022-08-13 20:00:00 · 916 阅读 · 0 评论