- 博客(142)
- 资源 (1)
- 收藏
- 关注
原创 CART树使用mae比使用mse慢很多
跑实验时,数据集大约是2000*100,使用随机森林128课树做回归,发现使用mae所花的时间是使用mse时间10倍以上。然后单独在CART回归树做实验,也是同样的问题,为什么??留坑...
2019-10-24 11:31:00
558
原创 图的存在性
题目:给定过一个1到N的排列P1到PN,请判断是否存在一个由N个点,N-1条边组成的无向连通图,满足对于任意两个整数i和j(i不等于j),若第i个点和第j个点之间有边相连,则第Pi个点和第Pj个点之间同样有边相连。输入:第一行输入一个整数T表示T组数据,每组数据格式为:第一行包括一个整数N,第二行包含N个整数Pi到PN输出:每组输出一行,如果存在满足条件的图则输出Yes,否...
2019-09-24 22:17:59
913
2
原创 [leetcode 546] 移除盒子
leetcode546题意:给定n个盒子,每个盒子都有一种颜色,将k个相邻的相同颜色的盒子移除,可以得到k*k的分数,问如何移除才能获得最大分数?输出最大分数即可,n <= 100。解析:本题使用动规的方法,dp[i][j][k]代表boxes[i~j],并且i前面有连续k个和i相同颜色的盒子时可获得的最大得分,所以本题的最终目标是dp[0][n-1][0]。状态转移方程...
2019-09-17 16:07:38
381
原创 numpy实现KNN代码
代码参考征哥博客:传送门简介:KNN的基本思想是根据与测试样本相邻最近的k个样本的标签,去决定该样本的预测值。KNN有三个要素:k值选择,距离度量方式和决策准则。KNN没有显式的训练过程,计算基本都在预测阶段。1. K值选择一般先选取一个较小的k值,然后通过交叉验证来确定k的取值。2. 距离度量方式一般选择欧氏距离、曼哈顿距离或余弦相似度。3. 决策准则一般分类...
2019-09-12 18:51:37
2076
原创 numpy实现K-Means代码
参考征哥博客:传送门K-Means步骤:1、初始化k个聚类中心2、计算每个样本到每个聚类中心的距离,并划分到距离最近的簇中(M步)3、根据每个簇中的样本重新计算聚类中心(E步)4、重复2、3,直到聚类中心不再发生改变复杂度分析:O(kndp),其中k是聚类个数,n是样本个数,d是特征维度,p是迭代次数代码:import numpy as npclass ...
2019-09-11 21:40:18
934
2
原创 CNN卷积相关计算
以AlexNet为例一、卷积/池化尺寸计算计算公式:n’ = (n - k + 2p) / s + 1其中n是输入feature map大小,k是卷积核大小,p是padding大小,s是步长eg:输入feature map:227*227*3,卷积核11*11*3,步长4,数量96(224 - 11) / 4 + 1 = 55所以卷积后的feature m...
2019-09-11 10:49:32
1732
原创 [leetcode 905]有效排列
题目链接:leetcode905题意:给一个由'D'和'I'组成的字符数组,求0~n这n+1个数满足字符数组所有D和I规则的排列数目,D和I规则如下:D(decrease)代表a[i] > a[i+1];I(increase)代表a[i] < a[i+1].结果取余10^9+7题解:使用动态规划,dp[i][j] 代表当前长度为i并且末尾数字是j的符合规则的...
2019-09-09 22:20:34
792
原创 [leetcode 72]字符串编辑距离
题目连接:leetcode72题意:给两个字符串A和B,有三种操作,增加、删除或替换一个字符。求A变成B最小的操作次数。思路:使用动态规划。dp[i][j]表示将字符串A[0~i]变成字符串B[0~j]需要的操作数。1、如果A[i] = B[j],那么A和B都可以往后移一个,即dp[i][j] = dp[i-1][j-1]2、如果A[i] ≠ B[j],那么有三种操作可以做:...
2019-08-25 15:00:58
154
原创 [leetcode 152]最大乘积子序列
leetcode 152思路:dp代码:class Solution {public: int maxProduct(vector<int>& nums) { int n = nums.size(); int ans = nums[0], Max = nums[0], Min = nums[0]; for(...
2019-08-20 09:36:23
159
原创 排序算法(快排,归并,堆排,冒泡,选择,插入)
以下算法均按从小到大排序。1、快排#include <iostream>using namespace std;void QuikSort(int a[], int l, int r){ if(l >= r) return; int key = a[l]; int i = l, j = r; while(i < j){ ...
2019-08-18 20:07:54
191
原创 二叉树非递归
1、先序非递归先序遍历:根->左->右先序非递归最简单,使用栈保存节点。节点出栈后,直接访问(输出值或者保存下来),然后将右孩子加入栈,再将左孩子加入栈(注意左右的顺序)。#include <iostream>#include <vector>#include <algorithm>#include <stack>u...
2019-08-12 15:00:59
327
原创 AUC曲线计算方法及代码实现
参考:https://www.cnblogs.com/peizhe123/p/5081559.htmlAUC计算1. 根据定义Aera Under Curve,计算面积。样本有限,所以得到的AUC曲线一般是个阶梯状,所以计算这些阶梯的面积即可。先按score排个序,然后从头遍历一遍,把每个score作为划分阈值,可以得到对应的TPR和FPR,计算出底下的面积。更直观的计算方法,参考《百......
2019-08-09 20:33:47
5818
原创 C++高精度大数运算
一、大数相加(两个正数)1、最简单的,两个整形大数相加练习:HDU1002代码:#include <iostream>#include <algorithm>#include <string>using namespace std;// 两个整形大数相加string Add(string &num1, string &...
2019-08-08 22:30:45
660
原创 C++优先级队列+重载
1、int类型C++的优先级队列默认是大顶堆,大数的优先级高,即将多个数放入优先级队列后,队首(下一个出队)元素是这些数里面最大的那个。默认情况等价于:priority_queue<int,vector<int>,less<int> >q;代码:#include <iostream>#include <queue>...
2019-08-07 15:29:40
651
原创 TensorFlow BatchNormal
原理篇可以参考这几个:https://www.cnblogs.com/guoyaohua/p/8724433.htmlhttps://www.cnblogs.com/makefile/p/batch-norm.htmlhttps://blog.csdn.net/qq_25737169/article/details/79048516 本文调用的batch normal...
2019-08-04 20:19:41
598
转载 机器学习分类模型评估
常用指标:错误率,精度(Accuracy),Precision,Recall,F1,P-R曲线,ROC与AUC给定样本集:对二分类问题,可将样例根据其实际类别与学习器预测类别的组合划分为真正例(true positive,TP)、假正例(false positive,FP)、真反例(true negative,TN)、假反例(false negative,FN)四种情况,如下图所示,...
2019-08-01 22:21:19
364
原创 使用Tensorflow实现简单的线性回归和神经网络
一、流程整体流程基本分为三步:1、定义计算图的结构2、定义损失函数及选择优化算法3、生成会话,训练,预测二、线性回归import tensorflow as tfimport numpy as npclass LinearRegression: def __init__(self, dim, lr=0.01): self.dim = dim...
2019-07-07 11:09:54
798
原创 GBDT残差与负梯度
GBDT采用加法模型(即基函数的线性组合)和前向分步算法(每步只求解一个弱学习器)。第m步的模型是:通过经验风险极小化确定下一棵树的参数Θm:对于GBDT中每棵树拟合的是什么,有两种解释,第一种是残差,第二种是负梯度。其实残差是负梯度在损失函数为平方损失时的特殊情况。1、残差前m-1棵树得到的模型是,即对x的预测值为,真实值为y,那么残差就是真实值与预测值的差值,即:...
2019-07-02 19:15:38
2965
原创 SVM几点理解
以下内容是我在学习完《统计学习方法》及查阅相关资料后,对svm的一些疑惑的理解,可能还有理解不到位的地方,如有不对,请及时指出。一、模型发展样本线性可分 -> 硬间隔最大化样本近似线性可分 -> 软间隔最大化样本线性不可分 -> 核函数+软间隔最大化二、超平面是否唯一1、硬间隔最大化时,解是唯一的,即分离超平面wx+b=0中w和b是唯一的。证明相比之下...
2019-06-30 14:55:41
432
原创 论文学习——基于查询的workload预测(CMU)
一、简介论文题目:Query-based Workload Forecasting for Self-Driving Database Management Systems发表在2018SIGMOD,来自cmu的数据库组(这个组真的很厉害)这篇论文主要讲数据库workload预测的问题。因为要实现数据库self-driving(如选择合适的时机在合适的列上自动创建索引),应该根据将要到...
2019-06-20 11:02:03
2349
5
原创 MySQL tps和qps计算
MySQL数据库的吞吐量可以用tps或qps来表示。解释(来源):QPS(Queries Per Second): 查询量/秒,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理查询量多少的衡量标准。TPS(Transactions Per Second):事务数/秒,是一台数据库服务器在单位时间内处理的事务的个数。一、tps计算tps = (C...
2019-06-13 21:42:05
3623
原创 CV验证
本文主要介绍网格搜索、k折CV验证和嵌套CV验证(nested)一、网格搜索网格搜索的目的是对超参数调优,通过尝试列举所有超参数组合得到最好的模型best_estimator,使用best_estimator来做预测。文档代码:from sklearn import datasetsfrom sklearn.ensemble import RandomForestRegre...
2019-06-13 15:34:58
1998
原创 LANL Earthquake Prediction收获
一、简介比赛地址:传送门描述:该比赛目标是使用地震信号来预测地震发生的时间。训练数据:两列,第一列是地震的信号数值acoustic_data,第二列是还有多久发生地震time_to_failure(记为TTF)。数据量是629145480行,即629145480个acoustic_data和TTF。测试数据:有2624个测试文件,每个文件有150,000行数据,只有acoustic...
2019-06-11 22:28:38
824
2
原创 MySQL调参
1、innodb_sync_spin_loops和innodb_spin_wait_delay这两个参数与自旋锁相关:自旋锁是为保护共享资源而提出的一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用的。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就是说,在任何时刻最多只能有一个执行单元获得锁。但是两者在调度机制上略有不同。对于互斥锁,如果资源已经被...
2019-05-24 09:16:52
1557
原创 MySQL调参踩坑之路
1、重启不起来,缺少pid文件Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.查看日志文件,有这么一行:[ERROR] Can'...
2019-05-05 22:25:16
319
原创 TSP问题(动态规划求解)HDU5067
问题描述:有n个城市,从第一个城市出发,每个城市只能走一次,再回到第一个城市,求最小代价。思路:使用动态规划,dp[i][j],其中i是压缩的状态,表示第i个城市是否已经走过,j表示第j个城市。dp[i][j]表示状态是i且当前所在的城市是j时最小代价。转移方程:dp[i|(1<<k)][k] = min(dp[i|(1<<k)][k], dp[i][j]+di...
2019-04-16 10:28:07
795
原创 求逆序数(归并排序和树状数组)
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007归并排序法在归并过程中,两部分记为左数组和右数组,如果右数组当前的数小于左数组当前的数,那么逆序对总数加左数组剩余元素个数。时间复杂度为O(nlogn)。代码:#incl...
2019-04-08 22:15:06
255
原创 把数组排成最小的数
题目(来源:牛客上剑指offer):输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路:现将int数组转换成string数组,然后对string数组排序,排序规则是:str1+str2与str2+str1比较,如果str1+str2 < str2+st...
2019-04-05 21:52:01
105
原创 求两个有序数组的中位数
leetcode:4 Median of Two Sorted Arrays 题目:给两个有序数组,长度为n和m,在O(log (m+n))时间内找出两个数组中所有数字的中位数。题解(参考讨论区大佬解法):递归分治方法,先上代码:#include <stdio.h>double findK(int *nums1, int num...
2019-03-17 22:07:36
852
原创 python读写文件
一、python自带读写文件1、打开(open)文件方式r 读 w 写 a 追加 r+ (r+w) 可读可写,文件若不存在就报错(IOError) w+ (w+r) 可读可写,文件若不存在就创建 a+ (a+r) 可追加可写,文件若不存在就创建 对应的,如果是二进制文件,就都加一个b:'rb' 'wb' 'ab' 'rb...
2019-02-02 14:58:00
302
原创 Linux 挂载新磁盘+创建交换分区
一、挂载新磁盘df -lh查看目前已挂载的分区。1、创建分区fdisk -l查看所有磁盘,可以看到有下面这个盘(以这个盘为例):/dev/vdb创建分区:fdisk /dev/vdb然后输入p,查看现在已有分区(可能分区已经建好,只是没有挂载,这时只需要挂载以下就行了,不需要再创建分区)创建分区,输入:n后面直接默认值就行了。创建完后,输入...
2018-12-28 20:11:23
701
原创 Linux安装mysql 8.0.12
本文安装在centos7,安装方法使用二进制文件方式。一、清理之前残余mysql# rpm -qa | grep -i mysqlmysql80-community-release-el7-1.noarchmysql-community-client-8.0.13-1.el7.x86_64mysql-community-libs-8.0.13-1.el7.x86_64mysql-...
2018-12-17 16:30:03
939
原创 使用svn版本控制
本文针对linux操作系统(使用ubuntu,centos在安装时略有不同)如果只看客户端操作,直接跳到 5(当然需要看一下1、安装)1、安装sudo apt install subversion查看是否成功:zhj@zhj-MS:~/project$ svn --versionsvn,版本 1.9.3 (r1718519) 编译于 Aug 10 2017,16:5...
2018-12-02 22:22:09
226
原创 使用screen后台运行服务器
适用环境LInux1、安装ubuntu:sudo apt install screencentos:yum install screen2、所有命令Use: screen [-opts] [cmd [args]] or: screen -r [host.tty]Options:-4 Resolve hostnames only to ...
2018-12-01 14:52:47
824
1
原创 java和python使用grpc交互
本文实现Java和Python之间通过grpc交互,只使用最基本的单项rpc。grpc教程:https://doc.oschina.net/grpc?t=58009https://grpc.io/docs/一、Java实现grpc使用idea新建maven项目,项目目录如下项目的pom.xml文件如下:<?xml version="1.0" encoding="...
2018-09-13 18:37:20
7585
7
原创 fabric-java-sdk样例连接测试
参考文章:here 一、准备环境1、Fabric镜像,下载可以根据这篇,现在最新版本是1.2,我使用的是v1.1.0版本,具体如下:REPOSITORY TAG IMAGE ID CREATED SIZEhyperledger/fabric-zookeeper ...
2018-08-19 09:08:31
3046
1
原创 以太坊swarm搭建与使用
以太坊每个区块都有gas限制,每个区块所能容纳的交易有限,也不可能存储大容量文件。swarm与ipfs类似,提供一个云存储,可能将要存储的内容放在swarm上,得到一个内容hash(代表所存储的内容,只要内容有修改,哈希就会改变),将hash存储在区块链上生成证明。-----------------------------------------------------------------...
2018-07-30 11:33:44
9583
1
原创 fabric-node-sdk 编写第一个应用
本文参考官网示例:https://hyperledgercn.github.io/hyperledgerDocs/write_first_app_zh/测试环境linux一、准备条件准备条件与上篇相同。本文用到的例子是fabric-simples中的fabcar,是一个与汽车属性相关的测试项目,后面的chaincode部分会讲。二、启动网络在fabcar目录下有个startFabric.sh脚本,...
2018-06-30 12:01:43
3356
原创 Hyperledger Fabric 搭建第一个Fabric网络
本文适用于linux环境。先放文档地址:官方文档:http://hyperledger-fabric.readthedocs.io/en/latest/中文文档:https://hyperledgercn.github.io/hyperledgerDocs/一、准备条件需要安装的软件:git、cURL、docker和docker-compose、go语言、nodejs和npm、...
2018-06-15 11:43:40
2949
原创 以太坊联盟链quorum搭建(二)
本篇文章介绍通过truffle来部署智能合约。1、首先需要有一个联盟链quorum的环境,如上篇文章所示。2、然后使用truffle来部署智能合约(这里使用truffle主要是编译和部署合约)新建一个目录test,然后进入目录初始化一个truffle项目:truffle init然后在contracts目录中编写智能合约:pragma solidity ^0.4.15;contract sim...
2018-06-07 20:19:31
2384
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人