- 博客(44)
- 资源 (3)
- 收藏
- 关注
原创 anaconda2和anaconda3共存,导致conda环境混乱,安装模块错误
CondaEnvironmentNotFoundError: Could not find environment: C:\ProgramData\Anaconda2\envs\anaconda3\envs\anaconda3 .You can list all discoverable environments with `conda info --envs`.anaconda2和anac
2018-01-23 11:25:54 8768 1
原创 conda创建新环境,安装tensorflow,启动对应环境的spyder,并安装新的packages
创建新的环境,并安装tensorflow# Python 3.5 $ conda create -n tensorflow python=3.5$ source activate tensorflow $ conda install -c conda-forge tensorflow 启动对应tensorflow环境的spyder# 激活$ source activate
2018-01-22 22:05:22 5904
原创 【编程练习】打印1到n位数
// 考虑大数,超过int,超过long能表达的范围// 用大小为n的数组来表示每一位数public static void printMax(int n) { // n位数组全排列 if (n <= 0) return; int[] num = new int[n]; printMax(num, n, 0)
2017-09-19 21:22:04 797
原创 【特征工程】连续数据特征离散化的方法
离散化背景连续数据经常采用离散化处理之后再放入模型。离散化可以理解为提取特征的过程,比如在LR模型,由于是广义线性模型表达能力有限,因此通过特征离散化来了提高非线性学习能力主要方法等距离散取值范围均匀划成n等份,每份的间距相等等频离散均匀分为n等份,每份内包含的观察点数相同优化离散大致有两类方法: 1. 卡方检验方法:(统计样本的实际观测值与理论推断值之间的偏离程度,卡方值越大,越不符合;卡方值越
2017-09-13 10:09:21 9998 1
原创 通过mnist数字识别理解卷积神经网络
背景:基于学习的目的,想要熟悉深度学习的算法,实现DNN和CNN的代码 任务描述:识别mnist数据集中的手写数字,图像大小28*28,灰度 版本区别: 代价函数 激活函数 输出层 参数初始化 正则项 准确率 network2: 交叉熵 sigmoid sigmoid w-(0,1/√n_in) 2范数 30个,95.45 100个,98% network3
2017-09-06 15:27:30 1372
原创 单链表环的系列问题,及图解
给定一个单链表,只给出头指针h:1、如何判断是否存在环?如果有两个头结点指针,一个走的快,一个走的慢,那么若干步以后,快的指针总会超过慢的指针一圈。2、如何知道环的长度?第一次相遇(超一圈)时开始计数,第二次相遇时停止计数。3、如何找出环的连接点在哪里?相遇点C到连接点的距离=头指针到连接点的距离,因此,分别从相遇点C、头指针A开始走,相遇的那个点就是连接点B。
2017-09-02 23:33:23 603
原创 【编程练习】单链表逆序Java实现
取出原始链表的第一个节点A,然后将该节点作为新链表的头节点。对原始链表遍历一次,就完成了这个工作,所以这个算法的复杂度为O(n)。old_head和 new_head分别表示原始链表的头节点和新链表的头节点。public class LinkedListReverse { static class ListNode{ int data; ListNode ne
2017-08-12 17:32:17 1857
原创 【推荐系统】协同过滤(CF)算法详解,item-base,user-based,SVD,SVD++
协同过滤算法协同过滤(Collaborative Filtering, 简称 CF)是利用集体智慧的一个典型方法。要理解什么是协同过滤 ,首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。CF算法是推荐算法的一个大分支,基本思想是推荐相似
2017-07-28 17:05:38 23726 6
原创 【推荐系统】特征值分解(谱分解)和奇异值分解(SVD),即在PCA上的应用
特征值分解(谱分解EVD)和奇异值分解(SVD),即在PCA上的应用1. 概念特征值分解和奇异值分解在机器学习领域都有着广泛的应用。两者有着很紧密的关系,二者的目的都是一样,就是提取出一个矩阵最重要的特征。1.1特征值如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式:这时候λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量(实对称矩阵不同的特征值对应的特征向量是相互
2017-07-28 11:39:36 11958 2
原创 【机器学习】交叉验证,K折交叉验证的偏差和方差分析
交叉验证 部分参考:模型选择中的交叉验证方法综述,山西大学,范永东(这是一篇硕士论文,原文内容有点啰嗦,存在一些错误。本文对其交叉验证部分校对整理)交叉验证是一种通过估计模型的泛化误差,从而进行模型选择的方法。没有任何假定前提,具有应用的普遍性,操作简便, 是一种行之有效的模型选择方法。1. 交叉验证的产生人们发现用同一数据集,既进行训练,又进行模型误差估计,对误差估计的很不准确,这就是所说的
2017-07-24 11:03:58 13039
原创 【机器学习】梯度下降法的证明
梯度下降法,又称最速下降法、梯度法无约束最优化领域中最简单的算法下降后的函数值,寻找下降的方向d1. 名字释义最速下降法只使用目标函数的一阶导数信息,并且,它的本意是取目标函数值“最快下降”的方向作为搜索方向。2. 函数值下降最快的方向先说结论:沿负梯度方向 d=−gk ,函数值下降最快。证明:对做一节泰勒展开:PS:一阶泰勒展开式一般
2017-07-13 16:56:49 1894
原创 【机器学习】Goldstein-Armijo line-search
http://note.youdao.com/noteshare?id=55778bc1cfe1e8e4cac3c58cf8d9282c&sub=0F00E96EFAC448B68A39B3C100F22137
2017-07-13 14:52:20 1901
原创 K近邻抠图(KNN matting)
概念KNN matting提出了基于KNN的拉普拉斯矩阵计算方法,通过KNN构建邻接矩阵,进而得到度矩阵和拉普拉斯矩阵,带入α\alpha的求解方程中。抠图抠图技术,把图像中一部分从其他部分分开出来。将图像分为两层,分出来那层成为前景层,图像中的其他部分称为背景层。 图像中每一点都是由前景颜色和背景颜色组合而成,其中前景颜色所占的比重称为alpha因子。颜色组合方程: I=αF+(1−α)BI
2017-07-07 22:49:32 9782 2
原创 引导滤波Guided Filter
概念局部线性模型该模型认为,某函数上一点与其邻近部分的点成线性关系,一个复杂的函数就可以用很多局部的线性函数来表示,当需要求该函数上某一点的值时,只需计算该点线性函数的值并做平均即可。应用于图像假设在一个局部窗口内,满足一个线性关系 I 引导图像 q 滤波后的图像 p 原始图像 引导图像做线性变换之后,要与原始图像尽量接近,且模型尽量简单。 1. 假设图像是一个二维函数,且输入输出在
2017-07-07 16:06:22 970
原创 01背包-动态规划-Java实现
import java.util.*;public class test { public static int getMaxValue(int[] weight, int[] value, int w, int n) { int[][] table = new int[n + 1][w + 1]; for (int i = 1; i <= n; i++) {
2017-07-05 16:46:58 4419 1
原创 数据挖掘的一般过程
数据挖掘的一般过程本文主要参考了一篇文章(最后附),那篇文章不太全面,因此加入了自己一点理解。由于实践经验太少,水平有限,希望大神指正。 1. 数据集选取或构造根据任务的目的,选择数据集。或者从实际中构造自己需要的数据。2. 数据预处理确定数据集后,就开始对数据进行预处理使得数据能够为我们所用了。数据预处理提高数据质量:准确性、完整性和一致性,包括数据清理、数据集成、数据规约和数据变换方法。 (
2017-06-15 10:13:58 66904 1
原创 【机器学习】特征工程概述
特征工程“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。”1.概念 [维基百科:特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过程。]通俗的说,就是尽可能的从原始数据中获取更多信息,从而使得预测模型达到最佳。简而言之,特征工程是一个把原始数据变成特征的过程,这些特征可以很好的描述数据,并且利用它们建立的模型在未知数据上表现性能可以达到最优。2.
2017-06-14 16:15:12 4026
原创 笔试之排序算法(二)
排序(二)(升序)以下都不是基于比较的算法,它们都是线性时间复杂度桶排序额外条件:输入数据 Al,A2 ,.. ., AN 必须只由小于M 的正整数组成算法思想使用一个大小为 M 称为Count的数组,它被初始化为全0Count有M个元素,即M个桶,且桶初始化为空当读入Ai时,Count[i]加1在所有的输入数据读入后,扫描数组Count,打印出排序后的表性能分析算法用时O(M+N),即O
2017-06-08 11:42:16 372
原创 笔试之排序算法(一)
排序(升序)0. 冒泡排序0.1 算法思想临近的数字两两进行比较,逆序则交换,一趟过去最大的元素被放到最后一位。再对前n-1个元素进行上述操作,直到第一个元素0.2 性能分析最坏情况: 比较次数:(N-1)+(N-2)+……+2+1=N(N-1)/2~$N^2/2$交换次数:同上最好情况: 比较次数:(N-1)+(N-2)+……+2+1=N(N-1)/2~$N^2/2$交换次数:0
2017-06-06 12:28:14 663
原创 【数据结构和算法】面试中的红黑树
红黑树1. 数据结构定义在二叉查找树平衡的情况下,才能保证最坏查找时间为lgN但2-3树要维护两种类型不同的节点,额外开销太大红黑树:红链接 用两个2-节点代替3-节点;黑链接 就是2-3树中的2-节点 2-3树 等价转换成 红黑树public class RedBlackBST<Key extends Comparable<Key>, Value>{ private Node
2017-06-01 10:32:47 1049
原创 【Java】如何创建内部类的实例?
1.问题:首先看一段代码:public class Test { //创建内部类Test2 public class Test2 { private double r; } public static void main(String[] args) { Test2 myTest2 = new Test2(); //创建Test2类的实例
2017-04-11 16:32:44 2013
原创 【数据挖掘】三次指数平滑法
概念:时间序列的态势具有稳定性或规则性,所以时间序列可被合理地顺势推延;他认为最近的过去态势,在某种程度上会持续到未来,所以将较大的权数放在最近的资料。对比:简单的全期平均:对时间数列的过去数据一个不漏地全部加以同等利用移动平均法:不考虑较远期的数据,并在加权移动平均法中给予近期资料更大的权重指数平滑法:兼容了全期平均和移动平均所长,不舍弃过去的数据,但是仅给予逐渐减弱
2017-03-20 15:11:39 4182
转载 【数据挖掘】关联规则的术语及定义
项目:交易数据库中的一个字段,对超市的交易来说一般是指一次交易中的一个物品。例如,客户在某次交易中购买了“面包”和“牛奶”,则“面包”和“牛奶”代表了2个不同的项目。 交易:某个客户在一次交易中,发生的所有项目的集合。在上例中,交易为:{“面包”,“牛奶”}。 项目集:包含若干个项目的集合。项目集可能是一个交易,也可能不是一个交易,但一个交易一定是一个项目集。上例中{“
2017-03-16 17:27:39 2075
原创 【机器学习】GBDT(Gradient Boosting Decision Tree)
GBDT(Gradient Boosting Decision Tree),迭代决策树,一种迭代的决策树算法,该算法由多棵决策树组成,所有树的输出结果累加起来就是最终答案。它在被提出之初就和SVM一起被认为是泛化能力(generalization)较强的算法。近些年更因为被用于搜索排序的机器学习模型而引起大家关注。分支的顺序:最小均方差每个人的预测误差平方和 除以 N。被预测出错的人数越多,错的越离
2017-03-16 09:56:29 814
原创 【机器学习】Boosting&Adaboost
Boosting由来Kearns & Valiant (1984) PAC学习模型 提出问题: 1) 强学习算法:存在一个多项式时间的学习算法以识别一组概念,且识别的正确率很高。 2) 弱学习算法:识别一组概念的正确率仅比随机猜测略好。 3) 弱学习器与强学习器的等价问题。如果两者等价,只需找到一个比随机猜测略好的学习算法,就可以将其提升为强学习算法。Boosting概念用来提高弱分类
2017-03-15 11:21:13 954
原创 【机器学习】KKT条件
概念:KTT条件是指在满足一些有规则的条件下, 一个非线性规划(Nonlinear Programming)问题能有最优化解法的一个必要和充分条件. 这是一个广义化拉格朗日乘数的成果. 一般地, 一个最优化数学模型的列标准形式参考开头的式子, 所谓 Karush-Kuhn-Tucker 最优化条件,就是指上式的最优点x∗必须满足下面的条件: - 1. 约束条件满足gi(x∗)≤0,i=1,2,…,
2017-03-14 22:53:48 1439
转载 【数据挖掘】异常检测
简介异常检测的基本思想:若发生了小概率事件,就认为出现了异常。常用的异常检测方法是利用高斯密度函数,计算数据出现的概率,如果发现了概率小于某个阈值的数据,就认为该数据是异常的。异常检测也是一种模式二分类方法,但两类数据严重不平衡,异常数据要显著少于正常数据。异常检测通常只需要对正常数据进行建模。异常检测还可以用于数据清洗或剪枝,减少过拟合提升性能。基于高斯(
2017-03-13 22:28:16 7143
转载 漫谈:机器学习中距离和相似性度量方法
在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如 K 最近邻(KNN)和 K 均值(K-Means)等等。根据数据特性的不同,可以采用不同的度量方法。一般而言,定义一个距离函数 d(x,y), 需要满足下面几个准则:1) d(x,x) = 0 // 到自己的
2017-03-13 17:05:55 400
原创 【机器学习】KNN k近邻分类算法
概念“近朱者赤,近墨者黑”,由你的邻居来推断出你的类别。 从训练集中找到和测试数据最接近的k条记录,然后根据他们的主要分类来决定新数据的类别。该算法涉及3个主要因素:训练集、距离或相似的度量、k的大小。步骤算距离:给定测试对象,计算它与训练集中的每个对象的距离找邻居:圈定距离最近的k个训练对象,作为测试对象的近邻做分类:根据这k个近邻归属的主要类别,确定测试对象的分类主要问题k的大小如何选
2017-03-13 16:33:20 719
原创 【数据挖掘】用户画像
概念区分Persona和Profile,经常都翻译为用户画像,二者的概念有相关的部分,但是也有区别。 - Persona,也叫做用户角色,是描绘抽象一个自然人的属性,用于产品和用户调研。 - Profile,是和数据挖掘、大数据息息相关的应用。通过数据建立描绘用户的标签。 本文讨论的是Profile。 作用精准营销,分析产品潜在用户,针对特定群体利用短信邮件等方式进行营销; 用户统计 数
2017-03-13 10:00:43 8234 2
原创 【机器学习】k-fold cross validation(k-折叠交叉验证)
k-折叠交叉验证就是将训练集的1/k作为测试集,每个模型训练k次,测试k次,错误率为k次的平均,然后平均率最小的模型Mi。
2017-03-13 09:27:04 40224 3
转载 java内部类的实例化
假设外部类叫Out,内部类叫In,那么我们可以使用Out.In in = new Out().new In()来实例化内部类的对象,具体示例代码如下:class Out {private int age = 12;class In {private int age = 13;public void print() {int age = 14;System.out
2016-03-14 20:19:43 636
原创 【python】获取指定日期的后(前)一(n)天
import datetime # 提供操作日期和时间的类n=1date = datetime.datetime(2015, 10, 28) + datetime.timedelta(days=n) # 2015-10-29 00:00:00time_format = cur_date.strftime('%Y%m%d') # '20151029'
2016-01-15 11:15:21 40346
动态规划_背包九讲
2017-10-13
Hadoop2.8 可用 eclipse插件
2017-10-13
C程序设计语言-高清-分目录-可标注版-机械工业出版社
2017-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人