- 博客(65)
- 资源 (2)
- 收藏
- 关注

原创 理解人工神经网络,感知机模型、多层前馈神经网络、BP算法(反向传播算法)、输出层和隐含层梯度下降更新权值推导过程。(西瓜书笔记)
理解人工神经网络,感知机模型、多层前馈神经网络、BP算法(反向传播算法)、输出层和隐含层梯度下降更新权值推导过程。(西瓜书笔记)(一)神经元模型 神经网络(neural networks): 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。 我们在机器学习中谈论神经网络时指的是“神经网络学习”,或者说,是机器学习与神经网络这两个学科领域的交叉部分。1.M-P神经元模型 M-P神经元模型: 神经元接收到来自
2021-08-16 23:46:26
3075

原创 线性模型——最小二乘法,梯度下降,线性回归,logistic回归
线性模型——最小二乘法,梯度下,线性回归,logistic回归(一)基本形式 线性模型: 给定d个属性描述的示例X = (x1;x2;……;xd)(X为列向量),xi是第i个属性上的取值。 线性模型(linear model)试图学得一个通过属性的线性组合进行预测的函数。f(X)=w1x1+w2x2+…+wdxd+bf(X) = w_1x_1 + w_2x_2+…+w_dx_d+bf(X)=w1x1+w2x2+…+wdxd+b向量形式:f(X)=WTX+bf(X)=W^
2021-08-13 23:53:06
3269
5

原创 深入理解ROC曲线的定义以及绘制ROC曲线过程,其与模型性能的关系,以及AUC
深入理解ROC曲线的定义以及绘制ROC曲线过程,其与模型性能的关系,以及AUC很多学习器是为测试样本产生一个实值或者是概率预测,然后将这个预测值和一个分类阈值(threshold)进行比较。若大于阈值,则为正类;反之为负类。根据这个学习器计算出来得预测值,我们可以将测试样本进行排序,“最可能”是正例的放在最前面,“最不可能”是正例的排在最后面,这样分类过程就相当于在这个排序中的某个”截断点”(cut point)将样本呢分为两类,前一部分为正例,后一部分为反例。前面有precision和recall,可
2021-08-11 18:21:45
40393

原创 深入理解Precision(查准率)、Recall(查全率/召回率)、F1-Score、P-R曲线和micro和macro方法,以及多分类问题P-R曲线
深入理解Precision(查准率)、Recall(查全率/召回率)、F1-Score、P-R曲线和micro和macro方法,以及多分类问题P-R曲线1.回归问题 回归问题最常用的性能度量是“均方误差”(mean squared error)。 给定D = {(x1, y1), (x2, y2),……,(xm, ym)},其中yi是示例xi的真实标记;要评估学习器f的性能,要把学习器预测结果和f(x)与真实标记y比较:E(f;D)=1m∑n=1m(f(xi)−yi)2E(f;D)
2021-08-11 18:16:31
4377
2

原创 深度理解hold-out Method(留出法)和K-fold Cross-Validation(k折交叉验证法)
模型评估(Model Evaluation)1.测试集(testing set) 测试集(testing set): 通常,我们可通过实验测验来对学习器的泛化误差进行评估并进而做出选择,为此,需要一个“测试集”来测试学习器对新样本的判别能力。然后以测试集上的“测试误差”(testing error)作为泛化误差的近似。 通常我们假设测试样本也是从样本真实分布中独立同分布采样而得到。但需要注意的是,测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现,未在训练过程中使用过。
2021-08-06 00:09:51
18785
原创 决策树、理解信息熵、信息增益(ID3)、增益率(C4.5)、基尼指数(CART)、预剪枝、后剪枝、多变量决策树
决策树、理解信息熵、信息增益(ID3)、增益率(C4.5)、基尼指数(CART)、预剪枝、后剪枝、多变量决策树(一)基本流程 决策树(decision tree): 一般的,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集.从根结点到每个叶结点的路径对应了一个判定测试序列.决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循
2021-08-15 10:48:08
3569
1
原创 读西瓜书笔记(二)模型评估与选择
读西瓜书笔记(二)模型评估与选择(一)误差与过拟合1.经验误差(empirical error)/训练误差(training error)与泛化误差(generalization error) 错误率(error rate): 通常我们把分类错误的样本数占样本总数的比例称为“错误率"。 精度(accuracy): 精度 = 1 - 错误率。即如果我们在m个样本中有a个样本分类错误,则错误率为E = a / m;相应的,1 - a / m 称为精度。 误差(error): 我们
2021-08-07 21:45:13
1337
原创 机器学习中理解过拟合,训练集、验证集、测试集,模型评估、模型选择,Hold-out Method(留出法)K-fold Cross-Validation(k折交叉验证法)
读西瓜书笔记(二)模型评估与选择(一)误差与过拟合1.经验误差(empirical error)/训练误差(training error)与泛化误差(generalization error) 错误率(error rate): 通常我们把分类错误的样本数占样本总数的比例称为“错误率"。 精度(accuracy): 精度 = 1 - 错误率。即如果我们在m个样本中有a个样本分类错误,则错误率为E = a / m;相应的,1 - a / m 称为精度。 误差(error): 我们
2021-08-05 23:54:22
6535
原创 读西瓜书笔记(一)绪论
读西瓜书笔记(一)绪论(一)什么是机器学习机器学习致力于研究如何通过计算的手段,利用经验来改善自身的性能。机器学习所研究的主要内容,是关于在计算机上从数据中产生“模型”的算法,即“学习算法”,有了学习算法,我们把经验数据提供给学习算法,它就能基于这些数据产生模型,在面对新的情况时,模型就会给出相应的判断。有文献用“模型”指全局性结果(如一颗决策树),而用“模式”指局部性结果通俗的理解机器学习(买西瓜)要通俗理解机器学习,可以用根据书上给的一个很好的例子,首先经验是我们人经常用的东西,但是机器没有
2021-08-04 14:31:48
321
原创 有关python中字符串处理中的join函数的使用
有关python中字符串处理中的join函数的使用在coderwar上看到的一道题,用到了join,这道题是join用法的一个很好的例子。题目链接: join用法题目描述: The parameter of accum is a string which includes only letters from a…z and A…Z.(可以看样例得出题意)样例:accum("abcd") -> "A-Bb-Ccc-Dddd"accum("RqaEzty") -> "R-Qq-Aaa-E
2021-06-01 18:15:34
341
原创 解决有关在cmd输入Python回车打开微软商店问题
解决有关在cmd输入Python回车打开微软商店问题1.右键单击我的电脑,点击属性,在关注中点开高级系统设置2.点击环境变量3.点击path,再点击编辑4.如果第一条是%USERPROFILE%\AppData\Local\Microsoft\WindowsApps那么先复制 ,然后删除,就可以了。...
2021-03-20 23:06:16
1918
1
原创 L2-001 紧急救援(Dijkstra算法 + 记录路径 + 附加其他最优 + 最多种路线)
L2-001 紧急救援(Dijkstra算法 + 记录路径 + 附加其他最优 + 最多种路线)题目链接: L2-001 紧急救援题目描述: 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。样例格式:输入格式:输入第一行给出4个正整数N、M、S、D,其中N(2≤
2021-03-09 00:11:37
3686
原创 L2-004 这是二叉搜索树吗?(二叉搜索树与前序遍历的微妙性质)
L2-004 这是二叉搜索树吗?(二叉搜索树与前序遍历的微妙性质)(c++)题目链接: 这是二叉搜索树吗?题目描述: 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点:其左子树中所有结点的键值小于该结点的键值;其右子树中所有结点的键值大于等于该结点的键值;其左右子树都是二叉搜索树。所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。输入样例:输入样例1:78
2021-03-08 19:07:15
288
原创 树的遍历(根据后序和中序遍历重构树)(c++)
树的遍历(根据后序和中序遍历重构树)(c++)题目链接: 树的遍历题目描述: 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。代码如下:#include<bits/stdc++.h>using namespace std;#define sf scanf#define pf printf#define ll long long#define endl '\n'#define pb push_back#define sz s
2021-03-08 12:03:48
199
原创 POJ 2182 Lost Cows (简单题,线段树)
POJ 2182 Lost Cows (线段树(查询))题目链接: POJ 2182 Lost Cows题目描述: 有编号1~n的n个数字,2 <= n <= 8000, 乱序排列,顺序是未知的。对于每个位置的数字,知道排在前面比它小的数字有多少个,求这个乱序数列的顺序。题解思路: 首先用暴力的方法来求解这道题我们知道pre【】:0 1 2 1 0 和 ans【】:基本的思路就是从后向前来看这个pre数组,从后向前看,每次只要找到现存有的数字的第pre【i】+ 1的数字就是答案。 暴
2021-03-04 12:48:28
595
1
原创 hdu 1026 Ignatius and the Princess I(BFS + 优先级队列 + 路径输出)
hdu 1026 Ignatius and the Princess I(BFS + 优先级队列 + 路径输出)题目链接: hdu 1026 Ignatius and the Princess I题目描述: 从左上角走到右下角,“.”表示可以走,“X”表示不能走,“1-9”表示走到这里需要额外的时间,走一步1s,问最后的时间和路径。题解思路: 因为问的是最优解,所以考虑用BFS来写,然后由于有数组格子会有额外的时间,所以就需要用到优先级队列,路径输出只要用一个path数组记录每一的走过的点从上一个点走
2021-01-23 23:35:55
139
原创 hdu 1023 Train Problem II(大整数乘法,大整数除法,栈混洗,卡特兰数)
hdu 1023 Train Problem II(大整数乘法,大整数除法,栈混洗,卡特兰数)题目链接: hdu 1023 Train Problem II题目链接: 对于1-n个数,问有多少种入栈然后出栈的序列。题解思路:额,当时上网课的时候记得这是栈混洗的知识点,但是记得老师讲过答案是卡特兰数,至于怎么算的我不知道。Catalan数: 维基百科因为数据可能很大,而且用递推式更方便所以,用大整数乘法和除法代码如下:#include<bits/stdc++.h>usin
2021-01-23 21:46:27
161
原创 hdu 1042 N!(大整数阶乘, 大整数乘法)
hdu 1042 N!(大整数阶乘, 大整数乘法)题目链接: hdu 1042 N!题目描述: 给定n的值,n的值可能很大,输出n的阶乘。题解思路: 直接算是不能算出来的,必须用大整数乘法来计算,所以要模拟乘法计算的步骤,就像计算机组成原理中的加法器计算加法一样的原理,只要计算出每一次的本位和进位就可以算出最后的答案。总体是分n次乘法,2-n分别和这些中间答案相乘,运用大整数乘法,算到最终答案。ans数组用来存储答案。每一个元素就是本位。aa是进位len是数据的长度代码如下:#includ
2021-01-23 16:31:43
224
原创 hdu 1022 Train Problem I(栈)
hdu 1022 Train Problem I(栈)题目链接: hdu 1022 Train Problem I题目大意: 看图片应该就知道什么意思了样例输入:3 123 3213 123 312样例输出:Yes.inininoutoutoutFINISHNo.FINISH题解思路: 思路就是用栈来模拟这个in和out的过程,判断Yes或者No是根据栈顶元素和栈顶元素下面的元素的序号大小来判断的。代码如下:#include<bits/stdc++.h>
2021-01-22 20:20:55
147
原创 hdu 1018 Big Number(斯特灵公式,大数阶乘求位数)
hdu 1018 Big Number(斯特灵公式,大数阶乘求位数)题目链接: hdu 1018 Big Number题目描述: 给定一个可能很大的数,然后求出这个数的阶乘的位数。题解思路:方法1:可以用log10(n!) + 1;来计算这个答案,然后根据log的公式可以等价与累加形式的公式。方法2:斯特灵公式 斯特灵公式 维基百科根据给斯特灵公式然后带入方法一的公式就可以求出答案了。这里要注意的是斯特灵公式中的pi和e的这两个常量要够精确,这样才能得到正确答案。pi = 3.141592
2021-01-22 17:34:37
184
原创 hdu 1015 Safecracker(dfs暴力求解)
hdu 1015 Safecracker(dfs暴力求解)题目链接: hdu 1015 Safecracker题目大意: v - w^2 + x^3 - y^4 + z^5 = target给出一些没有重复的大写字母,每个字母对应1~26,然后选出5个字母填入公式中的变量使得最后的答案等于给出的那个数,如果有种字母序列符合条件,则输出字典序最大的那个。题解思路: 由于数据规模不是很大,所以可以直接用5个for循环暴力求解,但是代码量很大,所以可以考虑用dfs来求解问题。代码如下:#include&
2021-01-21 21:55:50
271
原创 hdu 1010 Tempter of the Bone(dfs + 奇偶剪枝)
题目链接: hdu 1010 Tempter of the Bone题目大意: 给一个迷宫,小狗要从大门出去,但是大门只有在T时刻才会开门所以小狗只有在T时刻到达门口才算成功,而且每秒钟小狗可以上下左右走一个方块,但是方块在下一秒就会消失,图中S代表小狗的起始位置,D代表大门,X是障碍物。问小狗能否成功逃出迷宫。题解思路: 直接用DFS就可以了,但是发现如果不进行任何剪枝的话,就会超时,所以这里可以用奇偶剪枝,通过D和S的位置可以算出小狗出去的最短路径,根据这个最短路径和给定的时间T的奇偶性可以直接判断
2021-01-21 16:48:43
236
原创 hdu 1007 Quoit Design(分治法)
题目链接: hdu 1007 Quoit Design题目描述: 在坐标中给出几个点,求出距离最短的两个点的距离的一半。题解思路: 用分而治之的方法1、把每个点的横坐标按从大到小的排列顺序排序,然后根据左右L,R边界,分成两个小规模的问题,求出左半部分的最小值和右半部分的最小值 ,然后取两者之中的最小d。2、因为完成第一步后还存在着跨区间的两个点的距离可能更小,所有要先针对纵坐标进行排序,然后看是否有跨区跨区间的点是否更小,这里要有一个剪枝,就是找到离分治的中间的的点的距离小于第一步求的d的点才有资
2021-01-21 14:52:01
317
1
原创 全排列(STL与递归)
全排列在1s的时间限制下,求全排列的数据元素要少于11个;STL:next_permutation()#include<iostream>#include<algorithm>using namespace std;int main(){ int data[4] = {3, 2, 1, 4}; sort(data, data + 4); do{ for(int i = 0; i < 4; i++){
2021-01-20 23:04:32
146
原创 hdu 1005 Number Sequence(两种方法,鸽巢原理寻找循环节, 矩阵快速幂)
hdu 1005 Number Sequence(两种方法,鸽巢原理寻找循环节, 矩阵快速幂)题目链接: hdu 1005 Number Sequence题目描述: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.给出A ,B,N求出f(n);题解思路:方法1:鸽巢原理(狄利克雷抽屉原理): 维基百科:鸽巢原理因为 f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.所以f(n)的取
2021-01-20 22:09:23
376
原创 hdu 1004 Let the Balloon Rise (STL Map)有关STLMap的插入删除遍历清空等一系列用法
hdu 1004 Let the Balloon Rise (STL Map)有关STLMap的插入删除遍历清空等一系列用法题目链接: hdu 1004 Let the Balloon Rise (STL Map)题目描述: 每次给出若干个颜色的气球,求出颜色出现最多的气球颜色,题目保证有唯一的答案。解题思路: 找到这题的对应关系,每个气球的颜色映射到气球的个数,所以我们很容易想到用STL中的MAP来解决这个问题,如果对STL中的MAP很熟悉的话,那么这道题就非常简单。代码如下:#include&
2021-01-20 16:18:20
131
原创 POJ 2356 Find a multiple(鸽巢原理)(数学思维)
POJ 2356 Find a multiple(鸽巢原理)(数学思维)题目链接: POJ 2356 Find a multiple题目描述: 给出一个数n,接着再给出n个数,要你从这n个数中任意选择m个数,使得其和是n的倍数,如果找不到这样的答案则输出0,答案可能有多个,任意输出一解就行。输入:第一行为一个正整数n,之后为n个数输出:在输出的第一行输出m,之后m行输出这m个数(升序),如果无解则输出0样例:输入:512341输出:223题解思路: 对于n个数(a[i])
2020-12-28 22:13:26
256
原创 P2043 质因子分解(数论,质数因子,筛法求素数)
P2043 质因子分解(数论,质数因子,筛法求素数)题目链接: P2043 质因子分解题目描述: 输入数据仅有一行包含一个正整数N,N<=10000。输出数据包含若干行,每行两个正整数p,a,中间用一个空格隔开。表示N!包含a个质因子p,要求按p的值从小到大输出。代码如下:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>using namespace
2020-12-28 13:23:41
230
原创 hdu 1856 More is better(并查集)(卡空间,卡时间)(c++)
hdu 1856 More is better题目链接: hdu 1856 More is better题目大意: 输出最大数量的集合的数量上代码:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;typedef long long ll;#define N 10000005int m;int x, y;int
2020-12-17 23:46:40
234
原创 hdu 3826 Squarefree number(数论,素数)(c++)
hdu 3826 Squarefree number(数论,素数)(c++)题目链接: Squarefree number题目大意: 在数学中,无平方数是一个可以被除以1以外的任何平方都不被整除的数。例如,10是无平方的,而18没有,因为它可以被9 = 3 ^ 2整除。现在,您需要确定一个整数是否为无平方的。代码如下:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>
2020-12-17 22:35:12
438
原创 hdu 2504 又见GCD(gcd) ( c++)
hdu 2504 又见GCD(gcd) ( c++)题目链接: hdu 2504 又见GCD题目大意: 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。代码:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>usi
2020-12-15 21:51:34
268
原创 hdu1019 Least Common Multiple(lcm)(数论)
hdu1019 Least Common Multiple(lcm)(数论)题目链接: hdu1019 Least Common Multiple题目大意: 求多个数的最小公倍数代码:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;typedef long lon
2020-12-15 21:39:30
136
原创 hdu 2544 最短路(bellman算法和floyd算法)(c++)
hdu 2544 最短路(bellman算法和Floyd算法)(c++)题目链接:hdu 2544 最短路题目描述: 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?Input: 输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路
2020-12-14 22:46:51
89
原创 gcd lcm(c++)
gcd lcm(c++)#include<iostream>#include<cstdio>using namespace std;int gcd(int a,int b){ return b == 0 ? a : gcd(b, a%b);}int lcm(int a, int b){ return a * b / gcd(a, b);}int main(){ int a, b; while(cin >> a >
2020-12-14 20:56:10
371
原创 快速幂(位运算)(c++)
快速幂(c++)#include<iostream>#include<cstdio>using namespace std;typedef long long ll;ll fastpow(int a,int n){ ll base = a; ll ans = 1; while(n){ if(n & 1){ ans *= base; } base = base * base
2020-12-14 20:48:58
200
原创 数据结构分治法之二路归并排序(c++)(分治法)
归并排序(c++)#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n;int x[10];void Merge(int lo, int mi, int hi){ int len1 = mi - lo; int len2 = hi - mi; int* a = new int[len1]; int* b = new int
2020-12-14 19:39:41
580
原创 数据结构之各种时间复杂度(计算机能做的并不是我们想象的那么多)
我们学习计算机总觉得计算机真的很强大,但是其实不然,认真思索起来,计算机能做的其实很少很少,对于大自然或者生活中的绝大所数问题,计算机并没有算法能够解决……
2020-11-30 20:27:31
231
原创 冒泡排序(起泡排序)
起泡排序void bubblesort(int a[], int n){ bool flag = false; //整体排序标志 while(!flag){ flag = true; //假定已经排好序 for(int i = 0; i < n; i++){ if(a[i - 1] > a[i]){ swap(a[i - 1], a[i]);
2020-11-29 20:18:12
411
原创 HDU1062 Text Reverse(栈)数据结构
HDU1062 Text Reverse(栈 c++)题目链接: Text Reverse题目大意: Ignatius likes to write words in reverse way. Given a single line of text which is written by Ignatius, you should reverse all the words and then output them.(翻转字符串)样例输入:3olleh !dlrowm'I morf .udhI
2020-11-29 19:39:23
299
课程设计综合最终材料.zip
2021-01-20
html和css制作网页,可用于期末作业考试等.zip
2020-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人