自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I'm zm

Work hard, play harder, love hardest.

  • 博客(114)
  • 收藏
  • 关注

原创 Java泛型数组

最近使用Java实现队列、栈这些基本的数据结构时,我分别采用了LinkedList列表和ResizeArray可变数来实现,先看看基本的API:/* * 栈API: 抽象出基本的栈的操作 */public interface Stack<T> { /* * 出栈 */ public T pop(); /* * 进栈 */

2017-06-09 17:06:05 3304

原创 Python并行编程——multiprocessing

先看一个小例子:import time# 需要并行的任务def task(): time.sleep(1)start = time.time()for i in range(100000): task()end = time.time()print '串行所用时间:%d 秒'%(end-start) 程序输出:串行所用时间:100000 秒使用multiprocess

2017-05-23 15:08:59 1288

原创 Logistic回归

写在前头,平日里自以为对逻辑回归的理论推导什么的了解很透彻,核心思想也就是一个梯度下降算法而已,实现起来却花了我一整天,具体困扰我的是对于各种矩阵操作的不熟悉以及对于代码结构的设计不当造成的;下面详细展开我的实现啦,多练多练才能真正理清算法的真正漏洞<( ̄ˇ ̄)/读取数据集因为逻辑回归中有大量的矩阵运算,因此我将返回的数据类型设置为矩阵np.mat,当然你也可以使用np.array;但是arra

2017-04-20 21:31:20 964

原创 朴素贝叶斯

数据集sourceData 是一些文本数据,labels是对应的列标签。这是一个网站的评论信息,希望通过朴素贝叶斯分类器来过滤掉比较负面的评论,0表示正常评论,1表示负面评论。可以简单的看到第二个数据中出现了stupid酱紫骂人的语句,那么这是一条负面评论的概率很大。sourceData = [['my', 'dog', 'has', 'flea', 'problems', 'help', 'p

2017-04-18 18:58:42 640

原创 决策树

前言:本系列文章旨在熟悉算法的同时增强编程能力,使用的都是很小的数据集,代码是自己一点点码出来的,如有错误还望指正,O(∩_∩)O谢谢数据集这是一个非常著名的隐形眼镜的数据集,总共有四个属性{age, prescript, astigmatic, tearRate},最后一个是列标签{hard:硬材质,soft:软材质,no lenses:不适合佩戴}。很显然这个数据集是让我们根据各个属性来分类

2017-04-17 21:33:10 622

原创 k-近邻

一个简单的例子关于k近邻算法的理论我就不多说了,直接上一个非常简单快速的实现:下面这个是分类函数,输入参数: 待分类样本testX训练集dataSet训练样本标签dataSetk值在这段代码中,距离计算、k个邻居的求解以及最后投票的规则我都使用函数给出,是因为这三个值可以用不同的方法得到。比如距离计算可以使用欧氏距离、曼哈顿距离、皮尔逊相关系数等等;k个邻居可以是前k个邻居,也可以是以0

2017-04-15 15:33:03 504

原创 Python键盘输入的区别

input会假设你的输入是一个有效的Python表达式,并返回运算结果.

2017-03-31 19:59:57 651

原创 random VS numpy.random

给随机生成器设置seed的目的是每次运行程序得到的随机数的值相同,这样方便测试。numpy.random.seed()不是线程安全的,如果程序中有多个线程最好使用numpy.random.RandomState实例对象来创建或者random.random.seed() 使用RandomState实例来生成随机数数组from numpy.random import RandomStater =

2017-03-10 12:12:00 2767

原创 kdTree

什么是K近邻法K近邻(k-nearest neighbor,k-NN)算法简单、直观:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最近邻的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类。因此,k近邻法不具有显示的学习过程。K近邻法实际上利用训练数据集对特征向量空间进行划分,并作为其分类的“模型”。K值的选择、距离度量及分类决策规则是k近邻法的三个基本要素。kd树

2017-03-03 16:28:39 641

原创 模式匹配——Sunday算法

今天看到一个新的模式串匹配算法,比我在课堂上学的那个KMP简单多了,而且很好理解啊,就是写的时候要特别注意索引的变化,千万不能写错哟!public class Solution { public int strStr(String haystack, String needle) { if(haystack==null||haystack.length()<needle.l

2017-02-15 20:47:49 415

原创 Python拼接图片

最近在写一篇卷积神经网络的论文,有好多实验结果需要整理,本来是用美图秀秀进行图像的拼接,但是发现重复操作太多,而且拼接效果不好,想到用python写个脚本实现,看一个简单的例子: 横向拼接首先我需要将同一张图片的变形拼接为一行,代码如下:import osfrom PIL import ImageUNIT_SIZE = 229 # 单个图像的大小为229*229TARGET_WIDTH =

2017-02-08 20:07:14 32519 3

原创 使用shell脚本批量运行caffe程序

写这个博文的初衷是这样的:老师让我训练LeNet,并且修改它的网络架构(多种变形),然后每一种做N次重复试验求平均值,最后和随机权重的网络进行比较;如此多的训练网络以及如此多重复的内容,便激发了我写shell脚本来自动化运行它;主要的shell脚本#!/usr/bin/env sh folder="/path/"solver="lenet_solver.prototxt" #solver文件保持

2017-01-13 16:42:52 1426

原创 Linux——有用的小函数

遍历指定目录下的文件名#!/bin/bashtraverse(){ folder="/home/shipan/Work/MnistVariant/" for file in ${folder}* do filename=$(basename $file) # file是包含路径的文件名全称,使用basename $file可以提取出文件名

2017-01-13 14:25:07 428

原创 Python脚本中执行shell命令

如下图,其中最后一个0是这个命令的返回值,为0表示命令执行成功; popen():想要获取命令执行的结果,但是没有命令的执行状态。 commands:可以很方便的取得命令的输出(包括标准和错误输出)和执行状态位。commands.getoutput('ls')这个方法只返回执行结果result不返回状态。 在python中调用shell脚本 hello.sh 下面的512是返回的状态码,如果

2016-12-29 14:44:51 43242 4

原创 Hadoop(三)——利用MapReduce求平均成绩

环境配置在linux中使用Eclipse编译运行MapReduce程序请参考这篇文章数据集输入数据集每一行是学生的名字和学生的成绩(一个学生可有多门学科成绩); 在本地生成file1.txt file2.txt file3.txt三个文件并且上传到hdfs上的averageScore文件夹; 源代码 public static class Map extends Mapper<LongWr

2016-12-18 14:10:45 7007 1

原创 Hadoop(二)——WordCount运行和解读

执行WordCount程序1.以hadoop用户进入到linux系统2.启动hadoop3.在home目录下创建一个file文件夹,”~/”表示在home目录下,”/”表示在根目录下。并且在文件夹file内创建两个文本文件file1.txt和file2.txt.4.在HDFS上创建输入文件夹。调用文件系统(FS)Shell命令应使用bin/hadoop fs <args>的形式,因为环境变量

2016-12-13 15:05:38 4645

原创 Python——csv txt文件读写

import csvtxt_file = "train.txt"csv_file = "train.csv"in_txt = csv.reader(open(txt_file, "r"), delimiter = ',')out_csv = csv.writer(open(csv_file, 'w'))out_csv.writerows(in_txt)

2016-12-02 17:30:09 5567

原创 Hadoop(一)——安装以及整体了解

安装折腾了好久最后在这篇文章的指导下完成了Hadoop伪分布式安装,感谢!重要概念在阅读《Hadoop实战》时觉得比较重要的一些概念记录下来。1.MapReduce编程模型的原理 利用一个输入的[key,value]集合来产生一个输出的[key,value]集合:用户自定义的Map函数接收一个输入的[key,value]集合,然后产生一个中间[key,value]集合,MapReduce把所有具

2016-12-02 13:55:55 453

原创 关于caffe的一些笔记

在使用caffe时所写的笔记,如有错误还望指正,O(∩_∩)O谢谢

2016-11-28 09:58:56 1025

原创 ML2016-PM2.5 Prediction

问题根据气象局网站下载的真实观测数据,使用线性回归或者其它方法预测PM2.5的数值。数据数据分为train.csv和test_X.csv:train.csv:下面是原始数据 # 注:我把原始数据的列标签换成了英文,显示如下import pandas as pdtrain = pd.read_csv("train.csv")print train.head(1)''' Date Loc

2016-10-13 19:15:24 5253

原创 Git使用笔记

1.使用git上传本地文件到github

2016-08-17 12:02:32 381

原创 caffe基础

Blob 大多数caffe blob是4D的,格式为 :N*K*H*W N:batch的大小,表示每次训练N个数据样本就进行一次梯度下降(ImageNet 数据集的训练batch=256). K :数据特征的维度,比如输入RGB图像,那么K=3. 下标为(n, k, h, w)的元素的物理地址为((n * K + k) * H + h) * W + w 也有2D的,格

2016-08-08 17:53:05 1516

原创 Linux——bug记录

Syntax error: word unexpected (expecting “do”)我将shell脚本先写到文本txt中,然后进入linux环境修改为sh文件。在运行sh examples/myfile/create_filelist.sh 时,出现错误: Syntax error: word unexpected (expecting “do”)首先:hexdump -C exam

2016-06-23 15:52:49 1198

原创 Vim使用

启动分屏vim -On file1 file2 ...分屏切换ctrl+w:可以发现光标在不同屏中出现,就是切换到不同的屏关闭分屏只保留最后光标停留的那个屏:only

2016-06-16 20:48:40 317

原创 决策树建模

第一个例子是基于假想的服务器日志数据构建决策树,我们利用构建好的决策树来预测用户是否可能成为付费用户。数据集# -*- coding: utf-8 -*-"""Created on Mon May 16 15:31:51 2016@author: ZM"""my_data=[['slashdot','USA','yes',18,'None'], ['google','Fran

2016-05-17 10:42:45 2957

原创 蓄水池抽样算法

问题:在不知道文件总行数的情况下,如何从文件中随机的抽取一行? 通常情况下,我们在已知文件大小时利用rand随机生成一个行数即可。 在不知道行数的情况下,我们首先选择第一行,然后以1/2的概率替换为第二行,然后以1/3的概率替换为第三行,以此类推; 第一行被选择的概率:1∗(1/2)∗(2/3)∗(3/4)...=1/n1*(1/2)*(2/3)*(3/4)...=1/n

2016-05-14 19:27:14 3969

原创 collections.defaultdict

通常情况下在遍历一个数组,找到每个数组里面的每个元素的个数时,我们会选择:bag = {}for word in words: if word not in bag: bag[word] = 1 else: bag[word] += 1像上面那样我们每次都要判断字典中是否有该键,有一个更简单的方法就是使用collections.defaultdi

2016-05-13 09:49:45 1447

原创 pandas.read_csv——分块读取大文件

今天在读取一个超大csv文件的时候,遇到困难: 首先使用office打不开 然后在python中使用基本的pandas.read_csv打开文件时:MemoryError 最后查阅read_csv文档发现可以分块读取。 read_csv中有个参数chunksize,通过指定一个chunksize分块大小来读取文件,返回的是一个可迭代的对象TextFileReader,IO

2016-05-11 16:47:15 78299 6

原创 Anaconda

Anaconda报错Spyder打开错误:pyder crashed during last sessionIf Spyder does not start at all and before submitting a bug report, please try to reset setting to defaults by running Spyder with the command li

2016-05-06 17:16:53 5058

原创 SQL基本语法&SQLite

Databases 数据库是一个数据存储区用于存储、查询和处理数据。数据库存储我们需要的数据并且开放一个和数据交互的接口。大多数科技公司使用数据库来组织数。数据库系统包括数据库管理软件与管理控制、安全和访问控制,语言与数据库接口这些内容。 首先,我们将关注SQL语言一个结构化查询语言。它是用来查询、更新和修改数据库中的数据。SQL SQL是最常见的一种数据库语言,在任何数据专业工具箱

2016-05-06 11:21:34 917

原创 HTML&CSS

Introduction 互联网上有很多信息并不是存在数据库中也不是API格式,这些数据存储网页上。提取这些数据的一个技术就是网页爬虫(web scraping)。 在Python中进行爬虫的过程大概就是:使用requests库加载这个网页,然后使用beautifulsoup 库从这个网页中提取出相关的信息。Webpage Structure 网页是由HyperText Markup

2016-05-06 10:06:23 1067

原创 Reddit网站获赞最高文章/评论的爬取

Reddit 前面我们熟悉了API,学会了如何发出请求,授权以及解析API响应。现在,我们将这些概念串在一起探索一下Reddit网站上的热门文章和评论。 Reddit是一个社区驱动的额分享网站,用户可以提交文章和链接,其他人可以进行upvote(表示喜欢),或者downvote(表示不喜欢)。用户也可以对提交内容进行评价,评价也可以被upvoted 以及downvoted。Reddit有很

2016-05-05 21:08:35 3479

原创 GithubAPI

Introduction在前面学习了一个简单的API(Application Program Interface )国际空间站 International Space Station (ISS),我们可以通过向国际空间站网页服务器发出一个数据请求,并可获得空间站的一些信息。但是通常情况下想要通过API获取一个网站服务器的数据是需要授权的。比如你想利用Reddit API 来获取一些你自己的私人信息

2016-05-05 20:18:46 5693 1

原创 Linux——输出重定向&特殊字符

Appending在前面我们提到过输出重定向:echo "This is all a dream..." > dream.txt如果dream.txt存在,执行上述语句将会覆盖之前的内容。如果这个dream.txt不存在,那么会自动新建一个dream.txt文件,将上述字符串添加进去。这整个过程牵扯了从命令的标准输出(standard output)到文件的标准输入(standard inpu

2016-05-05 16:45:04 2505

原创 Jupyter(IPython)

Jupyter Console Jupyter控制台,原名IPython是一个增强的Python解释器。在之前的shell中我们是利用Python解释器来执行我们的Python脚本文件,而Jupyter加强了这个shell,并添加了一些细节,简化处理数据。 通常在你写数据分析脚本时或者编写原型代码时,你需要快速测试一些代码,此时你会在shell环境下执行它,因为这样很快速。Jupyter

2016-05-05 15:23:01 4124

原创 Git版本控制

Version Control Systems 大型公司在开发一个项目时通常有一个团队进行代码的编写,为了使这些成员之间能进行代码的共享融合,产生了分布式版本控制(version control )系统,为的就是促进协同(collaboration)工作。 版本控制系统有很多,比如Mercurial, Subversion.其中Git是目前最受欢迎的一个。Git是一个命令行工具,在shel

2016-05-05 10:32:21 693 2

原创 Linux——Python程序执行

Command Line Python 前面几篇学的都是如何操作文件系统,创建/修改文件以及在命令行中运行python。学会这些并不能足够了解怎么用Python进行编程,我们还需要学会如何修改和执行python程序。 Create a Python script. Create a virtual environment. Change file permissions.

2016-05-04 21:50:48 883

原创 Linux——Python虚拟环境

Command Line Python在前面一篇中,我们直接在python命令行中运行代码,虽然简单明了,但是命令行是不能保存文件的。因此在开发python程序时,我们需要将python代码存为文件。然后早命令行中用python解释器来执行这个文件。为了使Python解释器可以执行我们的Python代码文件,我们需要在一个空白文件中添加下面这段代码:if __name__ == "__main

2016-05-04 21:23:21 1714

原创 Linux——环境变量&flags

Setting Variables 我们在终端中输入命令,然后命令被执行了,继而产生结果。这一切交互行为都发生在一个叫做bash的shell中。shell是一种用来进行访问和控制计算机的方法。Command-line shells有一个文本界面提供输入命令以及结果显示。graphical shells允许你点击按钮移动鼠标等等。目前有很多unix shells,但是Bash是最受欢迎的一种,并且

2016-05-04 20:21:31 1453 1

原创 Linux——文件操作

Making A File创建文件的方式有好几种,其中touch就是一种。touch命令将会创建一个空文件,比如touch file.txt会在当前目录下创建一个空的file文本文件。之后我们可以对这个文件进行编辑。~$ touch test.txtStandard Streams我们可以通过echo命令来打印文本信息,比如输入echo “Dataquest is awesome”,将会打印D

2016-05-04 19:05:59 1228

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除