- 博客(41)
- 收藏
- 关注
原创 LeetCode 123 Best Time to Buy and Sell Stock III
1.题目 Say you have an array for which the ith element is the price of a given stock on day i.Design an algorithm to find the maximum profit. You may complete at most two transactions.Note: You may not
2016-10-27 20:28:49
346
原创 LeetCode 122 Best Time to Buy and Sell Stock II
1.题目an array for which the ith element is the price of a given stock on day i.Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one
2016-10-27 20:22:24
353
原创 LeetCode 121 Best Time to Buy and Sell Stock I
1)题目: Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (ie, buy one and s
2016-10-27 20:14:41
338
原创 LeetCode: 238. Product of Array Except Self
word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单、高效,因此引起了很多人的关注。由于 word2vec 的作者 Tomas Mikolov 在两篇相关的论文 [3,4] 中并没有谈及太多算法细节,因而在一定程度上增加了这个工具包的神秘感。一些按捺不住的人于是选择了通过解剖源代码的方式来一窥究竟,出于好奇,我也成为了他们中的一员。读完
2016-10-26 17:03:04
323
转载 word2vec 中的数学原理详解
word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单、高效,因此引起了很多人的关注。由于 word2vec 的作者 Tomas Mikolov 在两篇相关的论文 [3,4] 中并没有谈及太多算法细节,因而在一定程度上增加了这个工具包的神秘感。一些按捺不住的人于是选择了通过解剖源代码的方式来一窥究竟,出于好奇,我也成为了他们中的一员。读完
2016-10-08 03:49:56
549
翻译 一种基于神经网络的对话模型
摘要 对话模型在自然语言理解和机器智能方面是一个非常重要的任务。尽管之前已经有一些方法,但是他们受限于特定的领域(比如:预定机票)而且需要手动指定规则。在这篇文章中,我们针对这个任务展现了一种简单的方法,这种方法使用最近被提出的sequece to sequece 框架。我们的模型通过给定之前的对话中的句子来预测下一个句子的方式进行交谈。我们模型的有点就是它可以进行端到端的训练,因此需要风少的手
2016-09-15 00:12:24
5786
原创 2个鸡蛋从100层摔(N个鸡蛋从M楼层摔)
一、题目:有一栋楼共100层,一个鸡蛋从第N层及以上的楼层落下来会摔破, 在第N层以下的楼层落下不会摔破。给你2个鸡蛋,设计方案找出N,并且保证在最坏情况下, 最小化鸡蛋下落的次数。(假设每次摔落时,如果没有摔碎,则不会给鸡蛋带来损耗)二、解题思路我们先假设最坏情况下,鸡蛋下落次数为x,即我们为了找出N,一共用鸡蛋做了x次的实验。 那么,我们第一次应该在哪层楼往下扔鸡蛋呢?先让我们假设第一次是在第y
2016-08-02 14:53:48
1571
原创 Python实现mapreduce程序
一:目的 之前面试曾遇到面试官让用python代码实现mapreduce中最简单的demo WordCount,由于之前一直用java来写hadoop程序,突然转到python,是我产生了质疑,python与hadoop应该是不兼容的,即使写出来程序,到时候怎么运行?一头雾水最后导致面试失败。后来通过查阅资料,研究mapreduce的底层实现,发现尽管Hadoop框架是用Java编写的,但是为H
2016-07-14 14:52:34
9504
1
原创 2.2 深度学习环境配置分部详解
OS: Linux: Ubuntu 14.04安装:Pip (Python 2.7.9或以上自带pip): sudo apt-get install pyton-pip尝试安装scikit-neuralnetwork: 需要 numpy scipy theanosudo pip install scikit-neuralnetwork 错误:SystemError: cannot compi
2016-07-11 19:55:09
2934
3
原创 2.1 深度学习常用软件包和环境配置
常用软件包:Theano Pylearn2 scikit-neuralnetworkCaffeDeeplearning4jTorchhttp://deeplearning.net/software_links/环境配置Linux: UbuntuEclipsePyDevPythonCUDAGPU: https://developer.nvidia.com/cuda-gpus神经网络算法 (
2016-07-11 19:53:19
1716
原创 1.1 深度学习 基本概念
什么是深度学习? 深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的算法。深度学习什么时间段发展起来的? 其概念由著名科学家Geoffrey Hinton等人在2006年和2007年在《Sciences》等上发表的文章被提出和兴起。深度学习能用来干什么?为什么
2016-07-11 10:06:32
2003
原创 8.4 聚类(Clustering) hierarchical clustering 层次聚类应用
python实现:from numpy import *class cluster_node: def __init__(self,vec,left=None,right=None,distance=0.0,id=None): self.left=left self.right=right self.vec=vec self.
2016-07-07 11:25:25
623
原创 8.3 聚类(Clustering) hierarchical clustering 层次聚类
假设有N个待聚类的样本,对于层次聚类来说,步骤: 1、(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度; 2、寻找各个类之间最近的两个类,把他们归为一类(这样类的总数就少了一个); 3、重新计算新生成的这个类与各个旧类之间的相似度; 4、重复2和3直到所有样本点都归为一类,结束 整个聚类过程其实是建立了
2016-07-07 11:24:02
798
原创 8.2 聚类(Clustering) K-means算法应用
1.python实现kmean 算法import numpy as npdef kmeans(X,k,maxIt): numPoints,numDim=X.shape dataSet=np.zeros((numPoints,numDim+1)) dataSet[:,:-1]=X centroids=dataSet[np.random.randint(numPoints,
2016-07-07 00:05:34
860
原创 8.1 聚类(Clustering) K-means算法
归类: 聚类(clustering) 属于非监督学习 (unsupervised learning) 无类别标记(class label)举例: K-means 算法:3.1 Clustering 中的经典算法,数据挖掘十大经典算法之一 3.2 算法接受参数 k ;然后将事先输入的n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一
2016-07-07 00:03:26
632
原创 7.7 回归中的相关度的实现
import numpy as npimport mathdef computeCorrelation(x,y): xBar=np.mean(x) yBar=np.mean(y) SSR,varX,varY=0,0,0 for i in range(len(x)): diffXBar=x[i]-xBar diffYBar=y[i]-y
2016-07-06 20:40:20
380
原创 7.6 回归中的相关度和R平方值
皮尔逊相关系数 (Pearson Correlation Coefficient): 1.1 衡量两个值线性相关强度的量 1.2 取值范围 [-1, 1]: 正向相关: >0, 负向相关:<0, 无相关性:=0 1.3 计算方法举例:X Y 1 10 3 12 8 24
2016-07-06 20:38:48
2279
原创 7.6 非线性回归算法应用
Python 实现:import numpy as npimport random#m demoted the number of examples here,not the number of featuredef gradientDescent(x,y,theta,alpha,m,numIterations): xTrans=x.transpose() for i in r
2016-07-06 20:00:53
529
原创 7.5 非线性回归算法
概率:1.1 定义 概率(P)robability: 对一件事情发生的可能性的衡量 1.2 范围 0 <= P <= 1 1.3 计算方法: 1.3.1 根据个人置信 1.3.2 根据历史数据 1.3.3 根据模拟数据 1.4 条件概率: Logistic Regression (逻辑回
2016-07-06 19:59:06
1174
原创 7.4 多元线性回归应用
例子 一家快递公司送货:X1: 运输里程 X2: 运输次数 Y:总运输时间目的,求出b0, b1,…. bp:y_hat=b0+b1x1+b2x2+ … +bpxp Python代码:from numpy import genfromtxtimport numpy as npfrom sklearn import linear_modeldeliveryData=genfro
2016-07-06 18:09:08
616
原创 7.3 多元线性回归算法
与简单线性回归区别(simple linear regression) 多个自变量(x)多元回归模型 y=β0+β1x1+β2x2+ … +βpxp+ε 其中:β0,β1,β2… βp是参数 ε是误差值多元回归方程 E(y)=β0+β1x1+β2x2+ … +βpxp估计多元回归方程: y_hat=b0+b1x1+b2x2+ … +bpx
2016-07-06 18:07:32
1817
原创 7.2 简单线性回归应用
简单线性回归模型举例:汽车卖家做电视广告数量与卖出的汽车数量: 1.1 如何练处适合简单线性回归模型的最佳回归线? 使sum of squares最小1.1.2 计算 分子 = (1-2)(14-20)+(3-2)(24-20)+(2-2)(18-20)+(1-2)(17-20)+(3-2)(27-20) = 6 + 4 + 0 + 3 + 7 = 20分母
2016-07-06 17:11:54
592
原创 7.1 简单线性回归算法
前提介绍:为什么需要统计量?统计量:描述数据特征0.1 集中趋势衡量0.1.1均值(平均数,平均值)(mean){6, 2, 9, 1, 2}(6 + 2 + 9 + 1 + 2) / 5 = 20 / 5 = 40.1.2中位数 (median): 将数据中的各个数值按照大小顺序排列,居于中间位置的变量 0.1.2.1. 给数据排序:1, 2, 2, 6, 9 0.1.2.
2016-07-06 17:06:29
828
原创 6.4 支持向量机应用(下)
利用SVM进行人脸识别实例:from __future__ import print_functionfrom time import timeimport loggingimport matplotlib.pyplot as pltfrom sklearn.cross_validation import train_test_splitfrom sklearn.datasets impor
2016-07-06 15:29:20
387
原创 6.3 支持向量机算法(下)
SVM算法特性: 1.1 训练好的模型的算法复杂度是由支持向量的个数决定的,而不是由数据的维度决定的。所以SVM不太容易产生overfitting 1.2 SVM训练出来的模型完全依赖于支持向量(Support Vectors), 即使训练集里面所有非支持向量的点都被去除,重复训练过程,结果仍然会得到完全一样的模型。 1.3 一个SVM如果训练得出的支持向量个数比较小,SVM训练出的
2016-07-06 15:27:56
407
原创 1. 冒泡排序
1、基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。2、实例 3、java实现package com.sort;//稳定public class 冒泡排序 { public static void main(String[] ar
2016-07-06 09:49:51
288
原创 6.2 支持向量机应用(上)
1 sklearn简单例子# -*- coding:utf-8 -*-from sklearn import svmX=[[2,0],[1,1],[2,3]]y=[0,0,1]clf=svm.SVC(kernel='linear')clf.fit(X,y)print clfprint clf.support_vectors_ #get support vectorsprint clf
2016-07-06 09:39:10
510
原创 6.1 支持向量机算法(上)
背景:1.1 最早是由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis 在1963年提出 1.2 目前的版本(soft margin)是由Corinna Cortes 和 Vapnik在1993年提出,并在1995年发表 1.3 深度学习(2012)出现之前,SVM被认为机器学习中近十几年来最成功,表现最好的算法机器学习的一般框架: 训练集 =
2016-07-06 00:03:11
653
原创 5.2 神经网络算法应用
关于非线性转化方程(non-linear transformation function)sigmoid函数(S 曲线)用来作为activation function: 1.1 双曲函数(tanh) 1.2 逻辑函数(logistic function)实现一个简单的神经网络算法NeuralNetwork.pyimport numpy as npdef tanh(x): return
2016-07-05 19:41:41
557
原创 5.1 神经网络算法
背景: 1.1 以人脑中的神经网络为启发,历史上出现过很多不同版本 1.2 最著名的算法是1980年的 backpropagation 多层向前神经网络(Multilayer Feed-Forward Neural Network) 2.1 Backpropagation被使用在多层向前神经网络上 2.2 多层向前神经网络由以下部分组成: 输入层(input lay
2016-07-05 19:33:49
496
原创 4.2 最近邻规则分类算法(KNN)应用
1 数据集介绍:虹膜 150个实例 萼片长度,萼片宽度,花瓣长度,花瓣宽度 (sepal length, sepal width, petal length and petal width)类别: Iris setosa, Iris versicolor, Iris virginica.利用Python的机器学习库sklearn: SkLearnExample.pyfrom skle
2016-07-05 00:30:10
1036
原创 4.1 最近邻规则分类算法(KNN)
综述 1.1 Cover和Hart在1968年提出了最初的邻近算法 1.2 分类(classification)算法 1.3 输入基于实例的学习(instance-based learning), 懒惰学习(lazy learning)例子: 未知电影属于什么类型? 3. 算法详述 3.1 步骤: 为了判断未知实例的类别,以所有已知类别的实例作为参照 选择参数K 计算未知
2016-07-05 00:26:27
4322
原创 3.2 决策树算法应用
PythonPython机器学习的库:scikit-learn2.1: 特性: 简单高效的数据挖掘和机器学习分析 对所有用户开放,根据不同需求高度可重用性 基于Numpy, SciPy和matplotlib 开源,商用级别:获得 BSD许可2.2 覆盖问题领域: 分类(classification), 回归(regression), 聚类(clustering), 降维(di
2016-07-04 19:36:46
732
原创 3.1、决策树算法
什么是决策树/判定树(decision tree)?判定树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布。树的最顶层是根结点。机器学习中分类方法中的一个重要算法构造决策树的基本算法 3.1 熵(entropy)概念: 信息和抽象,如何度量? 1948年,香农提出了
2016-07-04 19:33:45
641
原创 二、基本概念
基本概念:训练集,测试集,特征值,监督学习,非监督学习,半监督学习,分类,回归概念学习:人类学习概念:鸟,车,计算机定义:概念学习是指从有关某个布尔函数的输入输出训练样例中推断出该布尔函数例子:学习 “享受运动” 这一概念:小明进行水上运动,是否享受运动取决于很多因素 天气:晴,阴,雨 温度:暖,冷 湿度:普通,大 风力:强,弱 水温:暖,冷 预报:一样,变化 享受运动:是,否
2016-07-04 19:16:36
375
原创 一、机器学习介绍
机器学习 (Machine Learning, ML)1.1 概念:多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。1.2 学科定位:人工智能(Artificial Intelligence, AI)的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各
2016-07-04 19:10:03
1078
转载 树状数组
一、树状数组是干什么的? 平常我们会遇到一些对数组进行维护查询的操作,比较常见的如,修改某点的值、求某个区间的和,而这两种恰恰是树状数组的强项!当然,数据规模不大的时候,对于修改某点的值是非常容易的,复杂度是O(1),但是对于求一个区间的和就要扫一遍了,复杂度是O(N),如果实时的对数组进行M次修改或求和,最坏的情况下复杂度是O(M*N),当规模增大后这是划不来的!而树状数组干同样的
2016-05-16 11:26:54
248
原创 Storm架构分析
Storm是个实时的、分布式以及具备高容错的计算系统。 1) Storm 特性 1. 易于扩展。对于扩展,你只需要添加机器和改变对应的topology(拓扑)设置。Storm使用Zookeeper进行集群协调,这样可以充分的保证大型集群的良好运行。 2. Storm的容错机能:一旦topology递交,Storm会一直运行它直到topology被废除或者被关闭。而在执行中出现错
2016-04-11 22:18:27
650
转载 kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
一、入门 1、简介 Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kaf
2015-12-30 11:21:21
263
原创 Hadoop2.x的安装与配置
1.vbox构建实验环境2.设置桥接3.SecureCRT3.下载jdk4.修改hosts文件5.下载Hadoop2.x6.修改配置文件1.Hadoop-env.sh2.yarn-env.sh3.slaves4.core-site.xml
2015-10-24 21:55:15
285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人