- 博客(38)
- 收藏
- 关注
原创 机器学习 Day18 Support Vector Machine ——最优美的机器学习算法
我们只说SVM用于分类的推导,并且只说用于二分类的推导,多分类会由二分类得到数据在空间中常常被分为3类:线性可分,近似线性可分,线性不可分,在SVM中分别对应的就是硬间隔,软间隔,核技巧,文章会一一解释:最直观的想法就是我们可以直接通过一条线对这个线性可分的模型进行处理,比如说就是这条直线(二维是直线,高维就是超平面了),直线方程可以是图中方程,然后我们给一个预测样本,我们就去带入这个超平面,如果这个在上方就是正类,下方就是负类,所以模型就是这样:我们承认的是一般情况下如果存在一条直线可以把 两个类分开,那
2025-05-18 17:46:31
1326
原创 机器学习 Day17 朴素贝叶斯算法-----概率论知识
优缺点优点理论基础与效率:源于古典数学理论,分类效率稳定。像在文本分类场景中,能快速处理大量文本并分类。数据适应性:对缺失数据敏感度低,算法简单。实际应用中,即使数据存在部分缺失,也不影响整体分类效果(因为我们计算的是属于某一类的概率,概率比较大小即可,缺失数据不影响)。分类性能:分类准确度较高且速度快,在文本处理等领域广泛应用。缺点特征关联问题:基于样本属性独立性假设,当特征属性存在关联时,分类效果不佳。例如在分析金融数据时,一些经济指标间存在内在联系,朴素贝叶斯假设会导致偏差。先验概率依赖。
2025-05-14 18:28:00
1222
原创 机器学习 Day16 聚类算法 ,数据降维
主要参数KMeans(n_clusters=8) # n_clusters指定聚类中心数量# 常用方法estimator.fit(x) # 训练模型estimator.predict(x) # 预测类别estimator.fit_predict(x) # 训练+预测旨在从数据中包含的众多特征(属性、指标等)里,找出主要特征,剔除冗余或无关变量。例如分析鸟类相关数据时,羽毛颜色、眼睛宽度等都是可能的特征,需筛选出对研究目的(如区分鸟类种类等)有重要作用的特征。
2025-05-14 17:28:20
957
原创 机器学习Day15 LightGBM算法
我们可以把特征做一个分割后去分配给每个机器,比如说我把100个特征按10个10个分组打包给10个机器,由每个机器对于每个特征去进行直方图统计,每个特征会产生一个最优的增益分割点,这样的话每个机器会产生一个最优增益特征分割点,然后把每个机器的进行比较,得到最优的特征的直方图分割点,然后按照这个进行划分即可。8.算法总体看法:lightgmb算法并不是一个固定的算法,更像是一个框架,因为我们可以使用不同的增益去构造树,对应的损失也不同,你比如说是使用xgboost的一个增益的话,损失就是带有正则化的一般损失;
2025-05-01 23:15:52
746
原创 机器学习 Day14 XGboost(极端梯度提升树)算法
1.算法的原理(预测函数,损失函数,优化方法)预测函数和优化方法:从极端梯度提升树我们就会知道,XGboost也是一类提升树,所以预测函数 一般是权重为1的回归决策树(因为涉及到求梯度,要求回归)的求和,优化算法是向前分步算法,即每一步求一个最优决策树损失函数:就是在原本的损失函数上增加一个正则化项(GBDT算法加上正则化项),以此来减小过拟合的分险,具体在XGboost算法里是加上每棵树的惩罚:所以现在我们去优化带正则项的损失函数就行,我们接下来对它 进行化简:2.原理推导,手写推导说明OBJ只与当前构造
2025-04-24 18:11:40
1243
原创 机器学习 Day13 Boosting集成学习方法: Adaboosting和GBDT
(b)步骤就是我们以前讲过的回归决策树的构造,(c)步骤的意思就是在求解第m个决策树第j个节点上的回归值,是通过最小化损失函数计算得到的,观察那个式子,就是我们把在这个节点上的样本回归值都用c表示,c可以是得在这个节点上的总损失最小,那个fm-1(x)+c,就是表示我上一轮的值加上这个c与真实值的损失最小。他的损失函数是一般的损失函数,我们用L(y,f(x))表示 ,GBDT的核心目标是:确保每增加一个学习器,总损失不会增加,即第m步比第m-1步的总损失不大。如何计算每个学习器的占比权重。
2025-04-21 20:03:57
815
原创 机器学习 Day12 集成学习简单介绍
集成学习是一种通过组合多个模型来提高预测性能的机器学习方法。超级个体vs弱者联盟单个复杂模型(如9次多项式函数)可能能力过强但容易过拟合组合多个简单模型(如一堆1次函数)可以增强能力而不易过拟合集成学习通过生成多个分类器/模型,将它们的预测结果组合起来,通常能获得优于任何单一分类器的预测性能。
2025-04-20 22:33:58
777
原创 机器学习 Day11 决策树
特征提取是将原始数据(如文本、图像、字典等)转换为机器学习算法可以理解的数值特征的过程。这是机器学习预处理的关键步骤。主要分类字典特征提取(特征离散化)文本特征提取图像特征提取(之后讲)One-Hot编码是将分类变量转换为机器学习算法更易理解的形式的过程。它为每个类别创建一个新的二进制特征(0或1)。
2025-04-17 11:34:54
1063
原创 机器学习 Day10 逻辑回归
类别不平衡是指数据集中不同类别的样本数量差异很大的情况。一个三分类问题,其中:类别0: 64个样本(1.28%)类别1: 262个样本(5.24%)类别2: 4674个样本(93.48%)这种极端不平衡会导致模型偏向多数类,忽视少数类。
2025-04-09 22:44:35
960
原创 机器学习 Day09 线性回归
全梯度下降算法(FG)原理:计算训练集所有样本误差并求平均作为目标函数,利用所有样本计算损失函数关于参数theta的梯度,权重向量沿梯度反方向移动。公式为:优缺点:优点是能准确朝着最优解方向更新;缺点是计算所有样本梯度,速度慢,无法处理超内存数据集,不能在线更新模型。随机梯度下降算法(SG)原理:每次只代入计算一个样本目标函数的梯度来更新权重,不断重复,直至损失函数值满足停止条件。迭代公式为(无求和了):优缺点:优点是简单高效,可避免收敛到局部最优解;缺点是仅用单个样本迭代,
2025-04-08 23:47:58
1190
1
原创 机器学习 Day09 KNN算法
背景与目的:在 KNN 算法中,当数据集很大时,线性扫描(穷举搜索)计算输入实例与每个训练实例的距离非常耗时。kd 树是为解决 KNN 快速 k 近邻搜索问题而引入的特殊数据结构,通过保存距离信息,减少距离计算次数,提升搜索效率,优化后算法复杂度可降低到O(DNlog (N))。原理:kd 树是一种平衡二叉树 (子树深度差不超过1),对 k 维空间中的实例点进行存储以便快速检索。
2025-04-06 16:51:10
696
原创 机器学习 Day08,案例实现,代码学习,数据分析基本完成
1.另一种形式的绘制多个图(之前是用坐标系来控制每个图的样式)学习第一点:plt可以和sns结合使用,plt可以设置sns图的一些格式很全面。设置seaborn的绘图风格为darkgrid,即深色网格背景,让图形更美观学习第三点:plt.subplot(a,b,c)是。
2025-03-19 13:59:33
1178
原创 人工智能 Day06 pandas库进阶
统一缺失值形式:若存在缺失值但不是np.nan的形式,使用将其替换为np.nan。判断是否存在缺失值:使用,若结果为True,表示不存在缺失值,不做处理;若为False,表示存在缺失值,继续下一步。填充缺失值:使用统计学指标值(如均值mean、中位数median等 )对缺失值进行填充,如。2.数据的离散化连续属性离散化是在连续属性值域上划分若干离散区间,用不同符号或整数值代表落在各子区间的属性值。
2025-03-16 21:48:08
607
原创 机器学习 Day05 pandas库
Series 是 Pandas 中类似于一维数组的数据结构,能保存整数、字符串、浮点数等任何类型数据,由数据和相关索引两部分构成。就像一个有序的键值对集合,索引相当于键,数据相当于值。DataFrame 是 Pandas 中类似二维数组或表格(如 Excel)的对象,兼具行索引(横向,axis=0 )和列索引(纵向,axis=1 ) ,方便对二维数据进行操作和管理。apply。
2025-03-15 22:13:10
1105
原创 机器学习 Day03 Numpy基本使用
用于创建一个指定形状(shape)和数据类型(dtype)的数组,数组元素全部初始化为 1。shape是一个整数或整数元组,表示数组的维度大小;dtype可选,指定数组元素的数据类型,默认是float64。:以给定数组a为模板,创建一个形状和a相同的数组,元素全部初始化为 1。同样,dtype可选,用于指定新数组的元素类型,若不指定,则沿用a的元素类型。:创建一个指定形状(shape)和数据类型(dtype)的数组,元素全部初始化为 0。参数含义与np.ones类似。:根据给定数组a。
2025-03-10 13:15:49
1068
原创 机器学习 Day02,matplotlib库绘图
1.matplotlib图像结构2.基本画图框架模块。这是 Python 中一个用于数据可视化的强大模块,其中的函数与 Matlab 的绘图函数类似,方便易用,一般通过导入。以下是使用:使用:以折线图为例,假设我们有一组数据,使用plt.plot():使用plt.show()函数展示绘制好的图像3.基本修饰3.1图的刻度:如第二张图代码所示,先导入和random模块。通过range(60)生成表示 60 分钟的横坐标数据x,使用生成 15 到 18 度之间的随机温度数据y_shanghai作为纵坐标。
2025-03-08 16:41:54
900
原创 机器学习 Day01人工智能概述
监督学习:输入数据由特征值和目标值组成,输出可以是连续值(回归问题,如根据房屋平米数预测房价),也可以是有限个离散值(分类问题,如根据肿瘤特征判断其良性或恶性)。无监督学习:输入数据只有特征值,无目标值,数据未被标记。通过样本间的相似性对样本集进行类别划分,比如对不同人物按特征分类。半监督学习:训练集包含有标记和未标记的样本数据。一种训练方式是先对大量未标记数据由专家打标签,生成大量标记数据用于监督学习训练模型;另一种是专家只对少量未标记数据打标签,结合标记和未标记数据进行半监督学习。
2025-03-08 15:36:25
1005
原创 数据库完结 Day04
1.数据库设计三范式范式是在设计关系数据库时遵循的不同规范要求,这些不同的规范要求就是范式,目的是设计出合理的关系型数据库。不可再分在满足第一范式的基础上,表必须有一个主键,要求表中的所有非主属性完全依赖于主键在满足第二范式的前提下,消除非主属性对主键的传递依赖通过外键关联,以符合第三范式范式等级越高,数据库冗余越小。但也并非范式越高越好,过高的范式可能会导致表数量增多,增加连接查询的复杂度和性能开销。在实际设计中,需根据业务需求和性能要求,在数据冗余和查询效率间权衡选择合适的范式。contact。
2025-03-05 17:08:45
1039
原创 数据库 Day03
1.Mysql实战1.1我们先创建一个数据库看一个难的:我们无法直接得到每种类型中最贵的,这个例子告诉我们使用内连接可以起到数据筛选的作用。good表:1.2由删除引发的异常而且如果apple变成了华为,我们直接在品牌表里进行更改就可以了,避免对原表进行大量修改。第一行if not exists 表示如果没有才会创建。第三行 我们的种类表id是自己增长的,只需要插入name即可,当我们一次性加入时不需要加values了。2.外键。
2025-03-04 21:17:25
580
原创 数据库 Day02
1.where语句1.1作用:在 SQL(Structured Query Language,结构化查询语言)中,WHERE子句主要用于在SELECTUPDATEDELETE等语句中对数据进行筛选,它可以根据指定的条件从表中选取满足条件的行,从而缩小查询或操作的范围,提高数据处理的准确性和效率,下面介绍在查询语句中的用法,其他类比.1.2比较运算1.3逻辑运算1.4模糊查询1.5范围查询1.6 空值判断1.7结合order排序1.8聚合函数2.1group分组group bycount。
2025-03-03 20:16:19
627
原创 数据库 Day01
2.数据库管理系统的介绍,sql语句的介绍,关系型数据库中的核心元素。1.数据库的概念和作用,分类及特点。3.mysql中的数据类型。5.数据库基本操作命令。3.数据的完整性和约束。4.登录和退出数据库。6.数据表基本操作命令。
2025-03-02 20:19:16
809
原创 Python高级语法 Day02_______正则表达式
正则表达式,又称规则表达式(Regular Expression,在代码中常简写为 regex、regexp 或 RE),是一种文本模式,用于描述和匹配一系列符合特定规则的字符串,
2025-03-01 11:45:33
962
原创 Python高级语法 Day01
以上图可以说明拷贝的地址空间问题,浅拷贝内部的地址还是一样的只不过外部不一样。之所以说拷贝只针对可变对象是因为可变对象是有安全问题的,但是不可变对象没有,如果对于不可变对象进行拷贝得到的只是原内容的地址拷贝,类似于对于可变对象的赋值。上下文管理器是 Python 中一种强大且实用的工具,它主要用于管理资源的分配和释放,确保资源在使用完毕后能被正确清理,避免资源泄漏。注意那个赋值是针对可变类型的数据的,不可变的会重新开辟一个空间。语句块时被调用,负责资源的分配和初始化;语句块时被调用,负责资源的释放和清理。
2025-03-01 10:39:28
135
原创 Web服务器开发 Day01
但是当客户端关闭时,会返回一个" " ,这时request_path = req_data[1]会出现错误,这时就需要改进函数,增加判断内容。以上代码无论客户端输入什么网址都会返回./static/index.html这一个固定的页面,如何返回用户指定的页面呢?先介绍一下获取终端命令的方法:下图最后一行的sys模块里的argv可以用空行切割命令并按列表返回。发现以上代码都是固定端口号是8080,那怎么样动态的规定服务器的端口号呢。3.3开发自己的Web服务器之返回指定页面。3.静态Web服务器搭建。
2025-02-27 23:21:07
254
原创 通信知识 Day01
他们之间的关系可以类比为:网络就是社会关系,大家都可以在网络中进行数据传输,但比如说你要和一个人联系,首先你要找到他住的小区,这个小区就是ip地址,光有ip地址还不行,你要找到这个人住的家并且打开门进去说话,这个门就是端口这个门牌号就是端口号,但这就行了吗?你得有路呀,这个路就是scoket,有路就行了吗,你要有交通工具,这个交通工具的一种就是TCP。6.完整的服务端开发:很明显以上服务器只能一次服务于一个客户端,并且服务端会关闭,接下来是改进方法,首先先让它一直启动着循坏接受请求。3.socket介绍。
2025-02-27 11:35:30
317
原创 多任务 Day01
并发是指在同一时间段内,处理多个任务的能力。在并发执行的情况下,多个任务会交替执行,看上去像是同时进行,但实际上在任何一个时刻,处理器都只在处理一个任务。这就好像一个人在同一时间内要处理多个事情,比如一边看电视一边吃饭一边听音乐,通过快速地在这些事情之间切换注意力,给人一种同时在做几件事的感觉。
2025-02-26 17:24:44
340
原创 Linux Day01 and Day02(01昨天忘记发了)
tar命令就一个归档的命令,通常cvf会一起使用,压缩和解压缩得使用-zcvf或者-jcvf,解压缩对应的是-zxvf和-jxvf(把c打包选项换成解包选项x即可),这些选项经常一起使用,以上就是固定的格式。这是查看文件后的显示,如右边,第一整体列代表这个文件的类型和权限(之后讲),第三列表示你的用户名,第四列表示用户组(在工作环境中有不同的组),之后如右图。管道就是把上一个命令的输出作为输入储存在管道中供下一个命令使用 命令1 | 命令2就是把命令1。的返回结果作为命令2的输入。2.Linux高级命令。
2025-02-22 14:25:18
127
原创 Python基础结束 Day10
今天用到的是实例._dict_会返回一个字典,键值对是实例的_init_里对应的键值对。student_list储存的是一个一个对象,对象里的_init_里是每个对象的名字,性别,年龄,要把这个列表写入文件,但文件必须要求写入字符串,因此先循环遍历列表,然后对每个实例对象使用_dict_法转化为字典,并以一个列表存储所有字典(列表推导式),转换为str写入即可。那如何将这个文件中的数据加载到这个以对象为单位的列表里呢?1._dict_方法。
2025-02-20 20:25:23
132
原创 Python Day09
虽然可以使用重新定义父类们的方法一(自己截的图)进行,但是 那样写的话父类名如果变化需要大量更改代码,而且当父类名很多的时候代码冗余严重,所以采用super方法,注意此方法只能调用一代父亲的函数,如果要全部调用可以在被调用的父代函数里继续采用super方法,一直到全部完成。super最好是用于单继承的情况,当一个类继承了多个父类的时候,并且这多个父类还有自己的父类,怎么办呢?其实顺序就是先调用第一个父类,之后调用第一个父类的父类(若还有多个情况相同),在第一个父类都调用完毕后,调用第二个父类,同样。
2025-02-18 20:30:53
142
原创 Python Day08
优化方向:当前代码使用 一次性读取整个文件内容,对于大文件而言,这可能会导致内存占用过高。可以采用分块读取和写入的方式,例如:一部分一部分的读取和写入,防止内存问题。例子:对于文件(不限制文件类型)的拷贝代码实现,比如源文件是a.text,拷贝的文件是a[备份].text。
2025-02-17 20:47:54
148
原创 Python Day07
2.高阶函数:一个函数作为另一个函数参数使用。集合的推导式和列表一样,只是会去重。2.3之前学过的map()1.列表,字典,集合推导式。abs可以换成任意函数。
2025-02-15 22:14:32
139
原创 Python Day04
最内层抛出异常后直接执行最内层的except,完成后相当于最内层的try-except结束,继续执行return,程序结束。为了避免这种情况,可以在函数内部对传入的可变对象进行复制操作(03中的深浅拷贝)就是把表达式的位置换成if三目运算,if三目运算结果充当返回值.:当可变变量在函数中被使用时,函数会改变它的内容,造成代码问题,自定义异常会保存()里的东西。关于局部变量的一些理解。
2025-02-12 19:41:50
137
原创 Python Day03
由于 eval() 会执行任意的 Python 表达式,如果传入的字符串来自不可信的来源(如用户输入),可能会导致代码注入攻击。list():可以将可迭代对象(可以使用for循环迭代)(字符串,元组,字典,集合)转化成列表,但在转换字典的时候只会取出键名,集合转换成列表会先去重。不可变对象:变量对应的值不能被修改,一但修改就会产生一个新的值从而分配一个新的内存空间,例如整型和字符串元组。可变对象:修改变量的值后内存空间不变,例如字典,列表和集合。eval():用来执行一个字符串表达式,返回表达式的值。
2025-02-11 21:06:28
262
原创 Python Day02
字符串.index(子字符串,开始位置,结束位置):若有返回子字符串出现的起始位置,字符串[a,b,c]:截取a到b之间的字符串,包前不包后,步长是c,c为负表示右往左,c为正表示左往右。字符串.count(子字符串,开始位置,结束位置):返回子字符串在字符串中出现次数,规则同上。查找:字符串.find(子字符串,开始位置,结束位置):若有返回子字符串出现的起始位置,列表.insert(a,b):将b添加在a位置,如果位置有元素则所有元素后移。range(a,b,c)从a到b包含a不包含b,步长是c。
2025-02-10 21:57:58
362
原创 Python Day01
d:整数,%a4d:不足4位数用a补足(默认为空白),超过不变。bool 布尔型:True 和False,布尔型可以当做整数对待(1和0)%f:浮点数,%.4f:四舍五入保留4位小数位数,默认是6位。sep设置间隔的符号,end设置这句话之后的东西,默认空格。4.2f“.....{表达式}.....{表达式}...”5.转义字符 \t制表符 \n换行符 \\ 表示\。要加引号,单和双都可以但要英文字符,多行内容用三引号。type()检测数据类型。float 浮点型:小数。4.1 %s:字符串。
2025-02-09 19:53:23
173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人