- 博客(22)
- 收藏
- 关注
原创 随机森林与线性回归
回归的目的是预测数值型目标值 ( y )。最直接的方法是用输入 ( x ) 写出一个目标值 ( y ) 的计算公式。例如,要预测某机器学习的效果,可能使用如下公式:这就是回归方程,其中 ( 0.015 ) 和 ( -0.69 ) 是回归系数。回归过程的核心在于求这些系数。一旦获得回归系数,预测值就可以通过将输入值乘以相应的系数并求和来得出。
2024-08-26 20:45:06
846
原创 朴素贝叶斯与决策树分类
基尼指数定义为:其中:D是当前数据集。K是类别的总数。pk是属于第 k类的样本占数据集 D的比例。基尼指数越低数据集的纯度越高。
2024-08-22 21:22:57
894
原创 KNN算法与模型选择及调优
分层 K-Fold 交叉验证是 K-Fold 交叉验证的变种。例如,如果原始数据有三类,比例为 1:2:1,那么每一折中的类别比例也保持 1:2:1。nearest_neighbors = df.sort_values(by='距离').head(k)#head(k) 是 pandas 的一个方法,用于从 DataFrame 的顶部获取前 k 行数据。#most_common(n) 是 Counter 类的一个方法,它返回出现频率最高的 n 个元素及其计数,返回一个列表,其中包含元组 (元素, 频次)。
2024-08-21 21:23:54
1299
原创 文本特征提取与降维
data2 = [{'city':'成都', 'age':36, 'temperature':120}, {'city':'重庆','age':32, 'temperature':90}, {'city':'北京', 'age':35, 'temperature':80}]str1=["稀疏矩阵是指一个矩阵中大部分元素为零","只有少数元素是非零的矩阵","在数学和计算机科学中","当一个矩阵的非零元素数量远小于总的元素数量","且非零元素分布没有明显的规律时","这样的矩阵就被认为是稀疏矩阵"]
2024-08-20 20:47:26
1018
原创 去噪、梯度与边缘检测
在图像中,边缘部分的像素值与周围像素值存在明显差异,因此,通过局部求极值的方法,我们可以提取出图像的边缘信息。然而,由于图像是离散的二维函数,我们采用差分的方法来近似导数,这种差分被称为图像的梯度。双边滤波采用了两个高斯滤波的结合,一个负责计算空间邻近度的权值(也就是空域信息),也就是上面的高斯滤波器,另一个负责计算像素值相似度的权值(也就是值域信息),也是一个高斯滤波器。高斯滤波器的公式可以用来计算每个像素周围的加权平均值,权重由高斯函数决定,越接近中心的像素权重越大,越远离中心的像素权重越小。
2024-08-15 21:01:02
1175
原创 优化图像处理:从旋转与缩放到水印添加
整个过程包括:从模板图像中创建掩膜。在目标图像中定位水印区域,并用掩膜图像来提取水印形状。将提取出的水印图像与目标图像的相应区域融合。
2024-08-14 20:48:56
1296
原创 掌握图像处理中的颜色识别与形态学变换技术
在HSV颜色空间中,为了与计算机处理的需要相适应,色调的范围常常被映射到0到180的范围,其中0°代表红色,120°代表绿色,240°代表蓝色,其他颜色位于这些基色之间。在实际应用中,HSV颜色空间可以使得对颜色的调整更加直观,比如在图像处理中,调整色调可以改变图像的色彩,调整饱和度可以改变颜色的鲜艳度,而调整亮度可以改变图像的明暗程度。亮度为0时,颜色为黑色。在OpenCV中,颜色是以BGR(蓝色、绿色、红色)的方式存储的,因此红色的像素值为(0,0,255),而不是(255,0,0)。
2024-08-13 20:28:12
1179
原创 opencv基础的图像操作
RGB图像中的每个像素由红色(R)、绿色(G)和蓝色(B)三个分量表示,每个分量的值范围通常是0到255。在RGB图像中,每个像素由红色(R)、绿色(G)和蓝色(B)三个颜色通道的值组成。cv2.rectangle(img, (100,20), (30, 50), (255, 0, 0), 2) #画方。cv2.line(img,(10,50),(200,50),(0,255,0),2) #画线。cv2.circle(img,(100,50),20,(0,0,255),2) #画圆。
2024-08-12 20:30:00
1011
原创 Pandas库学习与总结
Pandas 中的Series是一种类似于一维数组的数据结构,可以保存任意数据类型的元素,并且每个元素都与一个索引相关联。
2024-08-09 22:36:37
1048
原创 Numpy学习与总结(续篇)
例如,对于两个形状分别为 (3, 1) 和 (1, 4) 的数组进行乘法,会将第一个数组的每一行分别与第二个数组的每一列相乘,得到一个形状为 (3, 4) 的输出数组。例如,如果有一个形状为 (3, 1) 和一个形状为 (1, 4) 的数组,它们通过广播运算后得到的数组形状为 (3, 4)。numpy.ravel() 展平的数组元素(扁平化),顺序通常是"C风格",返回的是数组视图(view,有点类似 C/C++引用reference的意味),修改会影响原始数组。简单的赋值不会创建数组对象的副本。
2024-08-07 19:59:16
707
原创 Numpy学习与总结
NumPy 数组中的元素通常是同一数据类型,因此它们在内存中占用的空间是固定的,但在某些情况下(比如使用结构化数组或对象数组),元素可能有不同的大小。随机生成10X10的数组,x_trian为前9列的80%的数据,x_test为前9列的20%的数据,y_trian为剩下一列的80%,y_test为剩下一列的20%轴是数组的一个维度。例如,对于二维数组,第一个轴是沿着行的方向,第二个轴是沿着列的方向。#表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)。
2024-08-06 20:29:58
753
原创 双向链表的Python代码实现
每次在插入或删除某个节点时, 需要处理四个节点的引用, 而不是两个. 也就是实现起来要困难一些。链表中原来如果没有数据, 那么直接让head和tail指向这个新的节点即可.# 根据元素获取再链表中第一个出现的位置, 没有返回 - 1。也就是链表相连的过程是双向的. 那么它的实现原理, 你能猜到吗?#3.来到这个位置, 说明没有找到, 则返回-1。但是这些缺点和我们使用起来的方便程度相比, 是微不足道的.一个节点既有向前连接的引用, 也有一个向后连接的引用.双向链表可以有效的解决单向链表中提到的问题.
2024-08-02 20:13:03
801
原创 数据结构与算法进阶篇(上)
优先级队列的特点:我们知道, 普通的队列插入一个元素, 数据会被放在后端. 并且需要前面所有的元素都处理完成后才会处理前面的数据.但是优先级队列, 在插入一个元素的时候会考虑该数据的优先级.(和其他数据优先级进行比较)比较完成后, 可以得出这个元素正确的队列中的位置. 其他处理方式, 和队列的处理方式一样.也就是说, 如果我们要实现优先级队列, 最主要是要修改添加方法. (当然, 还需要以某种方式来保存元素的优先级)
2024-08-01 19:32:40
611
原创 装饰器decorators(能力提高篇)
在 mydeco 内部,首先调用了 fn() ,即此时调用了 myfun 函数,产生了输出:"函数myfun被调。在不修改被装饰的函数的源代码,不改变被装饰的函数的调用方式的情况下添加或改变原函数的功。print("====这是myfunc被调用之前====")print("----这是myfunc被调用之后====")3.接着,打印了"装饰器函数被调用了,并返回了fx"。repeat 是一个接受参数的装饰器工厂函数,它返回一个装饰器。print("装饰器函数被调用了,并返回了fx")
2024-07-31 21:11:25
683
原创 Python迭代器与生成器
迭代器是访问可迭代对象的工具迭代器是指用 iter(obj) 函数返回的对象(实例)迭代器可以用next(it)函数获取可迭代对象的数据。
2024-07-30 20:26:37
852
原创 简单的购物小程序
105: {"name": "降龙十八掌", "price": 8000},105: {"name": "降龙十八掌", "price": 8000},count = int(input("请输入购买数量:"))101: {"name": "屠龙刀", "price": 10000},102: {"name": "倚天剑", "price": 10000},101: {"name": "屠龙刀", "price": 10000},102: {"name": "倚天剑", "price": 10000},
2024-07-29 20:10:50
249
原创 容器推导式
元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。元组推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。[ 表达式 for 自定义变量 in 可迭代对象 if 真值表达式 ][ 表达式 for 自定义变量 in 可迭代对象 ](表达式 for 元素 in 序列 if 条件。用简单的表达式方式来创建列表。
2024-07-26 19:28:43
327
原创 让你的Python学习不再负担,而是软实力的体现(一)
容器总结类型列表 list元组 tuple字典 dict集合 set / 固定集合 frozenset可变和不可变可变的容器不可变得容器有序和乱序有序无序。
2024-07-25 20:48:11
892
原创 Python基础学习
输入和输出是Python编程中基本的操作,能够让程序与用户进行交互和展示结果。input()函数用于接收用户的输入数据,而print()函数用于将数据输出到控制台或其他标准输出设备。变量是编程中非常基础和重要的概念,它们提供了一种方便和灵活的方式来存储和操作数据,使得程序能够更有效地进行计算、控制和逻辑判断。良好的变量命名和使用习惯有助于提高代码的可读性和可维护性。3.变量类型在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
2024-07-24 20:29:14
453
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人