- 博客(40)
- 收藏
- 关注
原创 模型评估与优化
在样本数量较少的情况下,如果将样本划分为训练集、测试集,可能导致单个集合样本数量更少,可以采取交叉验证法来训练和测试模型.将所有数据,划分成N等分,用每份都去训练,用每份都去测试所有的数据,都去训练,所有的数据都去测试“交叉验证法”(cross validation)先将数据集D划分为k个大小相同(或相似)的、互不相交的子集,每个子集称为一个"折叠"(fold),每次训练,轮流使用其中的一个作为测试集、其它作为训练集. 这样,就相当于获得了k组训练集、测试集,最终的预测结果为k个测试结果的平均值.
2025-02-08 15:04:35
939
原创 分类——朴素贝叶斯
概率是反映随机事件出现的可能性大小. 随机事件是指在相同条件下,可能出现也可能不出现的事件. 例如:(1)抛一枚硬币,可能正面朝上,可能反面朝上,这是随机事件. 正/反面朝上的可能性称为概率;(2)掷骰子,掷出的点数为随机事件. 每个点数出现的可能性称为概率;(3)一批商品包含良品、次品,随机抽取一件,抽得良品/次品为随机事件. 经过大量反复试验,抽得次品率越来越接近于某个常数,则该常数为概率.我们可以将随机事件记为A或B,则P(A), P(B)表示事件A或B的概率.PA∣BPAPB。
2025-02-08 12:32:29
584
原创 分类——支持向量机
支持向量机(Support Vector Machines)是一种二分类模型,在机器学习、计算机视觉、数据挖掘中广泛应用,主要用于解决数据分类问题,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化(即数据集的边缘点到分界线的距离d最大,如下图),最终转化为一个凸二次规划问题来求解。通常SVM用于二元分类问题,对于多元分类可将其分解为多个二元分类问题,再进行分类。所谓“支持向量”,就是下图中虚线穿过的边缘点。支持向量机就对应着能将数据正确划分并且间隔最大的直线(下图中红色直线)。
2025-02-08 12:26:27
819
原创 分类——决策树
决策树是一种常见的机器学习方法,其核心思想是相同(或相似)的输入产生相同(或相似)的输出,通过树状结构来进行决策,其目的是通过对样本不同属性的判断决策,将具有相同属性的样本划分到一个叶子节点下,从而实现分类或回归. 以下是几个生活中关于决策树的示例.【示例1】【示例2】在上述示例模型中,通过对西瓜一系列特征(色泽、根蒂、敲声等)的判断,最终我们得出结论:这是否为一个好瓜. 决策过程中提出的每个判定问题都是对某个属性的“测试”,例如“色泽=?”,“根蒂=?”. 每个测试的结果可能得到最终结论,也可能需要进行下
2025-02-08 12:24:11
867
原创 分类——逻辑回归
1)逻辑回归是分类问题,用于实现二分类问题2)实现方式:利用线性模型计算,在逻辑函数作用下产生分类3)多分类实现:可以将多分类问题转化为二分类问题实现4)用途:广泛用于各种分类问题。
2025-02-08 12:20:49
934
原创 决策树回归
核心思想:相似的输入必会产生相似的输出。例如预测某人薪资:年龄:1-青年,2-中年,3-老年学历:1-本科,2-硕士,3-博士经历:1-出道,2-一般,3-老手,4-骨灰性别:1-男性,2-女性年龄1⎩⎨⎧学历1学历2学历3年龄2⎩⎨⎧学历1学历2学历3年龄3⎩⎨⎧学历1学历2学历3。
2024-12-29 01:38:08
943
原创 线性回归问题
设给定一组属性xxx1;x2;;x_2;...;x_n)xxx1;x2;...;xnyw1x1w2x2w3x3wnxnbyw1x1w2x2w3x3...wnxnbywTxbywTxb其中,ww1;w2;;wnxx1;x2;;xnw=(w_1;w_2;
2024-12-29 01:35:42
1084
原创 matplotlib
plt.figure方法不仅可以构建一个新窗口,如果已经构建过title='A’的窗口,又使用figure方法构建了title=‘A’ 的窗口的话,mp将不会创建新的窗口,而是把title='A’的窗口置为当前操作窗口。案例:绘制两条曲线: sin_x = sin(x) cos_x = cos(x / 2) / 2 [0-8π]linestyle: 设置线型,常见取值有实线(‘-’)、虚线(‘–’)、点虚线(‘-.’)、点线(‘:’)案例:绘制正弦、余弦曲线,并设置线型、线宽、颜色、透明度。
2024-12-29 01:26:21
620
原创 pandas
pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入 了大量库和一些标准的数据模型,提供了高效地操作大型结构化数据集所需的工具。
2024-12-29 01:18:41
731
原创 numpy
Numerical Python,数值的Python,补充了Python语言所欠缺的数值计算能力。Numpy是其它数据分析及机器学习库的底层库。Numpy完全标准C语言实现,运行效率充分优化。Numpy开源免费。
2024-12-29 01:13:39
643
原创 L1-002 打印沙漏
可以发现,上半部分是一个倒三角形,下半部分是一个正三角形,两个三角形共用一个定点。表示的不是总行数,而是一个三角形的行数),那么每一个三角形部分有。,那么便可以根据此公式去计算最多可以打印多少行。数量也是一个等差数列,,以及最终会剩余多少个。
2024-08-10 18:53:37
755
原创 数位dp
数位dp往往都是这样的题型,给定一个闭区间lr,求这个区间中满足某种条件的数的总数。 考虑人类计数的方式,最朴素的计数就是从小到大开始依次加一。但我们发现对于位数比较多的数,这样的过程中有许多重复的部分。例如,从7000数到7999、从8000数到89994、和从9000数到9999的过程非常相似,它们都是后三位从000变到999,不一样的地方只有千位这一位,所以我们可以把这些过程归并起来,将这些过程中产生的计数答案也都存在一个通用的数组里。
2024-08-10 15:36:42
880
原创 区间dp
dpdpdp 区间dpdpdp就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的 最优解进而得出整个大区间上最优解的dpdpdp算法。
2024-08-10 15:36:00
641
原创 树型dp
树型dp即在树上进行dp。 树是无环图,顺序可以是从叶子到根节点,也可以从根到叶子节点。 一般树型dp的特征很明显,即状态可以表示为树中的节点,每个节点的状态可以由其子节点状态转移而来(从叶子到根的顺序),或是由其父亲节点转移而来(从根到叶节点的顺序),也可是两者结合。 找出状态和状态转移方程仍然是树型dp的关键。
2024-08-10 15:35:15
593
原创 线段树
线段树,是一种 二叉搜索树。它将一段区间划分为若干 单位区间 ,每一个节点都储存着一个区间。它功能强大 ,支持区间求和,区间最大值,区间修改,单点修改等操作。线段树的思想和分治思想很相像。线段树的每一个节点都储存着一段区间LRL...R的信息,其中叶子节点LRL = RLR。它的大致思想是:将一段大区间平均地划分成222个小区间,每一个小区间都再平均分成222个更小区间……以此类推,直到每一个区间的LLL等于RRR(这样这个区间仅包含一个节点的信息,无法被划分)。
2024-08-10 15:34:19
886
原创 动态规划
2.每一件物品都有无限个,其实并不是无限个,因为背包的容量是有限的,即每一件物品的最多数量为。 2.求这一个上下区间内的最大连续子段和,也就是找上下区间固定的所有子矩阵的最大连续和;行的元素和,那么便可以通过前缀和数组获得到任意上下区间中的元素和,也就变为了一维问题;件物品,在背包容量为(放入这件物品后剩余大小)时能取到的最大价值,两个取最大值;背包的基础上增加了每一件物品的数量,并且数量是指定的;数组中的最大值,便是此序列的最长上升子序列长度;的值,但是因为内层循环是从小到大的,所以在用到。
2024-08-09 16:36:30
1083
原创 并查集
2.每当两个点连接时,都可以将其中一个点的。值,表示此两点的上一层相同——两个点为同一整体; 思路:在普通并查集的基础上还需要记录长度。 1.在普通并查集的基础上进行完善,如果。的大小需要为普通并查集的二倍,前半部分表示。值都相同,他们都在同一个整体中; 3.每次连接时,必须将。一定在一起,否则,有人说谎; 1.种类并查集,如果。过程中连接过得所有点的。在一起,两个内容都进行。 1.用一个数组。
2024-08-09 16:34:15
833
原创 图
1.无向图的邻接矩阵一定是一个对称矩阵(即从矩阵的左上角到右下角的主对角线为轴,右上角的元与左下角相对应的元全都是相等的)。思路:将图的存储结构使用边集数组的形式表示,并将边集数组按权值从小到大排序,遍历边集数组,每次选取一条边并判断是否构成环路,不会构成环路则将其加入最小生成树,最终只会包含。 2.接下来,从最短距离开始,如果此路的起点和终点在一个整体中,便不对此边进行操作,否则,选择此条边,并更改。的顶点的时候,都要将符合条件的边进行遍历,当边较多的时候,该循环会带来较大的时间复杂度。
2024-08-09 16:32:28
1368
原创 树
树(TreeTreeTree)是nnnn≧0n ≧ 0n≧0)个结点的有限集。n0n=0n0时称为空树。在任意一颗非空树中:有且仅有一个特定的称为根的结点。当n1n>1n1时,其余结点可分为mmmm0m > 0m0) 个互不相交的有限集T1T1T1T2T2T2T3T3T3……、TmTmTm,其中每个集合本身又是一棵树,并且称为根的子树。 二叉树是nnnn0n>=0n>=0。
2024-08-09 16:31:11
635
原创 快速幂
这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。 6.此时,发现指数又变成了一个奇数1,按照上面对指数为奇数的操作方法,应该抽出了一个底数的一次方,这里即为。,用一次(底数做平方操作)的操作减少了原本一半的循环量,特别是在幂特别大的时候效果非常好,例如。又能够在执行“缩指数”操作了,把指数缩小一半,底数执行平方操作。,尽量想办法把指数变小来,这里的指数为10。,底数只是做了一个小小的平方操作,而指数就从。 5.把指数缩小一半,底数执行平方操作,
2024-08-09 16:22:17
537
原创 数据结构基础
但是,数组最大的缺点就是我们的插入和删除时需要移动大量的元素,所以呢,大量的消耗时间,以及冗余度难以接收。 队列这种数据结构非常容易理解,就像我们平时去超市买东西,在收银台结账的时候需要排队,先去排队的就先结账出去,排在后面的就后结账,有其他人再要过来结账,必须排在队尾不能在队中间插队。 1.如果一个数先移动到最左边,再移动到最右边,那么最后输出的时候这个数一定是在最右边,也就是一个数最终出现在哪里,以他最后一次出现为准; 5.输出时,先输出队列中的元素,然后将。从原位置删除,为了便于获取。
2024-08-09 16:20:58
919
原创 排序算法
3.然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。 2.将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中各元素都大于或等于分界值。 思路:先把数组从中间分成前后两部分,然后分别对前后两部分进行排序,再将排好序的两部分数据合并在一起。 思路:将排序的区间分成若干个有跨度的子区间,对每一个子区间,进行插入排序,跨度不断。
2024-08-09 16:17:29
261
原创 字符串基础
当然只要不影响原字符串本身的符号(即不在原来的字符串中出现)都是可以的。算法是一种纯暴力的字符串匹配算法,比较符合人类自然思维方式的方法,即对源字符串和目标字符串逐个字符地进行比较。算法过程,不断的比对,直到在主串中找到目标串或者,遍历完目标串。表示第二行的字符串向右移动的格数,如果移动后,第二行的字符串与第一行字符串对应位置的字符全部相同,则。 **字符串前缀:**符号串左部的任意子串(或者说是字符串的任意首部),在。 **字符串后缀:**符号串右部的任意子串(或者说是字符串的任意尾部),在。
2024-08-09 16:11:45
983
原创 约数
思路:将这个区间中的每一个数都根据唯一分解定理进行拆分,统计有多少个数的拆分结果为。是多少,这个方法结果正确,但是时间复杂度会比较高,所以借助二分,去找到结尾有。 1.根据唯一分解定理可知:每一个数都可以写为。,二分结果后,还需要判断它是否确实能拆分出。 5.用二分去查找,就必须做到:已知。的存在,那么这个数分解后一定有。 2.如果一个数的结尾有。每隔两个数就会最少出现一个,个数,最少出现一个),那么,,判断这些数可以拆分出几个。为例,因为每五个数才拆分出。,将每一个数都分解后,
2024-08-09 16:09:49
646
原创 素数 判断 筛法
首先,0 和 1 不是素数,然后 i 从 2 开始判断 i 是不是 n 的因数,如果是因数,则直接返回 n 不是素数,否则,判断 i+1 是不是 n 的因数,直到 的时候,如果 i 仍然不是 n 的因数,那么 n 就是素数。欧拉筛法是将目前已经找到的每一个素数的 i 倍标记为合数,无论 i 是否是素数,同时,如果 i 本身就是素数的倍数,那么就去执行下一个 i。注:如果一个数 a 能够整除 i ,那么 i 和 a/i 一定满足:假设 i<=a/i , 那么 i<=√n && a/i>= √n。
2024-08-09 16:02:20
413
原创 二分算法
流程: 首先需要估计答案的上下界,然后不断取区间中点进行验证(这就要求答案的验证应当简单可行),并通过验证结果不断更新答案区间,最终得到答案。不难看出,朴素的枚举验证时间复杂度是。特征: 1.答案具有单调性 2.二分答案的问题往往有固定的问法,比如:令最大值最小(最小值最大),求满足条件的最大(小)值等。定义: 二分答案是指在答案具有单调性的前提下,利用二分的思想枚举答案,将求解问题转化为验证结果。
2024-08-09 15:57:09
211
原创 位运算
若 m 为 2 的 x 次方 : m 的二进制只有最高位为 1 ,其余全为 0 ,(m-1) 的二进制除最高位都为 1.奇数:二进制最后一位一定为 1 偶数:二进制最后一位一定为 0。按位异或:相同为 0,不同为 1。
2024-08-09 15:55:14
220
原创 C语言:学生成绩管理系统
使用结构体数组存储数据,每个学生包含学号、姓名、C语言成绩、web成绩、高数成绩、英语成绩、总分,实现添加(初始化可连续添加),删除,查找,排序(根据各科成绩或总分排序),修改等功能。
2023-07-10 16:52:03
1953
1
原创 JAVA,String类(字符串类)方法总结
java类String来自于包java.lang。String类代表字符串。方法返回值 方法名(参数) 功能 char charAt(intindex) 返回指定索引处的char值。 int codePointAt(intindex) 返回指定索引处的字符(Unicode 代码点)。 int codePointBefore(intindex) ...
2022-03-17 01:12:23
375
原创 基于51单片机简易计算器LCD1602显示
这个学期进行了51单片机的学习,期末设计本来想用32做,但是组队的队友不会,所以就还是用51做了,功能有些简单,但满足一些基本的使用还是可以的。protues中有KEYPAD-SMALLCALC直接就是4*4的矩阵:做完之后才发现了,当时不知道,自己画了一个4*4的矩阵键盘1.protues仿真图2.源程序 注释我写...
2022-01-24 10:18:23
11044
20
原创 C/C++,俄罗斯方块
追忆童年先上效果:拿走,不用谢。#include <stdio.h>#include <string.h>#include <stdlib.h>#include <time.h>#include <conio.h>#include <windows.h> #ifdef _MSC_VER // M$的编译器要给予特殊照顾 #if _MSC_VER <= 1200 // VC6及...
2021-11-09 20:15:07
295
1
原创 C语言:会员管理系统
会员信息包括:会员号(6位数,唯一),姓名,身份证号,联系电话,状态(1表示正常,0表示挂失)。 会员管理包括:会员的添加、删除、修改(会员号不能修改)、挂失、查询、接触挂失。 先给大家看看效果:上代码:#include <stdio.h>#include <stdlib.h>#include <string.h>struct VIP //定义结构...
2021-11-09 13:35:04
9388
23
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人