自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第二个程序——客户端ClientUI

在我的上一篇文章中,我已经介绍了如何实现“在线聊天室”中的服务器端ServerUI,服务器端作为整个聊天系统的“中继系统”,负责转发用户的信息到聊天室,可以转发给聊天室中的每一个人(即,群聊),也可以转发给聊天室中某个指定的人(即,私聊)。因此,我们的ClientUI客户端,其功能就是向服务器端发送数据,并从服务器端接受数据的。

2023-01-23 10:58:41 1264 2

原创 第一个程序——构建一个ServerUI

本次程序设计均使用python实现,使用sql server对聊天室用户的数据进行存储。通过python socket套接字编程,实现了在线聊天室的功能,并使用python tkinter进行UI界面的设计。

2023-01-19 12:43:34 1597 1

原创 寒假每日一题W2D2——求和

观察公式S,便可得,实际上S是的和,因此可以使用前缀和将算法的时间复杂度优化到O(n),空间复杂度优化到O(1)。

2023-01-03 10:08:32 230

原创 寒假每日一题W2D1——选数异或

给定一个长度为 n 的数列 A1,A2,⋅⋅⋅,An 和一个非负整数 x,给定 m 次查询,每次询问能否从某个区间 [l,r] 中选择两个数使得他们的异或等于 x。

2023-01-03 09:56:55 592

原创 区间选点 and 最大不相交区间

给定 N 个闭区间 [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。

2023-01-02 09:58:38 357

原创 寒假每日一题W1D3——上课睡觉

有 N 堆石子,每堆的石子数量分别为 a1,a2,…,aN。你可以对石子堆进行合并操作,将两个相邻的石子堆合并为一个石子堆,例如,如果 a=[1,2,3,4,5],合并第 2,3 堆石子,则石子堆集合变为 a=[1,5,4,5]。我们希望通过尽可能少的操作,使得石子堆集合中的每堆石子的数量都相同。请你输出所需的最少操作次数。本题一定有解,因为可以将所有石子堆合并为一堆。

2023-01-01 10:37:34 405

原创 寒假每日一题W1D1——孤独的照片

Farmer John 最近购入了 N 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一。奶牛目前排成一排,Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。然而,他不想拍摄这样的照片,其中只有一头牛的品种是更赛牛,或者只有一头牛的品种是荷斯坦牛——他认为这头奇特的牛会感到孤立和不自然。在为每个连续不少于三头奶牛的序列拍摄了一张照片后,他把所有「孤独的」照片,即其中只有一头更赛牛或荷斯坦奶牛的照片,都扔掉了。

2023-01-01 09:57:22 481

原创 最长上升子序列 II

给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。第一行包含整数 N。第二行包含 N 个整数,表示完整序列。输出一个整数,表示最大长度。−10≤数列中的数≤104。

2022-12-02 12:26:36 687

原创 二进制优化的多重背包及分组背包

C/C++实现的二进制优化多重背包及分组背包模板。

2022-12-02 11:21:24 654

原创 Flask Web——表单

表单可以提供文本输入框、单选按钮、复选框、按钮等元素供用户提交数据。在Flask项目中,表单除了可以表示传统的HTML标签,还可以验证数据。数据被发送到服务器后,为了防止不法分子绕过前端限制提交非法数据,需要对数据验证。为实现验证功能,需要Flask-WTF插件,使用安装。

2022-09-13 16:03:12 469

原创 Flask Web——数据库

在以上的数据库表字段定义中,将id定义为数据库类型中的整型,设置。

2022-09-13 10:46:34 491

原创 流畅的Python——符合Python风格的对象

符合Python风格的对象

2022-09-12 13:35:58 191

原创 Flask Web——Jinjia2模板的使用

差点忘了Markdown是可以开二级标题的…向html中传递参数时, 可能需要对传递的变量进行处理, 处理过后再显示, 如时间的格式化输出等, 此时可以用到过滤器. Jinjia2内置了许多过滤器, 但过滤器可以由用户进行自定义. 因为过滤器本质上是一个函数.在定义了一个函数之后, 可以使用方法将函数添加为过滤器, 其中为函数, 而dformat为过滤器名.除此之外, 还可以通过装饰器的方式定义过滤器.

2022-09-12 09:55:37 3068 1

原创 Flask Web——URL与视图

定义不带参数的URL一个网站不可能只有主界面一个页面,以csdn为例,除了初始界面外,还有写文章的页面、浏览博文的页面等,因此需要定义许多不同的URL(路径),来满足不同页面的访问需求。URL分为两种,有参数的URL和无参数的URL,下面分别说明。👆此时,访问域名/profile,即可查看新定义的界面。注意,装饰器的URL设置为/profile,函数的名字不需要必须是profile。定义带参数的URL:带参数指的是视图函数包含参数。

2022-09-11 19:14:25 228

原创 Flask Web——第一个Flask demo

有三十天的试用期,可以以学校的邮箱身份申请免费使用(edu.cn结尾的邮箱)。使用Pychram Professional可以直接创建Flask项目,包括templates和static文件夹,并且已经创建好了app.py文件。👆最重要的是Python解释器的设置。对于学习而言,重新设置一个新的虚拟环境纯属浪费时间。而如果想要将项目部署到服务器上,则建议选择使用虚拟环境,避免和其他项目产生依赖包版本冲突,也方便在开发机和服务器上同步依赖包。点击“绿色三角”运行demo程序。

2022-09-11 17:48:24 180

原创 流畅的Python——比较对对象的潜复制和深复制

在类定义中,如果passengers不为None,则通过创建一个list副本。如果不这样做,若passengers传进来的也是一个可变对象(如,一个列表),那么会将这个列表的引用赋值给self.passengers,导致对self.passengers进行修改时,原来的外部可变对象也被修改,这显然是不合理的。

2022-09-11 10:46:00 168

原创 流畅的Python——使用装饰器改进Order类设计模式

上文提到了使用一等函数来为Order类实现不同的策略,并且使用内置的globals方法,将策略统统加入到promos列表中,在选择策略时,通过遍历function类列表promos来寻找最优的优惠策略。但是这样做的问题在于,如果有新的策略被添加进来,promos不能及时感知到新的策略的存在(反复执行globals确实可行,但会提升运行成本)。此时,装饰器便派上了大用场。现在,不需要通过globals和函数名来寻找策略函数,策略函数可以是任何名字,并且它们在被定义之后就会加入到promos中。

2022-09-11 09:29:46 171

原创 秋招每日一题T32——安排电影院座位

如上图所示,电影院的观影厅中有 n 行座位,行编号从 1 到 n ,且每一行内总共有 10 个座位,列编号从 1 到 10。给你数组 reservedSeats ,包含所有已经被预约了的座位。比如说,researvedSeats[i]=[3,8] ,它表示第 3 行第 8 个座位被预约了。请你返回 最多能安排多少个 4 人家庭。4 人家庭要占据 同一行内连续 的 4 个座位。

2022-09-11 08:52:57 402

原创 秋招每日一题T31——二叉搜索子树的最大键值和

给你一棵以 root 为根的 二叉树 ,请你返回 任意 二叉搜索子树的最大键值和。

2022-09-11 08:15:26 116

原创 秋招每日一题T30——每个元音包含偶数次的最长子字符串

给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,‘e’,‘i’,‘o’,‘u’ ,在子字符串中都恰好出现了偶数次。

2022-09-10 10:47:40 220

原创 流畅的Python——使用一等函数实现设计模式

👆显然这是一个“策略”模式,根据不同的情况选择不同的策略即可。作者在书中给出了两种实现,一种是基于ABC(抽象基类派生)的实现,一种是基于一等函数作为参数的实现,本文仅介绍后者。客户在商场中购物,根据客户当前的积分、选购商品的种类及数量,可以拿到的优惠不同,现在需要根据这些信息来判断用户能拿到的最大优惠是多少。④👇使用内置的global函数将全局的策略存放在promos中,选择best_promos。②👇定义优惠策略模式类。

2022-09-09 10:13:36 88

原创 流畅的Python——一等函数与用户定义的可调用类型

在类定义中实现双下方法__call__(),即可以函数调用的方式调用类对象。

2022-09-09 09:15:21 72

原创 流畅的python——用户自定义的字典类型与不可变映射类型

我们希望定义一个字典类型,它只能接收字符串类型作为键来查找值,但是我们同时希望它可以输入数字来作为键,此时可以重新自定义一个字典类,继承自collections中的UserDict。👇继承自UserDict的好处是,UserDict并不是dict的子类,但是UserDict中有一个叫做data的属性(has-a),是dict实例。因此,有很多需要重写的操作,我们可以委托self.data来代办。

2022-09-06 09:43:50 300

原创 流畅的Python——使用列表推导和字典推导建立列表和字典

👇一个列表是colors,一个列表是sizes,求二者的笛卡尔积,结果存在tshirts中。

2022-09-06 09:26:43 217

原创 流畅的Python——序幕

①👇首先构建一个卡牌堆类,使用collections模块中的namedtuple可以直接构建一个简单的卡牌类,但FrenchDeck给出的类定义中重写了该类的魔术方法,通过实现了__len__使FrenchDeck类对象可以直接通过len()方法查看纸牌堆中纸牌的数量。通过实现使FrenchDeck类对象可以通过索引和切片对列表进行操作。②👇尝试不同的方法。Ⅰ首先用Card构建纸牌。输出为52,因为不同花色的卡牌共有52张。Ⅲ尝试用不同的方法取牌。

2022-09-05 10:16:22 198

原创 秋招每日一题T29——最低票价

在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有:一张的通行证售价为 costs[0] 美元;一张的通行证售价为 costs[1] 美元;一张的通行证售价为 costs[2] 美元。通行证允许数天无限制的旅行。

2022-09-05 08:52:23 95

原创 秋招每日一题T28——最大连续子序列

给定 K 个整数的序列 {N0,N1,…,NK−1},其任意连续子序列可表示为 {Ni,Ni+1,…,Nj},其中 0≤i≤j

2022-09-05 08:19:26 102

原创 秋招每日一题T27——日期

今天是 2012 年 4 月 12 日星期四,编写程序,输入今天开始到 12 月 31 日之间的任意日期,输出那一天是星期几。共两行,第一行包含一个整数 m,表示询问日期的月份。第二行包含一个整数 d,表示询问日期的为该月的第几天。输出询问日期是星期几。注意,要用英文表示。4≤m≤12,1≤d≤31,保证日期合法。

2022-09-05 08:05:17 118

原创 使用管道与“非网格空间搜索”选取最优的模型

使用非网格空间中搜索,即,将参数字典替换为参数字典序列,可以实现在管道上寻找最优模型的最优状态。当然,最优的模型和可能的最优状态都是开发者自己指定的。

2022-09-04 10:23:55 225

原创 通过管道与网格搜索实现机器学习算法的自动化

使用sklearn的pipeline方法,可以将从数据预处理、特征提取到模型部署等组件拼装在一起,形成一条算法链。要求是这些组件都具有transfomr方法,从而实现数据的转换。此外,值得关注的是,使用网格搜索可以直接在算法链上搜索我们需要的参数,比如我们想要启用多项式特征,而不知道1、2、3哪个参数更好,同时我们想要使用岭回归进行回归任务,需要设定参数alpha(岭回归Ridge使用L2正则化,而lasso使用L1正则化,二者都是Linear Regression加入正则化的变体),将。

2022-09-04 09:52:37 481

原创 使用网格搜索 + 交叉验证寻找性能最佳的机器学习模型

所谓交叉验证即k折交叉验证。即,将数据集大致均分为k份,每次选择一份作为测试集,其它k-1份作为训练集训练模型,并在测试集上验证其精度,最后可以计算这k-fold测试集上的精度的平均值。总之是,是一个改良的评估模型的方法。

2022-09-02 14:51:56 915

原创 通过分箱对连续特征离散化,以提高线性模型的表现

正如我们所预料的,线性模型只能对线性关系建模,对于单个特征的情况就是一条直线。而决策树可以构建更为复杂的数据模型,但这强烈依赖于数据表示。而使用可以让线性模型在连续数据上的表现更加强大。特征分箱也叫离散化,可以通过特征分箱将连续的特征划分为多个离散特征。

2022-09-02 09:45:37 367

原创 在Adult数据集上使用pandas进行独热编码,之后部署Logistic Regression模型

adult 数据集的任务是预测一名工人的收入是高于 50 000 美元还是低于 50 000 美元。这个数据集的特征包括工人的年龄、雇用方式(独立经营、私营企业员工、政府职员等)、教育水平、性别、每周工作时长、职业,等等。这个数据集需要自己在网上下载,在百度里搜即可,其他博主已经整理好了下载的链接。

2022-09-02 08:50:31 914

原创 在moon数据集上对三种聚类方法进行性能对比

有一些指标可用于评估聚类算法相对于真实聚类的结果,其中最重要的是调整 rand 指数(adjusted rand index,ARI)和归一化互信息(normalized mutual information, NMI),二者都给出了定量的度量,其最佳值为 1,0 表示不相关的聚类(虽然 ARI 可以取负值)。下面我们使用 ARI 来比较 k 均值、凝聚聚类和 DBSCAN 算法。...

2022-09-01 14:31:38 412

原创 使用DBSCAN划分moon数据集

前文提到,使用kmeans聚类算法时,由于kmeans无法识别非球形簇,对moon数据集的两个半月牙簇进行划分的结果很滑稽,但是另一个聚类算法——DBSCAN成功地解决了这个问题。DBSCAN有两个重要的参数,eps和min_samples,eps有“点与点之间接近程度”的含义,eps设置的过小意味着没有点是核心样本点(可以理解为,eps过小,从某个随机的点出发,其eps半径内没有其他可以到达的点);...

2022-09-01 14:01:30 761

原创 K-Means聚类算法

k均值聚类是最简单也最常用的聚类算法,它试图找到代表数据特定区域的。

2022-09-01 10:57:10 997

原创 使用MinMaxScaler对输入核SVM的数据进行数据预处理

无监督学习可以帮助数据科学家更好地理解数据(如),还可以作为监督算法的数据预处理部分。进行数据预处理时,可以使用StandardScaler、RobustScaler、MinMaxScaler和Nomralizer等,这些算法的原理可能不相同,但得到的结果大同小异。由于之前介绍过使用SVM进行分类时,SVM模型对数据放缩和参数敏感,因此本节展示如何使用MinMaxScaler方法对数据进行预处理,以及使用数据预处理模型时应该注意的地方。...

2022-09-01 08:34:17 438

原创 另一种集成树的机器学习算法:梯度提升决策树

GBRT是另一种集成方法(前一个是随机森林算法,二者的根基都是决策树),但与随机森林的集成方法不同,GBRT采用连续的方式构造树,。默认情况下,GBRT不进行随机化,但是会进行强预剪枝,每棵树的深度很小(在1~5之间)。...

2022-08-31 15:35:32 297

原创 使用随机森林进行特征选择

使用make_moons数据集构造一个有5棵树的随机森林模型,观察每棵树的决策边界。随机森林用到了ensemble集成的思想,即使用多棵决策树集成一个随机森林模型,并通过自助采样(从n_samples个数据点中有放回地重复随机抽取一个样本,并抽取n_samples次),并对每个结点使用的特征(单棵决策树使用特征进行决策:if/else)进行随机选择,保证随机森林中每一棵树都是随机的(两两不同),这样保证了每棵树都是随机的,优化了的缺点。...

2022-08-31 10:07:57 2729

原创 秋招每日一题T26——二叉搜索树

输入一系列整数,利用所给数据建立一个二叉搜索树,并输出其前序、中序和后序遍历序列。第一行一个整数 n,表示输入整数数量。第二行包含 n 个整数。共三行,第一行输出前序遍历序列,第二行输出中序遍历序列,第三行输出后序遍历序列。输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。1≤n≤100,输入元素取值范围 [1,1000]。...

2022-08-30 08:37:18 62

空空如也

空空如也

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

TA关注的人

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