自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 机器学习之大规模数据处理

大规模机器学习数据集完整性检验对于大规模的数据,如果直接将其用于机器学习,每一次迭代的计算代价都非常大,所以我们需要事先检验训练集的完整性简单单说就是随机选取其中的部分数据,做出学习曲线,来帮助我们判断如果是如左图所示的高方差情况,那说明增加训练集数据是对拟合模型有帮助的如果如右图所示,两条曲线已经接近贴合在一起,那我们不认为增加数据集的数量对模型拟合有帮助随机梯度下降算法定义代价函数为对单一的训练例子的代价:算法解释先将训练集随机打乱,然后对训练集中的每个用例重复梯度下降的操作通常

2021-11-05 17:51:24 1601 1

原创 机器学习之推荐系统

推荐系统背景以电影评分为例通过已知用户数和给已知电影的评分,来推测用户对未知电影的评分基于内容的推荐系统还是以电影评分举例在这张表中可看出,我们将每个电影根据一定的依据将其拆分成一个X的特征向量,然后对每一个用户训练出一个thetathetatheta,类似于对每一个用户做一次多元线性回归,如果以代价函数对于单个用户而言,加上正则化项r(i,j)=1r(i,j)=1r(i,j)=1代表电影i被该用户j评过分,实际上应该还要多除以一个m(被评分过的电影数量),不过因为其是常数,不影响求

2021-10-31 12:55:33 887

原创 机器学习之异常检测

异常检测动机比如在网站用户数据中:我们可以选取用户多久登录一次,访问过的页面,在论坛发布的帖子数量,甚至是打字速度这些指标作为特征,根据已有的训练集来建立概率模型,对于给定新点的数据做密度估计,来判断这个数据是否正常。高斯分布简单示意图:对于图像理解的重要特征是:μ代表波峰的位置,σ代表波峰的宽度算法对于多维度的变量,我们的流程是选取我们认为可能满足正态分布的变量求出这些变量的μ,σ将2中求出的值代入,求出新测试点每一维变量的相对概率,最后做累乘构造系统分配数据:例如:

2021-10-30 21:47:07 612

原创 机器学习之降维(主成分分析)

降维动机1.数据压缩即减少数据的特征数。主要是对高度冗余的数据处理。既可以减少占用的空间,又可以加快学习算法的学习进度。常见:2D到1D,用斜率表示3D到2D,投影到同一个平面上2.可视化将多维特征降至3维及以下,有利于可视化数据不过需要自己去寻找降维所产生的新特征的含义主成分分析法分析问题所做的是找到一个低维平面进行投影,并且最小化投影误差(即原来的点和投影点之间的距离之和)和线性回归的对比线性回归如左,J是垂直距离和的最小值,而主成分分析是找投影,所以是这些点投影到直线上的

2021-10-22 21:25:53 473

原创 机器学习之聚类

聚类属于无监督学习,将一组没有标签的自变量分类K-means最普及的聚类算法是一个迭代算法算法流程假设将数据分为k组:**初始化:**随机选择k个点作为聚类中心**打标记:**将所有数据点按照到每个聚类中心的距离远近,打上距离最近的那个聚类中心的标记**移动聚类中心:**以标记为1为例:将所有标记1的点计算出一个均值,将聚类中心移动到那个均值点上(如果有一个聚类中心没有点,则删除那个聚类中心,再随机选取一个)重复步骤2,3,直至中心点不再变化优化目标又称失真代价函数回顾算法,

2021-10-22 17:59:46 125

原创 机器学习之支持向量机(SVM)

支持向量机(SVM)假设函数:形式与神经网络的两点区别:1.代价函数可以从这个对比上看出原来的神经网络是对数形式的sigmoid函数我们将其替换为cost1和cost0,分别意味着预测结果距离1的代价和距离0的代价。新代价函数图形,当距离足够远时直接令Z=0;2.C的引入正则化项前不再拥有参数λλλ,反而是预测项拥有了系数C,我们这里可以把C理解为1/λ1/λ1/λ。大间距分类器如图的一组正负样本,SVM所做的正式那条黑色的直线,尽力以最大的间距将两组数据分割开来(可以理解为到蓝

2021-10-20 23:35:10 619

原创 机器学习之诊断法

机器学习之诊断法是否过拟合我们将数据分成训练集和测试集,通常用70%的数据作为训练集,用剩下30%的数据作为测试集。很重要的一点是训练集和测试集均要含有各种类型的数据,通常我们要将数据集随机打乱,然后再分成训练集和测试集。误差计算error对于线性回归模型,我们直接计算代价函数JJJ对于逻辑回归模型,error的定义为:最后都是对计算出的error误差求平均值然后我们能大概知道这组结果的拟合水平模型选择交叉验证集出现在多个模型的情况下进行选择具体方法为使用60%的数据作为

2021-10-02 17:16:57 483

原创 机器学习之神经网络

神经网络背景普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们需要神经网络。模拟神经元和大脑,通过找出一些近似的或实际的大脑学习算法,然后实现它大脑通过自学掌握如何处理这些不同类型的数据。在很大的程度上,可以猜想如果我们把几乎任何一种传感器接入到大脑的几乎任何一个部位的话,大脑就会学会处理它。模型表示概述神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。下图为一个3层的神经网络,第一层成为输入层(Input Layer),最后一层称为输出层(O

2021-09-23 11:47:59 357

原创 机器学习之正则化

正则化应用背景——过拟合当我们过于执着于拟合训练集的数据时,有可能造成过拟合的情况,如下图三所示这样的预测函数,对于新加入的数据预测效果会非常差就以多项式理解,x的次数越高,拟合的越好,但相应的预测的能力就可能变差。应对方法:减少特征数量。手工选择保留哪些特征使用一些模型选择的算法来帮忙(例如PCA)正则化。保留所有的特征,但是减少参数的大小(magnitude)代价函数为了减少过拟合情况的发生,我们可以在代价函数JJJ中加入高次方程的系数惩罚项,使得高次系数尽量趋近于

2021-09-16 20:33:36 97

原创 机器学习之logistic回归分析

logistic回归分析本质上是一个分类算法,适用于标签y取值离散的情况,如0,1逻辑函数(logistic function)也称Sigmoid Function图像:新构建了一个图形为S型的逻辑函数,确保其中心值是0.5当x为一个(n+1)×1(n+1)×1(n+1)×1维向量是可以使得到的z值是一个数代入逻辑函数所得到的值表示在给定X条件下,y为正向类的概率决策边界(decision boundary)对于上述公式可以得到,若我们将0.5作为估值的分界线那么当Z的值大于0是,y

2021-09-15 21:30:10 372

原创 机器学习之基础知识

定义如果计算机程序在 T 中的任务上的性能(以 P 衡量)随着经验 E 提高,则称该计算机程序从经验 E 中学习某些类别的任务 T 和性能度量 P。例子:下棋。E = 玩多场跳棋的经验T = 下棋的任务P = 程序赢得下一场比赛的概率简单分类Supervised learning(监督学习)定义在监督学习中,对于给定一个数据集,并且已经知道我们的正确输出应该是什么样子,并且知道输入和输出之间存在关系。通过学习,我们可以对不知道正确输出的输入做处理。we are given a da

2021-09-12 20:25:50 143

原创 机器学习之线性回归模型

线性回归模型我们可以使用成本函数(cost function)来衡量预测函数(hypothesis function)的准确性。找寻一个成本函数最小的线性回归方程平方误差函数:Squared error function梯度下降算法:Gradient Descent公式for(j:0->1)α为学习速度,可理解为下降过程中的步长随着逐步逼近最低点,偏导会变小,进而导致步长变小,避免了一部分因步长过大而越过极值点的情况而因为成本函数均为凸函数(?),所以只存在一个全局最优解(没有局

2021-09-12 20:24:34 127

原创 c++学习笔记

文章目录c++学习笔记关于语法:字符串相关string部分函数for_each:(用auto)printf 格式控制cout浮点数格式控制switch 语法文件输入输出判断类型指针与引用引用调用改变参数的值传递大参数全部使用引用const指针左值引用与右值引用面向对象结构和类辨析类的一些注意事项友联函数(c++特有不推荐)重载运算符类内部写法输入输出输出运算符重载重载++构造函数中使用new和delete的注意事项拷贝构造函数深拷贝与浅拷贝类继承虚基类常量关于STL结构体lower_bound(内部重载运算

2021-07-23 09:40:58 452

原创 codeforces round705 解题报告

codeforces round705 解题报告A贪心,一眼题#include<bits/stdc++.h>#define MAXN 2100using namespace std;int n, k, T,num,a[MAXN];int main(){ cin >> T; while(T--) { cin >> n >> k; num = max(0, n - k); if

2021-03-11 17:12:48 117

原创 c++ STL汇总简易版(updating)

c++ STL汇总简易版(updating)目录c++ STL汇总简易版(updating)前言vector插入访问删除排序,reverse等map前言因为笔者从来没用系统学习过stl里的东西,导致很多时候的代码非常冗长,在这个篇章里面,笔者会系统地总结一些常用的stl函数和结构,以便以后复习。会不定期更新。vector可简单理解为动态开大小的数组插入for(int i=1;i<=5;i++) q.push_back(i*10);////在vector最后插入元素q.insert

2021-03-10 09:51:12 136

原创 codeforces educational round 105 题解

codeforces educational round 105 题解A一串只带有A,B,C的字符串,用“(”或“)”替换其中的字母,问能否构成正则表达式验证正则表达式的思路很常规,见左括号加1,右括号减1,中间不能出现负号,且最后的结果为0。枚举A,B,C分别为“(”或“)”的情况,共8种。#include<bits/stdc++.h>#define MAXN 200000using namespace std;int T,val[5][10];string s;int

2021-03-06 19:51:04 116

原创 python 爬虫学习笔记之知识储备(简易版)

python 爬虫学习笔记之知识储备序因为上学期笔者在学校里学习了python语言,加之过年期间的一系列机缘巧合,笔者将爬虫作为这学期的课外学习目标,计划一学期内将爬虫学完,可能更新不会很快,因为平时还会打打cf和atcoder的比赛。主要的学习资料是B站路飞学城IT定义通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。简单分类通用爬虫抓取系统重要组成部分。抓取的是一整张页面的内容/聚焦爬虫建立在通用爬虫的基础上。抓取的是页面上特定的局部内容。增量式爬虫

2021-02-28 16:04:16 246 1

原创 codeforces round704(div 2)题解

codeforces round704(div 2)题解A签到#include<bits/stdc++.h>#define MAXN 200000#define int long longusing namespace std;inline int re(){ char f=getchar(); int x=0,k=1; while(f>'9'||f<'0') { if(f=='-') k=-1; f=g

2021-02-23 21:54:44 336 1

原创 ac自动机模板及感悟

ac自动机模板感悟今天第一次打出来了ac自动机这个模板。其一直被称为树上的kmp,但我觉得这句话很容易误导人,还是有些许不同。首先给一篇csdn上的讲解ac自动机构造fail数组他的核心是构造fail数组(即kmp中的nxt),用bfs的方法,先让第一层的所有结点fail只想root,同时将其入队列。入队列后的操作较为麻烦,文字描述比较苍白,我上图和代码。void getfail(){ queue<int> q; for(int i=0;i<26;i++) if(ch

2021-02-23 10:48:24 78

原创 线段树扫描线模板及感悟

线段树扫描线模板及感悟扫描线问题算是一个线段树问题的简单变种。模型是在一个平面内给n个有重叠部分的矩形,求其覆盖的面积。思路是将矩形的上下边界看作扫描线,同时离散化x坐标用线段树维护,维护的是离散后的每个区间不是离散后的点,是(n-1)个!!!!!维护两个值,一个是cnt即覆盖在其上方的矩阵数量(可通过扫描线是矩形的上边界还是下边界,从而+1/-1来判断),另一个是sum即每个区间内被覆盖的长度。而每次增加的面积就是sum[1]乘以两条扫描线之间的高度差。需要注意的是,因为我们每次只需要的是sum[1

2021-02-23 10:42:50 123

原创 c++ 实现贪吃蛇(含技术难点解析和完整代码)

0.参考资料借鉴了两位大佬的博客及代码,特此鸣谢。https://blog.csdn.net/qq_40953281/article/details/79315254https://blog.csdn.net/qq_45359344/article/details/103254166

2021-02-22 12:13:30 14680 3

原创 markdown语法简介(typora)

markdown语法简介(typora)前言​ 因为在CSDN上没有找到比较心仪的md语法简介,所以决定自己写一篇。主要的参考是b站上一个up主的视频,基本照抄,最后打完才发现,鼠标右键啥都有…就当是巩固一遍语法知识吧。1.代码块// 代码块语法​~~~ + 语言如 ~~~python ~~~c++ 2.标题# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题一级标题二级标题三级标题四级标题五级标题六级标题

2021-02-19 17:39:02 70

原创 c++ 实现矩阵运算器

c++实现矩阵运算器背景因为笔者上学期深受线性代数的数值运算之苦,又兼之假期深感岁月蹉跎,便有了这样一个小程序的诞生,希望能够帮助到有需要的人。简介该程序能够实现矩阵的加,减,乘,求矩阵的行列式以及逆矩阵。可以说基本覆盖了线性代数里矩阵的基本运算。至于矩阵方程之类的,如果是方阵,那可以用本程序求得的逆矩阵等求解,如果不是方阵,那还涉及到一些通解的问题,答案并不唯一。注意笔者在本程序中并没有使用指针,因为俺确实不会,是在结构体里带着二维数组跑的。关于求行列式。笔者本来是想写一个深搜的找出所有全

2021-02-16 19:43:49 2061 2

原创 atcoder dp专题(updating)

atcoder dp专题E是一个背包问题的变式,因为其背包容量达到了1e9,所以常规的一维数组无法存下,而每个物品的价值很小,所以我们将一维数组的下标定义为物品的价值。从寻找一定空间的最大价值,变式为一定价值所需的最小空间。for(int i=1;i<=n;i++) for(int j=MAXN-1;j>=c[i];j--) { dp[j]=min(dp[j],dp[j-c[i]]+w[i]); if(dp[j]<=m)

2021-02-02 10:34:20 803

原创 codeforces round696(div 2)题解(A-D)

codeforces round696(div 2)题解(A-D)这是笔者的第一次cf经历,发现自己真的是个菜逼,未来之路任重且道远。考试的时候写了A,B两个题,之后补了C,D。A对于两个0/1串,给定其串的长度和一个串a,求一个串b使,sum(a+b)=c最大,对于sum求得的新串c,规定c可以出现2,且c中的相同数字会被取代为一个。很裸的一个贪心,对于b串的每一位从高位依次向下枚举,首选为1,若1能保证c中不相同,则令其为1,反之则为0。#include<bits/stdc++.

2021-01-22 17:50:12 175 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除