机器学习之路
文章平均质量分 79
敲代码的乔帮主
走在梦想的大道上,跌跌撞撞,时而悲伤,时而难过失落,是什么又让我扬起头继续向前呢?是心中的那一朵彼岸之花,牵使着你我之间的约定,成为我心中那一股永不可灭的骨气,终究是信仰。
展开
-
机器学习数学基础总结(不断更新)
一、高数1.1二、线代2.1三、概率论3.1 独立同分布 iid 独立同分布independent and identically distributed (i.i.d.)在西瓜书中解释是:输入空间中的所有样本服从一个隐含未知的分布,训练数据所有样本都是独立地从这个分布上采样而得。独立:每次抽样之间没有关系,不会相互影响;同分布:每次抽样,样本服从同一个分布;独立同分布:i,i,d,每次抽样之间独立而且同分布。 独立同分布在机器学习...原创 2020-07-11 22:42:42 · 840 阅读 · 1 评论
-
二分类-多机器学习模型算法实现对比
使用逻辑回归/决策树/随机森林算法。原创 2024-10-13 09:59:22 · 281 阅读 · 0 评论 -
Circos 可视化:多维数据的环形展示
Circos 是一种环状图表,最初用于基因组学中的基因关系可视化,后来逐渐发展为广泛应用于各类多维数据展示的工具,它以圆形扇区为核心,不同的类别或维度可以分配到各个扇区中,每个扇区内可以绘制多个图形轨道,从而能够在同一图表中显示多种图形类型。数据可视化是数据分析中的重要环节,尤其是在面对多维数据时,如何有效地展示各类特征及其之间的关系是一项挑战,接下来将介绍一种独特且高效的可视化工具——Circos,它以环形布局为基础,能够清晰、直观地展示不同类别、维度的复杂数据结构。Circos 可视化的基本原理。原创 2024-09-27 15:55:25 · 790 阅读 · 0 评论 -
SKlearn中的函数学习总结(持续更新)
关于SKlearn中的函数学习及关键代码部分,会持续更新(参考sklearn官方文档)一:分类、回归二:降维三:模型评估与选择四:数据预处理五:模型保存大类 小类 适用问题 实现文档 说明 重要代码 一、分类、回归 1.1广义线性模型 1.1.1 普通最小二乘法 回归 sklearn....原创 2019-11-06 17:37:05 · 2711 阅读 · 0 评论 -
线性回归-打印出拟合曲线的参数并绘制拟合曲线
1.将线性回归得到的两个参数打印出来,并且在图像中画出该拟合曲线。import matplotlib.pyplot as pltimport numpy as npimport pandas as pddata=pd.read_csv( "finalData.csv", thousands=',')data.plot(kind='scatter', x="GDP per ca...原创 2019-10-27 20:59:11 · 2722 阅读 · 2 评论 -
线性回归-我们自己假设一下目标函数,并在图像中做拟合分析
1.数据及散点图2. 我们假设三个函数并且在图中画出来import matplotlib.pyplot as pltimport numpy as npimport pandas as pddata=pd.read_csv( "finalData.csv", thousands=',')data.plot(kind='scatter', x="GDP per capi...原创 2019-10-27 20:49:49 · 625 阅读 · 0 评论 -
使用线性回归和K近邻做回归预测
数据:根据人均GDP和幸福指数的关系,预测分析代码:import matplotlib.pyplot as pltimport numpy as npimport pandas as pdimport sklearn.linear_modelcountry_stats=pd.read_csv( "finalData.csv", thousands=',') # <c...原创 2019-10-27 20:34:48 · 1148 阅读 · 0 评论 -
箱型图方法(IQR)识别数据异常值
当我们处理数据时,尤其是涉及到金融数据如商品的历史成交价格时,消除异常值是非常关键的。这些异常值可能是由于误差、欺诈或其他非典型事件引起的。识别并处理这些奇异价格点能够提高数据分析的准确性。在本文中,我们将探讨箱型图方法(IQR,Interquartile Range)识别异常值的原理,并通过一段Python代码说明其应用。原创 2024-04-17 19:31:08 · 3813 阅读 · 0 评论 -
使用的基本设定(保存图像到本地函数)
在python 2和3中都可以正常工作,导入一些通用模块,确保MatplotLib内联绘制图形并准备一个函数来保存图形:# 为了支持python2和python3from __future__ import division, print_function, unicode_literals# 导入需要的包import numpy as npimport os# seed可以使...原创 2019-10-27 19:22:31 · 473 阅读 · 0 评论 -
多个树模型特征贡献度与可视化
例如,“DMC”和“temp”在大多数模型中都被认为是较为重要的特征,而像“rain”这样的特征在各个模型中的排名较低。在机器学习中,特征的重要性是了解模型如何做出预测的关键指标之一,在树模型中,特征重要性通常通过特征的分裂节点来衡量,通过观察特征在模型中的贡献,可以对数据集中的重要特征有更深入的理解,之前的文章中,分别介绍了如何通过RF、 XGBoost 和 LightGBM 来提取特征贡献度,在本篇文章中,将加入 CatBoost 模型,并进行可视化综合比较这些树模型中的特征重要性。原创 2024-09-27 14:29:11 · 893 阅读 · 0 评论 -
多机器学习模型学习
至此,训练集的特征和目标值,以及测试集的特征和目标值均已经可用。原创 2024-09-23 19:49:54 · 608 阅读 · 0 评论 -
XGBoost算法-代码实现和网格调参
这些超参数的合理设置对于模型的性能至关重要。通常,需要通过交叉验证等方法来调整这些参数,以找到最佳的模型配置。在实际应用中,这些信息帮助我们理解模型在不同配置下的表现,并选择最佳的模型参数进行最终的模型部署和预测。利用GridSearchCV算法,找出最合适的num_boost_round和学习率eta超参数。在XGBoost中,这些超参数控制着模型的训练过程和行为。进行的模型超参数优化和验证的细节。这段执行结果提供了通过。原创 2024-09-10 16:03:59 · 1349 阅读 · 0 评论 -
XGBoost算法-确定树的结构
我们在求解上面的w和obj的过程中,都是假定我们的树结构是确定的,因为当我们改变树中划分条件的时候,每个叶子节点对应的样本有可能是不一样的,我们的G和H也是不一样的,得到的最优w和最优obj肯定也是不一样的。到底哪一棵回归树的划分方式是最优的呢?很明显,obj最小的回归树肯定是最合理的,所以我们需要找出导致obj最小的那颗回归树。原创 2024-09-08 20:45:57 · 1051 阅读 · 0 评论 -
XGBoost算法-目标函数
xgboost是一个非常强大,非常受欢迎的机器学习模型,其中最大的特色就是boosting(改进、推进),怎么改进呢?就是xgboost这个算法,它会先建立一颗简单的决策树,然后看这个决策树的预测结果,有哪些地方算错了,针对这些错误,来进行一些改进,又拿到一颗决策树,然后看第二颗决策树预测结果又哪些地方错了,然后再根据这些错误再做一些改进,通过这一次次的快速的改进,将错误最小化,最后xg可达到一个非常精确的结果。原创 2024-09-08 04:08:59 · 1366 阅读 · 0 评论 -
机器学习基础概念和名词
尽管机器学习从分类上而言只是人工智能(也就是常说的AI)的分支之一,但其本身也是一个相当巨大的命题。在未来的一段时间里,我将花时间在专栏写一些我比较熟悉的机器学习相关的概念和算法,最主要的目的是为了梳理自己的知识体系,也是希望和大家分享学习的历程和感悟,以达到交流的目的。这两年大数据火了,机器学习、神经网络、数据挖掘、强化学习等等这些名词都火了,然而我常常在想,把这些名词挂在嘴边的我们,究竟能否原创 2017-12-03 20:43:38 · 1058 阅读 · 0 评论 -
预测问题-机器学习思考
假设空间与泛化能力。泛化能力的含义在上文也有说明,为强调起见,这里再叙述一遍:泛化能力针对的其实是学习方法,它用于衡量该学习方法学习到的模型在整个样本空间上的表现。这一点当然是十分重要的,因为我们拿来训练模型的数据终究只是样本空间的一个很小的采样,如果只是过分专注于它们,就会出现所谓的“过拟合”(Over Fitting)的情况。当然,如果过分罔顾训练数据,又会出现“欠拟合”(Under Fitt...原创 2018-04-17 18:53:59 · 4883 阅读 · 0 评论 -
线性分类-基础知识
写在前面: 接下来我们将讨论向量空间中根据数据的特征向量和类别标签构造线性分类模型。首先,介绍关于向量空间、超平面和线性决策函数的基础知识 然后,重点介绍感知机、Fisher线性鉴别和logistic模型。基础知识部分:向量空间(又称线性空间)1.n维向量我们可以看一下数据库中是怎么表示一条记录的,假设该表有n个属性,那么R1表示的就是一个n维向量。每一个属性对应...原创 2019-09-21 17:16:48 · 1466 阅读 · 0 评论 -
简单线性回归(上)
0. 前提介绍:为什么需要统计量? 统计量:描述数据特征0.1 集中趋势衡量0.1.1均值(平均数,平均值)(mean){6, 2, 9, 1, 2}(6 + 2 + 9 + 1 + 2) / 5 = 20 / 5 = 40.1.2中位数 (median):将数据中的各个数值按照大小顺序排列,居于中间位置的变量给数据排序:原创 2017-12-11 18:30:34 · 412 阅读 · 0 评论 -
简单线性回归(下)
1. 简单线性回归模型举例:汽车卖家做电视广告数量与卖出的汽车数量:1.1 如何画出适合简单线性回归模型的最佳回归线?使sum of squares最小计算过程分子 = (1-2)(14-20)+(3-2)(24-20)+(2-2)(18-20)+(1-2)(17-20)+(3-2)(27-20)= 6 + 4 + 0 + 3 + 7= 20...原创 2017-12-11 18:31:10 · 474 阅读 · 0 评论 -
多元线性回归(上)
1. 与简单线性回归区别(simple linear regression)多个自变量(x)2. 多元回归模型y=β0+β1x1+β2x2+ … +βpxp+ε 其中:β0,β1,β2… βp是参数值,ε是误差值3. 多元回归方程E(y)=β0+β1x1+β2x2+ … +βpxp4. 估计多元回归方程y_hat=b0+b1x1+b2x2原创 2017-12-11 18:31:48 · 1328 阅读 · 0 评论 -
多元线性回归(下)
多元线性回归python代码实现:from numpy import genfromtxtimport numpy as npfrom sklearn import datasets, linear_modeldataPath = r"D:\eclipse\mars\project\DeepLearningBasicsMachineLearning\Datasets\Delivery...原创 2017-12-11 18:33:18 · 427 阅读 · 0 评论 -
非线性分类-决策树算法介绍
0、机器学习中算法的评价准确率 速度 强壮性 可规模性 可解释性1、什么是决策树(decision tree)决策树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布。树的最顶层是根结点。2、它是机器学习中分类方法中一个重要的算法3、构造决策树的基本算法例子:“什么样的人买电脑”下图为数...原创 2017-12-04 14:07:30 · 689 阅读 · 0 评论 -
非线性分类-决策树(离散值、连续值问题数选择)
1.写在前面最近机器学习课上学了决策树相关知识,对于我之前的理解又加深了一步,故再次总结学习。我之前看的是麦子学院关于决策树的讲解,还有代码实现,当时也做了笔记。有兴趣的可以可以看一下。2.非线性问题对于分类问题,如果是可以找出一条直线分开说明是线性可分,其他我们一般称为非线性可分。对于线性不可分数据,采用非线性决策的方法。如图左侧为线性可分,右侧为线性不可分。2.1 线性扩展...原创 2019-10-11 10:45:34 · 2479 阅读 · 0 评论 -
非线性分类-决策树(划分选择问题)
1.写在前面前面写了关于决策树针对特征离散值和连续值,如何选择问题个数进行了探讨(https://blog.csdn.net/Suyebiubiu/article/details/102492274),下面我们将用一部分时间讨论“哪一个特征应该作为根节点,哪一些特征应该放在前面”,这样的选择问题,我们将其称为划分选择问题。2.纯度和非纯度的概念一般而言,随着划分过程不断执行,我们希望决...原创 2019-10-11 12:10:41 · 918 阅读 · 0 评论 -
非线性分类-决策树(剪枝处理)
1.剪枝处理剪枝操作是决策树中应对过拟合的一个主要手段,有时候会造成分支过多,这时候说明训练样本学习的太好了,导致了过拟合的存在,因此我们可以主动的去掉一些分支降低过拟合的风险。剪枝操作基本有预剪枝和后剪枝两个,预剪枝是说在决策树生成过程中,对每一个节点在划分前进行估计,若当前节点的划分不能带来决策树泛化性能提升,则停止划分,并将当前节点标记为叶子节点。后剪枝操作是指在训练完后,生成一个完...原创 2019-10-11 15:14:52 · 543 阅读 · 0 评论 -
非线性分类-决策树算法实现(scikit-learn)
1、python本课程的机器学习的算法都是基于python语言实现的,所以你需要有一定的python语言基础。2、python机器学习的库:scikit-learn特性:1)简单高效的数据挖掘和机器学习分析2)对所有用户开放,根据不同需求高度可重用性3)基于Numpy, SciPy和matplotlib4)开源,商用级别:获得 BSD许可覆盖问题领域:...原创 2017-12-04 14:08:36 · 1075 阅读 · 0 评论 -
支持向量机(SVM)算法原理
1 背景最早是由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis 在1963年提出 目前的版本(soft margin)是由Corinna Cortes 和 Vapnik在1993年提出,并在1995年发表 深度学习(2012)出现之前,SVM被认为机器学习中近十几年来最成功,表现最好的算法2 机器学习的一般框架训练集 =>原创 2017-12-04 18:32:45 · 785 阅读 · 0 评论 -
支持向量机(SVM)--线性不可分
1. SVM算法特性:1.1 训练好的模型的算法复杂度是由支持向量的个数决定的,而不是由数据的维度决定的。所以SVM不太容易产生overfitting 1.2 SVM训练出来的模型完全依赖于支持向量(Support Vectors), 即使训练集里面所有非支持向量的点都被去除,重复训练过程,结果仍然会得到完全一样的模型。 1.3 一个SVM如果训练得出的支持向量个数比较小,原创 2017-12-04 18:49:03 · 5532 阅读 · 4 评论 -
支持向量机(SVM)算法在人脸识别上的应用
# -*- coding: gbk -*-# 利用SVM进行人脸识别实例:from __future__ import print_functionfrom time import timeimport loggingimport matplotlib.pyplot as pltfrom sklearn.cross_validation import train_test_spl原创 2017-12-04 18:51:36 · 3045 阅读 · 0 评论 -
支持向量机(SVM)算法代码
1 sklearn实现svm的小例子from sklearn import svmX = [[2,0],[1,1],[2,3]]y = [0,0,1]clf = svm.SVC(kernel = "linear")clf.fit(X,y)print(clf)print(clf.support_vectors_)print(clf.support_)print(cl...原创 2017-12-04 18:44:04 · 977 阅读 · 0 评论 -
手推支持向量机01-硬间隔SVM-模型定义(最大间隔分类器)
目录1.写在前面2.硬间隔SVM(hard-margin SVM)1.写在前面 支持向量机SVM是机器学习中非常流行的分类算法,最近朋友推荐了机器学习-白板推导系列(六)-支持向量机SVM(Support Vector Machine)视频,感觉这个大佬讲的非常棒,之前写的关于svm的东西太浅显了,于是重新整理,方便以后复习。我们主要是从理论推导SVM是怎么一步一步演化到一个优化问题。从核心概念上讲,有一个口头禅:SVM有三宝,间隔、对偶、核技巧。 首先核技巧...原创 2020-07-19 15:39:58 · 1038 阅读 · 1 评论 -
手推支持向量机02-硬间隔SVM-模型求解(引出对偶问题)
1.写在前面原创 2020-07-21 23:41:00 · 643 阅读 · 0 评论 -
手推支持向量机03-硬间隔SVM-模型求解(对偶问题之KKT条件)
目录1.写在前面2.KTT条件3.求最终的w*,b*和最终的决策函数1.写在前面 上面我们讲到了怎么对硬间隔SVM进行求解,我们我们先把带约束问题,转化为无约束问题,通过强对偶关系将minmax转为maxmin,对w,b求min,最终我们求出来最小值,然后关于λ求最大值。 我们最后圈出来的地方,可以变成min,只需要在后面加上符号。因为习惯上用最小化表达,并且这个位置把约束也补全了。 这篇博客我们重点看一下上面的优化函数怎么求...原创 2020-07-22 00:25:51 · 699 阅读 · 0 评论 -
手推支持向量机04-软间隔SVM-模型定义
1.写在前面原创 2020-07-26 15:57:06 · 410 阅读 · 0 评论 -
手推支持向量机05-约束优化问题-弱对偶性证明
1.写在前面原创 2020-08-02 17:45:45 · 453 阅读 · 0 评论 -
手推支持向量机06-约束优化问题-对偶关系的几何解释
发送到原创 2020-08-09 20:00:34 · 446 阅读 · 0 评论 -
手推支持向量机07-约束优化问题-对偶关系之slater condition的解释
范德萨发生原创 2020-08-12 18:37:33 · 1915 阅读 · 0 评论 -
手推支持向量机08-约束优化问题-对偶关系之KKT条件
目录1.写在前面2.什么是KKT条件(3组,5个条件)1.写在前面 上一节,我们介绍了slater条件,假如说我们遇到一个凸优化问题+slater条件,那么一定满足强对偶关系。强对偶关系是说p*是原问题的解,d*是对偶函数的解,满足p*=d*。p*对应最优解是x*,d*对应最优解是λ*和η*。怎么求出来这三个最优解呢?KKT就给定了这三者之间的一个关系,可以求出这三个最优解。并且KKT条件和强对偶关系属于充要条件,可以互相推导。我们这一节就介绍什么是KKT条件。2.什么...原创 2020-08-12 19:07:26 · 850 阅读 · 0 评论 -
神经网络算法
1. 背景1.1 以人脑中的神经网络为启发,历史上出现过很多不同版本 1.2 最著名的算法是1980年的 backpropagation算法2. 多层前馈神经网络(Multilayer Feed-Forward Neural Network)2.1 Backpropagation算法被使用在多层前馈神经网络上 2.2 多层前馈神经网络由以下部分组成(如下图):原创 2017-12-04 20:02:56 · 1348 阅读 · 0 评论 -
神经网络算法(python实现)
1. 关于非线性转化方程(non-linear transformation function)sigmoid函数(S 曲线)用来作为activation function: 1.1 双曲函数(tanh) 1.2 逻辑函数(logistic function)2. 实现一个简单的神经网络算法import numpy as npdef tanh(x): ret原创 2017-12-04 20:03:32 · 2079 阅读 · 0 评论
分享