自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux多线程编程基础入门(二) 线程的属性

线程的属性在线程的创建接口 pthread_create 的参数列表中有一个类型为 pthread_attr_t 的参数 attr,该参数用于指定新建线程的相关属性。一个线程的主要属性包括:线程栈的地址及大小,线程的调度策略与优先级,还有线程是否处于分离状态等。线程属性的相关接口:属性的初始化与销毁#include <pthread.h>int pthread_attr_init(pthread_attr_t *attr);int pthread_attr_destroy(pthre

2021-09-14 14:42:03 116

原创 Linux多线程编程基础入门(一)线程的基本概念

线程是操作系统能够进行调度运算的最小单位,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。linux 操作系统使用符合 POSIX 线程作为系统标准线程,该 POSIX 线程标准定义了一整套操作线程的 API。线程的创建一个线程的生命周期起始于它被创建的那一刻,创建线程的接口:#include <pthread.h>int pthread_create(pthread_t *thread, c

2021-09-12 06:22:03 137

原创 Linux入门学习笔记(一) 环境配置、文件系统简述、一些命令

1.环境配置Virtualbox虚拟机1.开源免费2.跨平台使用(Linux、Windows)3.支持多种虚拟机网络设置:虚拟机网络模式NAT模式网桥模式Internal模式Host-only模式CentOS8安装centos8下载centos.org/downloadcentos8安装新建(名称/文件夹/类型/版本)- 内存大小(2048M)- 虚拟硬盘(创建新的虚拟硬盘,选择VirtualBox磁盘镜像)- 存储在物理硬盘上(动态分配)- 文件位置和大小(10G)设置-存

2021-09-08 04:44:39 258

原创 python刷题笔记之双指针

167. Two Sum II - Input array is sorted (Easy)Given an array of integers numbers that is already sorted in non-decreasing order, find two numbers such that they add up to a specific target number.Return the indices of the two numbers (1-indexed) as an in

2021-08-05 15:38:00 214

原创 K-Means聚类算法中可能出现的问题 python

K-Means聚类尝试将样本数据集分成具有相同方差的n个类。详解K-Means:https://zhuanlan.zhihu.com/p/787982511.sklearn建立K-Means聚类算法首先看一个简单且典型的的K-Means聚类算法的所得到的效果。可以看到数据集被正确的分成了三类。接下来开始分析K-Means聚类方法随着迭代次数的分步演变过程。2.分步演变过程伪代码如下获取数据 n 个 m 维的数据随机生成 K 个 m 维的点while(t) for(int i

2021-06-23 03:47:38 4673 1

原创 支持向量机SVM分类实现(Kernel-Tricks, 正则化,Gridsearch) python

1. 线性划分从最简单的开始,即存在超平面可以完美分割两个label的数据。此时不需要使用正则化(C取很大)就可以通过一个线性核函数训练SVM。即点不会出现在分离超平面以内。2. 核技巧 Kernel-Tricks当线性核函数无法满足数据分类的情况时(例如同心圆数据集),SVM允许使用核技巧Kernel-Tricks,也就是说选择适当的核函数,使得数据可以线性分割。最常用的核函数就是径向基核函数RBFhttps://baike.baidu.com/item/%E5%BE%84%E5%90%91

2021-06-22 20:06:11 842

原创 梯度提升Gradient Boosting进行正弦函数回归&浅析损失函数和学习率影响

1. 正弦函数回归# coding: utf-8# - https://scikit-learn.org/stable/modules/ensemble.html#gradient-boosting# [1] J. Friedman, Greedy Function Approximation: A Gradient Boosting Machine, The Annals of Statistics, Vol. 29, No. 5, 2001.# [2] T. Hastie, R. Tibs

2021-06-22 14:55:15 564

原创 Adaboost实现手写数字数据集的分类(sklearn),浅析分类器数目、学习率的影响

使用Adaboot对手写数字数据集sklearn.datasets.load_digits进行分类。1.首先对前五个数字进行了展示2.训练AdaboostClassifier,使用AdaBoostClassifier.stagend_predict(x)可以获得分阶段的预测结果。求得对数据集的随着迭代次数增加(弱分类器的增加)的误差变化情况。观察可知,随着分类器的增加,Adaboost模型的分类的表现会更好。3.最后研究了学习率对Adaboost模型的影响。在Adaboost中,学习率即每次新训

2021-06-22 05:50:36 1124

原创 使用Adaboost实现make_circles数据集的分类(sklearn)

使用Adaboost进行分类的基本思想是基于弱分类器的Boosting, 在每次迭代的样本中,增加上一次迭代中分类错误的样本的权重。下面是基本的使用Adaboost和决策树(层数为1)对make_circle进行分类。# coding: utf-8# Referenzen# - https://scikit-learn.org/stable/modules/ensemble.html#adaboost# - https://xavierbourretsicotte.github.io/AdaBo

2021-06-22 04:35:40 451

原创 代码:非参数密度估计的三种python实现 (直方图,核密度估计,K近邻)

我们经常不知道数据是根据什么类型的函数进行分布, 此时就需要非参数密度估计的方法。 本文对同一组数据进行了三种不同的非参数密度估计, 即直方图,核密度估计,K近邻。使用数据集:https://download.csdn.net/download/weixin_42388833/19418489?spm=1001.2014.3001.55011. 直方图计算并画出数据分布的直方图(size of bin = 0.02, 0.5, 2.0)import numpy as npimport matpl

2021-06-15 21:06:07 3429

原创 梯度下降法中学习率的影响(附代码实现)

Rosenbrock’s 函数是优化问题的基准问题:f(x)=∑i=1n−1[100(xx+1−xi2)2+(xi−1)2]f(x)=\sum_{i=1}^{n-1}[100(x_{x+1}-x_{i}^2)^2+(x_i-1)^2]f(x)=i=1∑n−1​[100(xx+1​−xi2​)2+(xi​−1)2]本文实现了一个基本的梯度下降法的算法,并且实现了两种学习率的确定方式,即Line Search 和 Constant Learning Rate。代码末尾。Constant Learnin

2021-06-15 21:05:41 2024

原创 Batch\Stochastic\Mini-Batch 梯度下降法

梯度下降法存在一些变体, 本文讨论三种,即vanilla(batch),stochastic 和 mini-batch。不同之处在于,我们使用多少数据来计算目标函数的梯度。1. 批量梯度下降法(Vanilla\Batch Gradient Descent)Vanilla指的是某一事物标准,通常或者未修改的版本。所以批量梯度下降法就是基本的梯度下降法,即在整个数据集上对每个参数求目标函数的偏导数。优点:当目标函数为凸函数,批量梯度下降法必然会在全局最小值处收敛(否则可能会在局部极小值处收敛)缺点:

2021-06-15 21:04:53 211

原创 数据库系统:使用例子解释B树中元素的添加和删除

在计算机科学中,B树(英语:B-tree)是一种自平衡的树,能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除的动作,都在对数时间内完成。B树,概括来说是一个一般化的二叉查找树(binary search tree)一个节点可以拥有2个以上的子节点。与自平衡二叉查找树不同,B树适用于读写相对大的数据块的存储系统,例如磁盘。B树减少定位记录时所经历的中间过程,从而加快存取速度。B树这种数据结构可以用来描述外部存储。这种数据结构常被应用在数据库和文件系统的实现上。——维基百科每个B树存.

2021-06-02 03:38:38 475

原创 三个参数对随机森林分类结果的影响(附代码)

使用手写数据集研究集成规模,树的最大深度以及特征数对随机森林分类结果的影响。代码在末尾。使用交叉验证,返回accuracy,折数为101. 集成规模n_estimators集成规模即树的数量。为了观察其影响,分别对数量1~40进行交叉验证,返回得到准确率并绘图。观察可得,集成规模的增加可以提高模型在训练集和测试集上的准确度,这是因为增加树的数量可以减少偏差和方差,还可以发现模型不会随着复杂度的增加而过度拟合训练数据。2. 树的最大深度max_depth树的最大深度反映了单个树的复杂度,将集成

2021-05-31 02:59:52 2067

原创 决策树vs随机森林简单对比

为了进行决策树与随机森林的简单实现与对比,使用一组分类和回归数据集。from sklearn import datasets# Get the data loaderloader_classification = [ ("Iris", datasets.load_iris), ("Digits", datasets.load_digits), ("Wine", datasets.load_wine), ("Breast Cancer",

2021-05-31 01:40:15 3415

原创 使用try-catch-finally处理异常

用法一览try{ //需要被检测的异常代码} catch(Exception e){ //异常处理,即处理异常代码}finally{ //一定会被执行的代码}可以在catch部分加上一句打印异常System.out.println(e.ToString());try+catch+finallyJava通过面向对象的方法来处理异常。 在一个方法的运行过程中,如果发生了异常,则这个方法生成代表该异常的一个对象,并把它交给运行时系统,运行时系统寻找相应代码来处理这一

2020-11-22 18:56:15 2345

原创 算法题笔记:统计数字 (Python3实现)

计算数字k在0到n中出现的次数,k可能是0~9之间的一个值1.暴力法从0到n对每个数进行逐个检测。class Solution1: """ @param k: An integer @param n: An integer @return: An integer denote the count of digit k in 1..n """ def digitCounts(self, k, n): # write your code he

2020-07-30 17:28:57 211

原创 基于dijkstra算法的AGV路径规划 (C++实现)

dijkstra算法经典Dijkstra算法是一种贪心算法,根据路径长度递增次序找到最短路径,通常用于解决单源最短路的问题。Dijkstra算法的基本思想是:首先根据原有路径图,初始化源点到与其相邻节点的距离,选出与源点最短距离的节点进行松弛操作,即比较判断若经过该点,是否能找到比源点到其他点更短的距离,若有更短的距离则更新原有距离,直至遍历初始图中的所有节点。Dijkstra算法可找出源点到初始图中所有点的最短距离,任意最短路径的子路径仍为最短路径。Dijkstra算法是以标号为基础的标签算法,设一个

2020-05-12 11:33:37 3167 2

原创 个人C++入门路线(小白)

第一阶段: C++语法学习慕课网 C++远征系列迷宫代码(C++远征篇之封装篇里的结课作业,还挺有意思。)C++ Primer Plus 第6版 中文版(课后习题基本刷完)习题参考答案个人答案第二阶段: C++实现常见数据结构慕课网 数据结构探险系列课程代码库清华大学 邓俊辉 数据结构与算法可以作为上面IMOOC课程的补充和扩展,上完很有收获。课程代码库第三阶段: 小项目实战做了一个仓库AGV路径规划与避障的接口系统,接收上位调度系统的指令,根据指令进行路径规划和避障。数据结构

2020-05-12 11:30:18 131

原创 近期C++学习中遇到问题汇总

继承中派生类的构造函数的注意事项定义中给构造函数参数赋默认值,说明中不需要。说明中将构造函数的参数赋给基类的构造函数,定义中不赋值。例如:class A: public B{public: A (int x= 1, int y = 2);//。。。。。}A::A(int x, int y): B::B(x){//。。。。。}————————————————...

2020-04-13 21:20:32 163

原创 C++学习笔记 (一)封装——自动走迷宫

慕课网C++课程封装篇作业,自动走迷宫;https://www.imooc.com/learn/405遇到的问题与解决方案:1.在构建地图的MyMazeMap类和小人移动的MyMazer类的交互上出现问题。解决方案:在MyMazer类中在堆中建立MyMazeMap类对象map,使用拷贝构造函数将主程序中的建立的maze对象拷贝进入MyMazer类对象map中,使得构建地图的成员和成员函数可...

2020-03-05 05:39:41 424

空空如也

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

TA关注的人

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