- 博客(25)
- 收藏
- 关注
原创 Python生成数组
c = ones((4, 1))d = random.rand(1, 4)e = c+dprint e[[ 1.1846909 1.91747555 1.36506901 1.39017505] [ 1.1846909 1.91747555 1.36506901 1.39017505] [ 1.1846909 1.91747555 1.36506901 1
2017-02-27 21:57:35 3765
原创 list和set
a = ['a', 'b', 'c', 'd']b = ['a', 'b', 'x', 'y']c = a+bprint list(set(c))a = [1, 2, 3, 4, 5, 1, 2, 3]print list(set(a))
2017-02-27 10:42:47 282
转载 python numpy数组的几种排序方式
二维数组a:1 43 11、ndarray.sort(axis=-1, kind='quicksort', order=None)使用方法:a.sort参数说明:axis:排序沿着数组的方向,0表示按行,1表示按列kind:排序的算法,提供了快排、混排、堆排order:不是指的顺序,以后用的时候再去分析这个作用效果
2017-02-27 09:25:51 5749
原创 numpy数组拼接方法介绍
数组拼接方法一思路:首先将数组转成列表,然后利用列表的拼接函数append()、extend()等进行拼接处理,最后将列表转成数组。示例1:>>> import numpy as np>>> a=np.array([1,2,5])>>> b=np.array([10,12,15])>>> a_list=list(a)>>> b_list=list(b)
2017-02-27 09:18:33 298
转载 python的常见矩阵运算
Python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。1.numpy的导入和使用from numpy import *;#导入numpy的库函数import numpy as np; #这个方式使用numpy的函数时,需要以np.开头。12122.矩阵的创建由一维或二维数据创建矩阵from numpy import *;a1=a
2017-02-24 13:52:30 582
原创 sklearn ElasticNet
ElasticNet(弹性网络)ElasticNet 是一种使用L1和L2先验作为正则化矩阵的线性回归模型。就是同时使用L1正则和L2正则作用于线性模型。公式:从公式可以看出也是叠加了L1和L2正则,然后具有不同的参数
2017-02-24 09:40:56 1465
原创 pycharm使用技巧
JetBrains家的IDE很多技巧是通用的,说一些自己日常用得多但不一定仅限于PyCharm的技巧:`ctrl+alt+L`,格式化代码,曾经用Eclipse的时候,格式化代码一定要先选中某个区域的代码块再进行格式化,用了JetBrains的IDE之后就习惯性地格式化一下,还必须手贱多格式化几次才舒服,不过有后遗症,以后到各种编辑框中总喜欢`ctrl+alt+L`几下才舒服`alt+en
2017-02-24 09:05:37 1965
原创 sklearn.preprocessing.PolynomialFeatures类的使用
在之前的代码中多次出现了使用sklearn.pipeline.Pipeline和sklearn.preprocessing.PolynomialFeatures这两个类。我在找相关资料的时候发现很少有写这方面的文章和博客。除了官网的英文文档,其实这个文档写的非常好。但考虑到自己的英文水平有限,于是想写点什么来记录这两个类。1、sklearn.preprocessing.PolynomialFe
2017-02-23 17:42:10 794
原创 python map reduce filter
1、map()说明: 对sequence中的item依次执行function(item),执行结果输出为list。例子:def g(x): return x*xprint map(g, range(0, 5))print map(lambda x, y: x+y, range(5), range(5, 10))注意:想要输入多个序列,需要支持多个参数
2017-02-23 13:58:32 212
原创 python numpy使用
1、np.arange([start,] end [, step])#与list的range相似import numpy as npprint np.arange(10)print np.arange(1, 10, 2)[0 1 2 3 4 5 6 7 8 9][1 3 5 7 9]2、np.zeros(tupleA)#产生一个tupleA维度大小的矩阵,且初始全为0import
2017-02-23 10:38:35 299
原创 python numpy库
记录几个numpy中经常用到的函数创建数组NumPy 的核心是数组(arrays)。具体来说是多维数组(ndarrays)import numpy as npa = np.array((0, 1, 2, 3, 4))b = np.array([0, 1, 2, 3, 4])c = np.arange(5)d = np.linspace(0, 10, 5) #
2017-02-22 14:55:02 239
原创 python map()
map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。1、对可迭代函数'iterable'中的每一个元素应用‘function’方法,将结果作为list返回。来个例子:>>> def add100(x):... return x+100... >>> hh = [11,22,33]>>> map
2017-02-22 12:28:20 272
原创 python strip()
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符注意:1. 当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')例子:a=' Hello World 'a.strip()Out[18]:
2017-02-22 10:54:27 339
原创 python enumerate()
enumerate 函数用于遍历序列中的元素以及它们的下标:>>> for i,j in enumerate(('a','b','c')): print i,j 0 a1 b2 c>>> for i,j in enumerate([1,2,3]): print i,j 0 11 22 3>>> for i,j in enumerate
2017-02-22 10:39:52 323
原创 sklearn——朴素贝叶斯文本分类6
使用了countVectorizer和TfidfVectorizer两个统计统计模型,来比较使用哪个模型效果更好(其实都知道tfidf比较好,数学之美中比较好讲解),我们将通过图像可以看出两个统计模型的效果,并且使用了交叉验证#使用交叉验证from sklearn.datasets import fetch_20newsgroupsfrom sklearn.cross_validation i
2017-02-21 16:48:56 1402
原创 sklearn——朴素贝叶斯文本分类5
在这次的贝叶斯试验中,用到了交叉验证,就是假如把数据集分成10份,每次取其中的一份作为test数据,会得到10个测试的准确率,我们可以求10份的平均值,作为这一次的准确率。当我们求出测试集的矩阵大小为(18846, 173452),我们可以看出17万个词,其实在选择特征时用不了这么多,接下来我们看一下选择特征维数为多少时没会出现好的结果。代码:from sklearn.datasets i
2017-02-17 17:18:27 1742
原创 sklearn——朴素贝叶斯文本分类4
把数据去掉'headers', 'footers', 'quotes',准确率反而降低了from sklearn.datasets import fetch_20newsgroupsnews=fetch_20newsgroups(subset='all',remove=('headers', 'footers', 'quotes'))from sklearn.cross_validatio
2017-02-17 15:08:33 792
原创 NTLK使用二
使用nltk去除停用词import nltksent = "I am a student"word_list = nltk.word_tokenize(sent)print(word_list)from nltk.corpus import stopwords# 先token⼀一把,得到⼀一个word_list# ...# 然后filter⼀一把filtered_words =
2017-02-17 12:46:29 684
原创 NLTK使用
Sentence Tokenize(分割句子)1、直接使用sent_tokenizefrom sklearn.datasets import fetch_20newsgroupsnews = fetch_20newsgroups(subset='train')X,y = news.data,news.targettext = X[0]from nltk.tokenize impor
2017-02-15 15:43:14 4033
原创 NLTK下载
我用的是anaconda,一开始以为用anaconda包对nltk进行安装,后来发现不能用,总会报错:Resource 'tokenizers/punkt/english.pickle' not found. Please use the NLTK Downloader to obtain the resource:后来查资料发现还需要下载一些包,下面说一下过程在控制台中输入以下代码
2017-02-13 11:07:25 1360
原创 期望和方差
期望定义设P(x)P(x)是一个离散概率分布函数,自变量的取值范围为{x1,x2,⋯,xn}。其期望被定义为:E(x)=∑k=1nxkP(xk)设p(x)p(x)是一个连续概率密度函数。其期望为:E(x)=∫+∞−∞xp(x)dx方差定义方差是一种特殊的期望,被定义为:
2017-02-04 16:11:45 479
原创 生成算法和判别算法
1) 判别学习算法:- 直接学习p(y|x),即给定输入特征,输出所属的类- 或学习得到一个假设hθ(x),直接输出0或12) 生成学习算法:- 对p(x|y)进行建模,p(x|y)表示在给定所属的类的情况下,显示某种特征的概率。处于技术上的考虑,也会对p(y)进行建模。- p(x|y)中的x表示一个生成模型对样本特征建立概率模型,y表示在给定样本所属类的条件下
2017-02-04 10:57:29 869
转载 机器学习岗面试点滴聚集
面试技术层面主要分为四块:编程基础,专业知识基础,机器学习理论和实战经验。具体准备方法可以参考:1. 编程基础首先选择一门语言,然后上Leetcode粗暴的刷题,配以《剑指offer》,效果更佳,大部分面试笔试中数据结构部分就小菜一碟了!刷题过程中注意多做总结,先思路,再上代码,事半功倍!2.专业知识基础不管CS非CS这种时候肯定都忘差不多了,计算机网络
2017-02-02 16:45:39 922
原创 机器学习笔记——牛顿法
吴恩达在机器学习中讲到了牛顿法,再次做一个通俗的解释1、求解方程。并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x) = f(x0)+(x-x0)f'(x0)求解方程f(x)=0,即f(x0)+(x-x0)*f'(x0)=0,求解x = x1=x0-f(x0)/f'
2017-02-02 12:39:57 461
原创 数学分布
1. 概率密度函数假如我们要预测明天的下雨量,x表示下雨的量,f(x)就表示为概率密度,我们随便画一个概率密度,他们的关系如下:其中概率密度函数f(x)并不代表概率,只是代表当前x点的概率密度,类似于速度不代表位移一样,我们把所有可能发生事件概率相加应该为1(上图面积):∫+∞−∞f(x)dx=1其中f(x)>=0,也可以计算下雨量在某个
2017-02-02 11:50:37 703
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人