- 博客(94)
- 资源 (1)
- 收藏
- 关注
原创 Python 之 基础知识大全
输出Python的输出打印有三种方式,分别通过字符串格式化符号、str.format()格式化字符串、f-string格式化字符串、以及直接打印逗号分隔。其中常用的字符串格式化符号如下:格式符号转换%s字符串%d有符号的十进制整数%f浮点数%c字符%u无符号十进制整数%o八进制整数%x十六进制整数(小写ox)%X十六进制整数(大写OX)%e科学计数法(小写’e’)%E科学计数法(大写’E’)%g%f和
2021-06-01 22:24:28 1101 17
原创 遗传算法工具箱GAToolBox 之 Python实现
在计算机科学和运筹学中,遗传算法(Genetic Algorithm,GA)是受自然选择过程启发的一种元启发法,它属于进化算法(Evolutionary Algorithms, EA)的一种。 遗传算法依赖于诸如突变,交叉和选择等受生物学启发的操作,其通常用于为优化和搜索问题提供高质量解决方案。
2021-05-24 10:44:22 1319 1
原创 模糊PID控制算法 之 C语言实现
鉴于控制算法常于嵌入式平台使用,所以博主使用C语言实现模糊PID控制算法,该项目已上传至[GitHub](https://github.com/flamealpha/fuzzy-pid)以及[码云](https://gitee.com/flamealpha/fuzzy-pid)。
2021-05-21 20:52:39 12397 8
原创 单类支持向量机(One-Class SVM)之 C++ 实现
本项目基于 libsvm-cpp 以及 dataframe-cpp 进行开发,主要用于异常检测,可直接读取CSV文件进行训练,存储和读取model以及scaler,并用于在线异常检测。同时该项目使 libsvm-cpp 支持直接读取CSV文件进行训练和测试。该项目已上传至码云和Github。
2021-04-27 15:29:52 869 1
原创 C++ 之 伪随机数生成 <random>
C++ 标准库提供了生成随机和伪随机数的类。这些类包括:随机数生成类:生成均匀分布整数序列的伪随机数生成器,包括随机数引擎、随机数引擎适配器以及预定义随机数生成器。随机数分布类:将生成器生成的数字序列转换为遵循特定随机变量分布(如均匀分布、正态或泊松分布)的数字序列的对象。随机数引擎随机数引擎可以以种子数据为熵源生成伪随机数。类模板作用linear_congruential_engine实现线性同余算法mersenne_twister_engine实现梅森缠绕器算
2021-04-27 15:07:31 2184
原创 MATLAB 文件未关联解决方法
已有大神为解决MATLAB文件未关联问题提出解决方法,步骤如下1. 下载associateFiles2.12.zip文件后解压2. 在MATLAB中运行 associateFiles.m 文件3. 然后将会获得 MatlabFileAssocFix.reg 文件,以管理员运行该文件4. 然后运行 matlabshortcuts.bat 和 runmatlab.bat 文件可以下载博主上传的associateFiles2.12.zip文件或者去MATLAB社区下载压缩包,下载请点击☞下载地址。.
2021-04-17 17:09:33 789 2
原创 SQL 语法查询手册
create database <数据库名>; // 创建数据库drop database <数据库名>; // 删除数据库use <数据库名>; // 选择数据库alter database <数据库名> <操作>; // 对指定数据库进行操作create table <表名>; // 创建新表alter table <表名> <操作>; // 对指定表进行操作drop table <表名&
2020-08-05 11:42:46 1672
原创 C++ 之 基础概念补充
C++实现面向对象的三个基本工具是:封装、继承、多态。封装:隐藏实现细节,仅对外提供接口,即实现了代码模块化;继承:扩展已存在的代码模块(类),即实现了代码重用。多态:具体表现为一个接口,多种方法,即实现了接口重用!继承一个对象直接使用另一个对象的属性和方法。优点:减少重复的代码。继承是多态的前提。继承增加了类的耦合性。缺点:继承在编译时刻就定义了,无法在运行时刻改变父类继承的实现;父类通常至少定义了子类的部分行为,父类的改变都可能影响子类的行为;如果继承下来的子类不适合
2020-08-04 10:46:46 222
原创 Python 实现 PDF转图片 & 图片转PDF
这里使用了三个工具包分别为 PyMuPDF、reportlab 以及 PIL,所以这三个工具包需要提前安装,但是注意不要使用 pip install fitz 安装 fitz,因为这里使用的 fitz 是 PyMuPDF 里的,如果再安装 fitz, 会因为命名冲突导致调用失败。首先是库的导入:import osimport sysimport fitzfrom reportlab.lib.pagesizes import portraitfrom reportlab.pdfgen impor
2020-07-30 10:36:33 1051 5
原创 单类支持向量机(One-Class SVM)
minR,aR2+C∑i=1nξi subject to: ∥xi−a∥2≤R2+ξi for all i=1,…,nξi≥0 for all i=1,…,n\begin{array} { c } \min _ { \boldsymbol { R } , \mathbf { a } } \boldsymbol { R } ^ { 2 } + \boldsymbol { C } \sum _ { \boldsymb.
2020-06-10 18:05:10 9139 6
原创 sklearn 之 单类支持向量机(One-Class SVM)
这里先列出官方给出的使用高斯核(RBF kernel) one class svm 实现二维数据的异常检测:#!/usr/bin/python# -*- coding:utf-8 -*-import numpy as npimport matplotlib.pyplot as pltimport matplotlib.font_managerfrom sklearn import svmxx, yy = np.meshgrid(np.linspace(-5, 5, 500), np.lin
2020-06-04 17:55:44 3802 4
原创 Keras 之 自编码器(Auto Encoder)
这里以 fashion_mnist 数据集为例,先写出自编码器的基本实现代码如下:import osimport tensorflow as tfimport numpy as npfrom tensorflow import kerasfrom tensorflow.keras import Sequential, layersfrom PIL import Imagefrom matplotlib import pyplot as plttf.random
2020-06-01 11:27:37 1428 3
原创 Keras 之 多层感知机(MLP)
这里以 mnist 数据集为例,代码如下:import tensorflow as tffrom tensorflow.keras import datasets, layers, optimizers, Sequential, metrics# 设置GPU使用方式# 获取GPU列表gpus = tf.config.experimental.list_physical_devices('GPU')if gpus: try: for gpu in gpus:
2020-06-01 11:19:53 778
原创 Tensorflow 之 张量操作
改变形状通过 tf.reshape(x, new_shape),可以对张量的视图进行任意的合法改变x=tf.range(96)x=tf.reshape(x,[2,4,4,3])增删维度增加维度:增加一个长度为 1 的维度相当于给原有的数据增加一个新维度的概念,维度长度为 1,故数据并不需要改变,仅仅是改变数据的理解方式,因此它其实可以理解为改变视图的一种特殊方式。通过 tf.expand_dims(x, axis) 可在指定的 axis 轴前可以插入一个新的维度:x = tf.random.u
2020-05-28 17:45:09 1032
翻译 Tensorflow 之 张量类型
常量类型在 Tensorflow 中任何变量都需要转换为 Tensorflow 可以识别的类型,当然作为变量的特殊形式(不可改变)常量需要使用 tf.constant 存储或转换为张量类型 tf.Tensor ,当然可能不太贴切,所以Tensorflow 也创建了函数 tf.convert_to_tensor 实现了一样的功能,以常见的类型为例:tf.constant(1) # 标量 shape 为 []tf.constant(1.2) # 标量 shape 为 []tf.constant(True
2020-05-25 16:06:35 1467
转载 Keras 之 多层感知机的详细实现
本文中以 0~9 数字图片识别,首先准备图片数据,这里使用到的是 MNIST 数据集,借助 Keras 实现:import osimport tensorflow as tf # 导入 TF 库from tensorflow import keras # 导入 TF 子库from tensorflow.keras import layers, optimizers, datasets # 导入 TF 子库(x, y), (x_val, y_val) = datasets.mnist.load_da
2020-05-24 11:15:05 1126
转载 Tensorflow 之 CPU/GPU计算效率对比
import numpy as npimport matplotlibfrom matplotlib import pyplot as pltplt.close()# Default parameters for plotsmatplotlib.rcParams['font.size'] = 20matplotlib.rcParams['figure.titlesize'] = 20matplotlib.rcParams['figure.figsize'] = [9, 7]matp
2020-05-22 17:28:22 1886
转载 简单线性回归模型的 Python 实现
观察数据获取:def get_data(b = 0.089, w = 1.477, x_range=(-10.,10.), gauss=0.1): data = []# 保存样本集的列表 for i in range(100): # 循环采样 100 个点 x = np.random.uniform(x_range[0], x_range[1]) # 随机采样输入 x # 采样高斯噪声 eps = np.random.normal(0., gauss) # 得到模型的输出 y =
2020-05-18 18:03:41 723
原创 梯度提升机(Gradient Boosting Machine)之 LightGBM
随着大数据时代的到来,GBDT正面临着新的挑战,特别是在精度和效率之间的权衡方面。传统的GBDT实现需要对每个特征扫描所有数据实例,以估计所有可能的分割点的信息增益。因此,它们的计算复杂度将与特征数和实例数成正比。这使得这些实现在处理大数据时非常耗时。直接的想法是减少样本数据量和特征数。LightGBM 针对这两种操作提出来两个方法:基于梯度的单边采样(Gradient-based One-Side Sampling (GOSS)):当对样本进行采样时,为了保持信息增益估计的准确性,应该更好地保留那些
2020-05-16 14:23:36 12949 8
原创 梯度提升机(Gradient Boosting Machine)之 XGBoost
相对于随机森林使用 bagging 融合完全长成决策树,梯度提升决策树使用的 boosting 的改进版本 AdaBoost 技术的广义版本,也就是说是根据损失函数的梯度方向,所以叫做梯度提升(Gradient Boosting)。...
2020-05-12 09:32:41 2926 1
原创 主成分分析(Principal Components Analysis)
主成分分析PCA(Principal Component Analysis),作用是:聚类 Clustering:把复杂的多维数据点,简化成少量数据点,易于分簇降维:降低高维数据,简化计算,达到数据降维,压缩,降噪的目的PCA 的目的就是找到一个低维映射空间,使得数据映射后方差最大。理论实现:首先对样本空间为 ddd 维全部的数据中心化,使得均值为 0,即将所有的样本与样本均值相减获得新的样本:xi=xi−μ\mathbf { x } _ { i } = \mathbf { x } _ {
2020-05-10 18:36:04 1055
原创 线性判别分析(Linear Discriminat Analysis)
线性判别分析(Linear Discriminat Analysis)PCA找寻的投影向量力求找到使得特征点方差较大(也就是说散的比较开),与PCA所找寻的投影向量不同,LAD所找寻的投影向量具有下面两种特性:映射后不同类数据之间的中心点(均值点)相距较远映射后同类数据之间方差较小(分布比较集中)类似于一种聚类分析,但是却是一种监督学习算法。而PCA属于一种无监督学习算法。那么将LDA的主轴与PCA的主轴画出如下:可以看出实际上数据在映射在 LDA 的主轴上可分性更高。在下面的正文中的一
2020-05-09 11:40:22 702
原创 类 pandas.dataframe 的 C++实现
dataframe-cxx在Python上使用dataframe做数据分析是非常便利的,但是c++端就没有这么幸运了,暂时没有官方的api供我们使用,所以博主通过前段时间的编写的代码,修改了一个在c++端使用的dataframe API。当然经验有限,尚未考虑时间消耗(效率问题),不过对于博主目前的软件使用尚且可以满足,如果需要的话可以点击 dataframe-cxx跳转GitHub自行下载,下...
2020-05-06 18:19:08 8124 36
原创 CMake 中文简易手册
最基本的项目是从源代码文件构建的可执行文件。对于简单的项目,只需要三行代码。cmake_minimum_required(VERSION 3.10)# set the project nameproject(Tutorial)# add the executableadd_executable(Tutorial tutorial.cxx)如果想要将子工程构建为动态链接库后用于本工...
2020-05-06 12:07:00 5784
原创 北大 C++ 程序语言设计课程笔记前言
感谢郭炜老师和刘家瑛老师的详细讲解,让我真正入门C++。 详细笔记见本专栏的其他文章。视频观看可点击:C++ 程序语言设计,如果有失效可以去中国大学MOOC(慕课) 搜索查找。...
2020-05-04 12:30:08 244
原创 台大林轩田机器学习课程笔记前言
正确的判断来自于经验,而经验来自于错误的判断。— Frederick P. Brooks本专栏为机器学习笔记文件,参考资料有《林轩田机器学习基石&技法》《机器学习》《吴恩达机器学习课堂》《神经网络与深度学习》《Sklearn 与 TensorFlow 机器学习实用指南》。感谢林轩田老师!让我入门机器学习,不再止步调包侠。详细的笔记见专栏 《机器学习基石》 和 《机器学习技法》。视频...
2020-05-03 18:40:18 1043 1
原创 机器学习技法 之 终章(Final)
特征转换的技巧核技巧对于数值特征,使用一些映射函数 Φ\PhiΦ,将想要的特征转换嵌入进 kernel 运算里面,在 kernel 运算里面就包含了特征转换和在转换后空间上取内积。(numerous features within some Φ\PhiΦ: embedded in kernel KΦK_\PhiKΦ with inner product operation)。常用的核技巧...
2020-05-03 18:18:52 400
原创 机器学习技法 之 支持向量回归(SVR)
核逻辑回归(Kernel Logistic Regression)SVM 和 Regularization 之间的联系软间隔支持向量机的原最优化问题为:minb,w,ξ12wTw+C⋅∑n=1Nξn s.t. yn(wTzn+b)≥1−ξn and ξn≥0 for all n\begin{aligned} \min ...
2020-05-03 17:11:08 2478
原创 机器学习技法 之 矩阵分解(Matrix Factorization)
推荐系统这里用推荐系统的应用实例引出矩阵分解:现在有一个电影评分预测问题,那么数据集的组成为:{(x~n=(n),yn=rnm): user n rated movie m}\left\{ \left( \tilde { \mathbf { x } } _ { n } = ( n ) , y _ { n } = r _ { n m } \r...
2020-05-02 21:17:02 1956 2
原创 机器学习技法 之 径向基函数网络(RBF Network)
径向基函数网络(Radial Basis Function Network):就是将基假设函数进行线性聚合。径向基函数网络假设函数(RBF Network Hypothesis)先回顾一下高斯支持向量机(Gaussian SVM):gsvm(x)=sign(∑SVαnynexp(−γ∥x−xn∥2)+b)g _ { \mathrm { svm } } ( \mathbf { x } )...
2020-05-02 09:45:53 2180
原创 InfluxDB 数据库操作 C++(curl) 的详细实现
前几天写过一篇博文InfluxDB 写入&查询 Qt工程(C++ 客户端 API),主要介绍了整理的Qt工程的使用方法,今天介绍一下其具体实现(C++),这里主要借助于curl工具进行的数据库远程操作。写入数据写入数据的标准URL为[protocol]://[username:password@]host:port[/?db=database][/write/measure,tags ...
2020-05-01 14:20:14 4153 6
原创 各个常用的排序算法的适用场景详细分析
在介绍各排序算法的使用场景时,先来温习一下跟时间复杂度有关的一些名词概念:逆序对:设 A 为一个有 n 个数字的有序集 (n>1),其中所有数字各不相同。如果存在正整数 i, j 使得 1 ≤ i < j ≤ n 而且 A[i] > A[j],则 <A[i], A[j]> 这个有序对称为 A 的一个逆序对,也称作逆序数。在未知的状态下,每两个元素为逆序对的概率为50...
2020-05-01 14:19:58 6044
原创 有序二维数组查找的两种方法:从左上角(递归)和右上角(非递归)出发
有序二维数组查找这道题是在学习剑指offer这本书看到的,原题如下所示: 在一个二维数组中,每行都按照从左到右递增的顺序排序,每列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分块治之在拿到题目的时候,我并没有找到右上角那么优秀的特征,所以我选择二分查找的有序数组的思想,最初的想法是从最小值(左上角)到最大值(右下角)进行扇形搜...
2020-05-01 14:19:36 2969 1
原创 TCP通信就像谈恋爱
位码即tcp标志位,有3种标示:SYN(synchronous建立联机) Sequence number(顺序号码) ACK(acknowledgement 确认) Acknowledge number(确认号码)FIN(finish结束)clientsever三次握手连接确定双方信息SYN,1000(0),<mss 1460>SYN,8000(0),ACK 1001,<...
2020-05-01 14:19:16 1199
原创 机器学习技法 之 深度学习(Deep Learning)
前面学习了基础神经网络算法,可以得知神经网络基本结构中:神经元(Node)的个数,层数(Layer),以及激活函数的类型和神经元之间的连接形式都是可以自己选择的,这就导致结构的多样性,那么如何选择呢?当然是视情况而定了。浅层与深层(Shallow versus Deep Neural Networks)浅(shallow)层以为着较少(few)的隐含层(hidden layers)。其意味着:...
2020-05-01 14:16:51 1008
原创 机器学习技法 之 神经网络(Neural Network)
动机(Motivation)感知机的线性融合(Linear Aggregation of Perceptrons)中文中的感知器或感知机均指的是Perceptron 。将 Perceptrons 作为 Linear Aggregation 的基模型,搭配方式的网络结构图图如下所示:可以看出这里使用了两层的权重 wt\mathbf{w}_twt 和 α\alphaα,和两层的 sig...
2020-04-28 14:41:46 1179
原创 机器学习技法 之 聚合模型总结(Summary of Aggregation Models)
Blending Models(融合模型)Blending:指的是当已有丰富多样的 gtg_tgt 时,进行聚合(Aggregate)。(aggregate after getting diverse gtg_tgt)。常用的三种 Blending 模型如下:uniform : 是认为不同的 gtg_tgt 之间可能可以相互修正,从而提高稳定性(stability)。而 non-un...
2020-04-27 11:05:04 1734
associateFiles2.12.zip
2021-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人