python
看穿数据之美
机器学习/深度学习/数据挖掘/推荐算法,微信为oppo62258801(同13011197941),邮箱为lcqbit11@163.com,欢迎学习交流!
展开
-
Tensorflow特征工程-feature_column特征列
在tensorlow中训练模型之前需要将原始数据转换成能输入模型的格式,而feature_column就扮演着这种角色。# 引入feature_column包import tensorflow as tfimport tensorflow.feature_column as fc 下面我们来看下常见的训练数据格式,并在feature_column中找到.原创 2020-10-30 16:26:15 · 1802 阅读 · 0 评论 -
conda安装软件包时报错“appears to be corrupted. The path 'lib/mkl_msg.cat' specified in the package manifest”
在使用conda安装软件时,报错如下“appears to be corrupted. The path ‘lib/mkl_msg.cat’ specified in the package manifest cannot be found”。可以通过下面的命令,删除缓存包重新下载:conda clean --packages --tarballs...原创 2020-03-29 16:34:53 · 6980 阅读 · 0 评论 -
Mac上同时安装python3和python2
系统:Mac已安装环境:Anaconda3,python3由于在平时的项目中,经常由于各种python库的版本不匹配的问题,导致python2和python3的运行环境无法兼容。因此我们可以在上述已安装环境的基础上,再安装python2。具体步骤非常简单,参考下面。先检查当前环境为python3,确认为python3环境。运行命令 conda create --name python27...原创 2020-03-13 15:44:30 · 1206 阅读 · 0 评论 -
安装graphviz
三种方式安装:brew install graphviz conda install graphviz pip install graphviz三种方式可分别单独安装成功如果是通过前两种方式安装完成,在python环境中执行 import graphviz 的命令,发现又报了错如下ModuleNotFoundError: No module named 'graphviz'...原创 2018-10-31 16:44:12 · 4024 阅读 · 1 评论 -
xgboost输出特征重要性排名和权重值
在机器学习实践中,我们要经常用到xgboost框架去训练数据,然后用训练得到的模型再去预测其他未知的数据的标签。在判断训练得到的模型是否合理时,一个很重要的步骤就是查看xgboost模型的特征重要性排序。如果观察得到模型的排名前几的特征都不符合我们正常的思维,那么模型很可能是不稳定或者有问题的。在训练得到模型文件及特征映射文件后,可以通过下面一段代码查看特征排名、特征名称、特征权重值#-...原创 2018-07-29 20:18:48 · 38163 阅读 · 17 评论 -
高维数据的可视化 Visualizing data using t-SNE
Visualizing data using t-SNE, Laurens van der Maaten and Geoffrey Hintton, Journel of machine learning research, 2008. http://jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdfUser's Guide fo...转载 2018-03-30 11:08:25 · 1823 阅读 · 2 评论 -
python:global与nonlocal关键字
在Python中,当引用一个变量的时候,对这个变量的搜索是按找本地作用域(Local)、嵌套作用域(Enclosing function locals)、全局作用域(Global)、内置作用域(builtins模块)的顺序来进行的,即所谓的LEGB规则。 然而当在一个函数内部为一个变量赋值时,并不是按照上面所说LEGB规则来首先找到变量,之后为该变量赋值。在Python中,在函数中为一个变量赋值时...转载 2018-02-26 01:24:50 · 348 阅读 · 0 评论 -
python爬虫学习实践(二):爬取知乎用户信息+寻找潜在客户
目录(?)[-]目录编程前简单的分析选择知乎的原因选定需要获取的信息爬虫的编写一些难点与解决方法爬虫的大致结构数据的处理初步处理进一步处理结果程序运行的结果小小的总结参考资料【Python应用】寻找社交网络中的目标用户这是我们学校的软件工程课程设计的题目,要求自行编写爬虫或者利用开放的API获取新浪微博、知乎等社交网站的用户信息,利用数据挖掘的相关算法进行分析, 从大规模的用户群体中, 分别找出其...转载 2018-02-24 19:40:38 · 1991 阅读 · 0 评论 -
python爬虫学习实践(一):requests库和正则表达式之淘宝爬虫实战
使用requests库是需要安装的,requests库相比urllib 库来说更高级方便一点,同时与scrapy相比较还是不够强大,本文主要介绍利用requests库和正则表达式完成一项简单的爬虫小项目----淘宝商品爬虫。有关于更多requests库的使用方法请参考:官方文档第一步:我们先打开淘宝网页然后搜索你想爬取的商品信息,比如:“手机”。然后可以看到各个商品的“商品名称”、“商品价格”。我...转载 2018-02-24 15:52:13 · 1660 阅读 · 0 评论 -
Spark MLlib中的随机森林(Random Forest)算法原理及实例(Scala/Java/python)
随机森林分类器:算法简介: 随机森林是决策树的集成算法。随机森林包含多个决策树来降低过拟合的风险。随机森林同样具有易解释性、可处理类别特征、易扩展到多分类问题、不需特征缩放等性质。 随机森林分别训练一系列的决策树,所以训练过程是并行的。因算法中加入随机过程,所以每个决策树又有少量区别。通过合并每个树的预测结果来减少预测的方差,提高在测试集上的性能表转载 2018-02-07 14:06:51 · 3858 阅读 · 1 评论 -
数据预处理 —— 归一化/标准化/正则化
一、标准化(Z-Score),或者去除均值和方差缩放公式为:(X-mean)/std 计算时对每个属性/每列分别进行。将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。实现时,有两种不同的方式:使用sklearn.preprocessing.scale()函数,可以直接将给定数据进行标转载 2018-02-02 13:11:23 · 648 阅读 · 0 评论 -
Mac下Jupyter(即IPython-notebook)的搭建及使用(更建议安装Anaconda环境直接自带jupyter notebook)
ipython是一个交互式的shell,除了代码补全,代码高亮外,还有很多magic命令。但是,最近在学习scipy时,发现很多学习文档使用的都是ipython-notebook,它除了拥有ipython的特点外,还支持多行输入统一运行(区别于ipython等一行输入一行运行),能够直接在当前界面显示绘制的图形,能够将编写的'.ipynb'文件复制到其他拥有notebook的环境下运行现实。当然,转载 2018-01-23 13:27:19 · 3529 阅读 · 1 评论 -
Ubuntu16.04下安装spyder
python2sudo pip install spydersudo apt-get install python-pyqt*12python3sudo pip3 install spydersudo apt-get install python3-pyqt*转载 2018-01-05 16:26:42 · 1891 阅读 · 0 评论 -
Jupyter notebook入门教程(下)
Jupyter notebook的入门教程第二部分的英文原文出处: Getting started with the Jupyter notebook (part 2)从之前介绍的教程第一部分中,我们发现使用Jupyter notebook的基本功能就可以做很多事情了,但是它还有更多的功能和选择,允许用户创造更漂亮的交互式文档。单元操作当你在编辑notebook时,你希转载 2017-12-19 09:03:23 · 897 阅读 · 0 评论 -
Jupyter notebook入门教程(上)
本文将分上下两部分简单介绍Jupyter notebook的入门教程,英文原文出处:Getting started with the Jupyter notebook(part 1)Jupyter notebook(又称IPython notebook)是一个交互式的笔记本,支持运行超过40种编程语言。本文中,我们将介绍Jupyter notebook的主要特点,了解为什么它能成为转载 2017-12-19 09:01:06 · 986 阅读 · 0 评论 -
在安装了python2的情况下,如何安装python3
在使用python时,大多数情况下,python2和python3时可以互相兼容的,两个版本使用哪个都是可以的,但是在少数情况下,其中一个版本的功能可能无法满足要求。那么假设原来的默认环境是anconda2下面的python2执行环境,现在如果需要在把持python2环境的情况下,多重来一个python3与之共存,做法如下:步骤:下载 anconda3的执行安装文件,下载地址 http...原创 2019-01-14 09:28:17 · 849 阅读 · 0 评论 -
Numpy中ndim、shape、dtype、astype的用法
本文介绍numpy数组中这四个方法的区别ndim、shape、dtype、astype。1.ndimndim返回的是数组的维度,返回的只有一个数,该数即表示数组的维度。2.shapeshape:表示各位维度大小的元组。返回的是一个元组。对于一维数组:有疑问的是为什么不是(1,6),因为arr1.ndim维度为1,元组内只返回一个数。对于二维数组:前面的是行,后面的是列...转载 2019-02-27 22:06:47 · 10021 阅读 · 1 评论 -
MAC安装pytorch
在机器学习常用的python包anconda下,安装pytorch的步骤非常简答安装命令:conda install pytorch torchvision -c pytorch -y直接一步到位!如果安装过程中,出现下面的连接http时获取URL内容方面的错误时,没关系,再重新运行安装命令,多试几次,相信你总能成功的!Downloading and Extracti...原创 2019-06-05 14:59:26 · 13504 阅读 · 0 评论 -
pip安装软件包时使用的数据源的指定
国内常用的pypi镜像源阿里:https://mirrors.aliyun.com/pypi/simple中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/豆瓣:https://pypi.douban.com/simple清华:https://pypi.tuna.tsinghua.edu.cn/simple/单次安装时指定数据源...原创 2019-09-06 22:22:14 · 2024 阅读 · 0 评论 -
Python中Pickle模块的dump()方法和load()方法
Python中的Pickle模块实现了基本的数据序列与反序列化。一、dump()方法pickle.dump(obj, file, [,protocol])注释:序列化对象,将对象obj保存到文件file中去。参数protocol是序列化模式,默认是0(ASCII协议,表示以文本的形式进行序列化),protocol的值还可以是1和2(1和2表示以二进制的形式进行序列化。其中,1是老式的二...转载 2019-07-20 17:42:44 · 1916 阅读 · 0 评论 -
MAC上安装jupyter notebook并设置python代码自动补全
安装jupyter notebook已安装环境:python2 或者 python3,本人已安装环境为python3安装命令:pip3 install --user jupyter(python下面 pip2install --user jupyter 可安装)通过命令行 jupyter notobook 或者python -m IPython notebook ,会自动进入...原创 2019-06-30 11:11:34 · 4645 阅读 · 1 评论 -
Python通过地址获取变量
类似于C/C++中令一个指针指向一个变量的地址,通过解引用可以得到变量的值。利用ctypes模块在Python中实现类似的功能:import ctypes value='hello world' #定义一个字符串变量address=id(value) #获取value的地址,赋给addressget_value=ctypes.cast(address, ctypes.py_objec...转载 2019-06-29 13:11:01 · 10907 阅读 · 1 评论 -
python变量与地址的关系
在C语言中,系统会为每个变量分配内存空间,当改变变量的值时,改变的是内存空间中的值,变量的地址是不改变的。而在python中,Python采用的是基于值的管理方式。当给变量赋值时,系统会为这个值分配内存空间,然后让这个变量指向这个值;当改变变量的值时,系统会为这个新的值分配另一个内存空间,然后还是让这个变量指向这个新值。也就是说,C语言中变量变的是内存空间中的值,不变的是地址;而在Py...转载 2019-06-29 13:09:56 · 2734 阅读 · 0 评论 -
随机森林的方式如何处理特征缺失值
序RF中有相应的缺失值处理方法,本次记录其两种缺失值处理技巧暴力填补Python中的na.roughfix包提供简单的缺失值填补策略:对于训练集中处于同一个类别下的数据,如果是类别变量缺失,则用众数补全,如果是连续变量,则用中位数。相似度矩阵填补RF的Python实现中,有一个rfImpute包,可以提供更加高层的缺失值填补。首先先用暴力填补法进行粗粒度填充。然后...转载 2019-07-03 17:57:31 · 6435 阅读 · 0 评论 -
numpy 中的 get_state()和set_state()
numpy.random.get_state():保存状态,记录下数组被打乱的操作(数组如何被打乱的)numpy.random.set_state():接收get_state()返回的值,按照get_state()打乱的方式对新数组进行同样的操作可结合random.shuffle()函数使用,将实例与标签两个数组同时打乱,但打乱后,实例与标签任然是一一对应的关系可以在机器学习训练样本和特征数...原创 2019-07-02 18:13:09 · 3315 阅读 · 2 评论 -
np.eye()和np.identity()
今天在完成深度学习的相关编程作业的时候,发现代码中出现了一个关于np.eye()的函数,这个函数的用法非常的简单,但是在预制的代码中,这个函数的用法并非单单制造一个对角矩阵,而是通过其来将一个label数组,大小为(1,m)或者(m,1)的数组,转化成one-hot数组。例如他可以将类别总数为6的labels=[1,2,3,0,1,1]的数组转化成数组[[0,1,0,0,0,0],[0,0,1,0...转载 2019-07-02 15:33:41 · 1740 阅读 · 0 评论 -
python3入门之堆(heapq)
堆是一个二叉树,其中每个父节点的值都小于或等于其所有子节点的值。整个堆的最小元素总是位于二叉树的根节点。python的heapq模块提供了对堆的支持。堆数据结构最重要的特征是heap[0]永远是最小的元素heapq.heappush(heap,item)注:heap为定义堆,item增加的元素>>> import heapq>>> h = [...转载 2019-06-23 22:25:49 · 1265 阅读 · 0 评论 -
sklearn中的KFold、StratifiedKFold k折交叉切分的区别
sklearn中的Kfold和StratifiedKFold都是k折交叉切分。但是StratifiedKFold是分层采样,确保训练集,测试集中各类别样本的比例与原始数据集中相同。例子:import numpy as npfrom sklearn.model_selection import KFold,StratifiedKFoldX=np.array([ [1,2...转载 2019-07-01 20:01:22 · 5445 阅读 · 0 评论 -
Python中flatten用法
一、用在数组>>> a = [[1,3],[2,4],[3,5]]>>> a = array(a)>>> a.flatten()array([1, 3, 2, 4, 3, 5])二、用在列表如果直接用flatten函数会出错>>> a = [[1,3],[2,4],[3,5]]>>> ...转载 2019-07-01 19:02:04 · 5892 阅读 · 0 评论 -
Python编程-staticmethod 和 classmethod 和 实例方法
众所周知,类是创建实例的模板,而实例是一个个具体的对象,各个实例拥有的数据相互独立、互不影响。在类中定义的函数称为方法,主要有三种:实例方法、类方法、静态方法class A: def instance_method(self, n): print('self', self) @classmethod def class_method(cls, ...转载 2019-06-26 00:01:31 · 234 阅读 · 0 评论 -
numpy.random.permutation() ,使用numpy随机打散训练数据,同时保持训练数据与标签的对齐
如果训练数据之间相关性很大,比如配对是按照从1到9开始的顺序,则用这样的训练数据训练时很可能导致训练的泛华能力不足,所以有必要训练前把训练数据打乱,同时还要保持打乱前训练数据和训练标签的对应关系。numpy.random.permutation(length)用来产生一个随机序列作为索引,再使用这个序列从原来的数据集中按照新的随机顺序产生随机数据集。length 为训练数据的个数。imp...转载 2019-06-03 19:16:48 · 1383 阅读 · 0 评论 -
Ubuntu16.04+Pycharm+Anaconda配置
原创 2016年11月03日 09:08:34标签:anaconda9594作者:JUDGE_MENT邮箱:gao19920804@126.comCSDN博客:http://blog.csdn.net/sinat_23137713最后编辑时间:2016.12.17 V1.1声明:1)该资料转载 2017-12-18 00:06:41 · 760 阅读 · 0 评论 -
Ubuntu16.04的Python virtualenv问题
Ubuntu16.04的Python virtualenv问题问题描述最新release的Ubuntu16.04想让大家都把Python环境都迁移到Python3上,但是目前python2还是主流,还有很多第三方库是基于Python2来实现的,所以我想还是有很多人和我一样,开发和生产环境必须要使用Python2。而在系统上安装virtualenv基本是每个开发人员都必须的,转载 2017-12-18 00:01:19 · 431 阅读 · 0 评论 -
python opencv 图像尺寸变换
利用PythonOpenCV中的 cv.Resize(源,目标,变换方法)就可以实现变换为想要的尺寸了源文件:就不用说了目标:你可以对图像进行倍数的放大和缩小 也可以直接的输入尺寸大小变换的方法:CV_INTER_NN - 最近邻插值, CV_INTER_LINEAR - 双线性插值 (缺省使用) CV_INTER_AREA - 使用象素关系重采样。当图像缩转载 2017-04-12 16:37:32 · 24451 阅读 · 0 评论 -
使用caffe的python接口实现内部参数可视化
1。这里并不介绍如何训练cnn及caffe配置,主要介绍如何实现cnn内部参数可视化。#这是我训练时使用的train.prototxt文件,在实现可视化之前首先需要对这个文件进行修改,#trian.prototxt文件的前2层及尾部需要修改,修改成train_deploy.prototxt文件。name: "face_train"layer { name: "face" type转载 2017-03-16 15:59:19 · 1392 阅读 · 0 评论 -
NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing...
~~因为不太会使用OpenCV、matlab工具,所以在找一些比较简单的工具。 . .一、NLP标注工具BRATBRAT是一个基于web的文本标注工具,主要用于对文本的结构化标注,用BRAT生成的标注结果能够把无结构化的原始文本结构化,供计算机处理。利用该工具可以方便的获得各项NLP任务需要的标注语料。以下是利用该工具进行命名实体识别任务的标注例子。 WeTest舆情团队在转载 2017-04-10 16:52:01 · 8109 阅读 · 0 评论 -
深度学习python图像标记工具labelTool
深度学习训练需要标记图像位置和类别,之前用的时候是叫做BBox-Label-Tool-master,遇到大图像就显示不完整了,没有自适应缩放, 这是改进后的Python脚本。目录结构:图片目录名images, 标签目录名labels,图像目录下各类别目录名要以001,002,003,...的格式命名。这是运行labelTool ( python main.py)时的转载 2017-04-10 16:49:58 · 4613 阅读 · 0 评论 -
python中的extend和append的区别
实例:>>> a.extend([1,2])>>> print a[1, 2, '3', '1', 1, 2]>>> a.append([1,2])>>> print a[1, 2, '3', '1', 1, 2, [1, 2]]append和extend都仅只可以接收一个参数,append 任意,甚至是tupleextend 只能是一个列表转载 2017-03-20 16:11:55 · 530 阅读 · 0 评论 -
openCV-Python笔记一:图像的读取、显示和保存
使用cv2.imread(),cv2.imshow(),cv2.imwrite()读取、显示和保存图像一、读入图像使用函数cv2.imread(filepath,flags)读入一副图片filepath:要读入图片的完整路径flags:读入图片的标志 cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道cv2.IMREAD_GRAYSCA转载 2017-03-17 17:36:34 · 3928 阅读 · 0 评论 -
python代码`if not x:` 和`if x is not None:`和`if not x is None:`使用
代码中经常会有变量是否为None的判断,有三种主要的写法: 第一种是`if x is None`;第二种是 `if not x:`;第三种是`if not x is None`(这句这样理解更清晰`if not (x is None)`) 。如果你觉得这样写没啥区别,那么你可就要小心了,这里面有一个坑。先来看一下代码:[python] vie转载 2017-03-17 16:18:58 · 718 阅读 · 0 评论