java版查找链表最后k个元素 package com.test;public class Test { class Node{ private int num; private Node next; public Node(int num,Node node){ this.num = num; this.next = node; } public void setNum(int num){ this.nu...
Java版链表逆序 package com.test;public class Test { class Node{ private int num; private Node next; public Node(int num,Node node){ this.num = num; this.next = node; } public void setNum(int num){ this.nu...
在排序数组中查询指定数字 //注意查询边界以及正序逆序判断package com.test;public class Test { public static int search(int arr[],int len,int target){ if(len < 1){ return -1; } int first = 0; int last = len-1; while(first <= las...
关于集成学习算法中弱分类器的生成 集成思想的方法一般是集成多个弱分类器用以提高泛化能力。Bagging算法中,弱分类器的生成可以有以下几种:基于样本分布的弱分类器生成,可以根据样本分布抽样产生,也可以不抽样,在弱分类中应用样本分布(这种方法需要修改弱分类器的实现过程);基于属性选择的弱分类器生成,一般是在高维数据中,随机选择不同的属性组合产生弱分类器;基于参数变化的弱分类器生成,有些分类器对参数敏感,小的变化就会导致分类器的不同;
OpenMP的简单测试 并行化 //测试之前要开启OpenMP支持#include#includeusing namespace std;int main(){ int num_procs = omp_get_num_procs(); cout long long count = 0; long long* array = new long long[num_
逻辑回归中sigmoid函数的来历 逻辑斯谛分布中的sigmoid函数来源于最大熵原理,通过拉格朗日乘数法(寻找变量受一个或多个条件限制的多元函数极值的方法)求偏导得出。论文The equivalence of logistic regression and maximum entropy models 中有详细推导过程。
python 获取文件夹下指定后缀的文件 import osimport sysimport os.pathdef list_file(path): count = 0 for filename in os.listdir(path): if os.path.splitext(filename)[1] == '.csv': count = count+1
基于用户的协同过滤算法 基于用户的协同过滤算法主要思想是通过计算目标用户的相似用户,将相似用户喜欢或者购买过的商品过滤掉目标用户已购买过的商品形成推荐列表,一般将这些商品按照一定的规则排序(例如按照商品评分大小)展示给目标用户。 当我们想购买某一商品而不知道应该购买哪一个的时候,通常情况下会向自己周围的同学询问,而这些同学一般是跟自己有类似爱好或者有过购买经历的同学,于是协同过滤这样的思路就产生了。
回归提升树 算法 回归提升树算法流程输入:训练数据集 T={(x1,y1),(x2,y2),⋅⋅⋅,(xN,yN)},xi∈χ⊆Rn,y∈η⊆RT = \{ ({x_1},{y_1}),({x_2},{y_2}), \cdot \cdot \cdot ,({x_N},{y_N})\} ,{x_i} \in \chi \subseteq {R^n},y \in \eta \subseteq R输出:提升树 fM
熵、信息增益、信息增益比 熵是表示随机变量不确定性的度量,变量XX是一个取有限值的离散属性,其概率分布为P(X=xi)=pii=1,2,⋅⋅⋅,nP(X = {x_i}) = {p_i}{\rm{ i = 1,2,}} \cdot \cdot \cdot {\rm{,n}}其中nn为变量取值个数,那么变量 XX的熵定义为H(X)=−∑i=1npilogpiH(X) = - \sum\limits_{i = 1}^n
随机森林 RandomForest java 随机森林是由多棵树组成的分类或回归方法。主要思想来源于Bagging算法,Bagging技术思想主要是给定一弱分类器及训练集,让该学习算法训练多轮,每轮的训练集由原始训练集中有放回的随机抽取,大小一般跟原始训练集相当,这样依次训练多个弱分类器,最终的分类由这些弱分类器组合,对于分类问题一般采用多数投票法,对于回归问题一般采用简单平均法。随机森林在bagging的基础上,每个弱分类器都是决策树,决策
梯度提升回归树 GBDT java /** * 梯度提升回归树 简单实现 * @author ysh 1208706282 * */public class Gbdt { static List mSamples; static List mTrainTarget; static List mTrainCurTarget; static List mCarts;
最小二乘回归树 属性选择比率 gbdt基分类器 java /** * 最小二乘回归树 缺失属性还没想好怎么处理好 * @author ysh 1208706282 * */public class Cart { static double MISSINGDATA = -111111111; int mMaxDepth; //设定的最大深度 int mMinLeaf;
SQL 语句调优 where 条件 数据类型 临时表 索引 基本原则避免全表扫描建立索引尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理尽量避免大事务操作,提高系统并发能力使用基于游标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题,基于集的方法通常更有效。尽量避免使用游标,因为游标的效率较差。where 后的条件应尽量避免在 where 子句中使用 != 或 应尽量避免在 where 子句中使用 or
朴素贝叶斯分类器 拉普拉斯变换 java /** * 朴素贝叶斯分类器 拉普拉变化的重要性(暂未实现) 小样本数据有坑 特征为离散型数值化 * @author ysh 1208706282 * */public class NavieBayes { Map labelInfo; Map featureInfo; List samples; static class Sa
KNN分类器 适合数值型分类 java /** * KNN分类器 * @author ysh 1208706282 * */public class KNN { Set labelSet; List samples; /** * 样本 * @author Administrator * */ static class Sample
逻辑回归 随机梯度下降 批梯度下降 二分类问题 不带正则项 java /** * 逻辑回归 随机梯度下降 批梯度下降 二分类问题 * @author Administrator * */public class LR { List samples; List paramers; static class Sample{ Double label; List feature;
感知机 java /** * 感知机 解决二分类问题 1,-1 * @author ysh 1208706282 * */public class Perceptron { double weight[]; List samples; static class Sample{ Double label; List feature;
二叉排序的创建,删除,遍历,查找 #include using namespace std;typedef struct Node{ int val; Node *left; Node *right;}Node,*PNode;void insert(PNode &p,int key){ if(p == NULL){ p = new Node;