
Python之机器学习
文章平均质量分 75
llh_1178
这个作者很懒,什么都没留下…
展开
-
python算法演练——One Rule 算法
这样某一个特征只有0和1两种取值,数据集有三个类别。当取0的时候,假如类别A有20个这样的个体,类别B有60个这样的个体,类别C有20个这样的个体。所以,这个特征为0时,最有可能的是类别B,但是,还是有40个个体不在B类别中,所以,将这个特征为0分到类别B中的错误率是40%。然后,将所有的特征统计完,计算所有的特征错误率,再选择错误率最低的特征作为唯一的分类准则——这就是OneR。现在用代码来实原创 2017-05-23 20:27:02 · 1146 阅读 · 0 评论 -
深度学习手记(二)之占位符Placeholder
TensorFlow是一种符号式编程,它里面有各种计算流图和变量,今天来介绍一种占位符,它的好处是可以避免生成大量常量来提供输入数据,提高了计算图的利用率。其实,今天介绍这个Placeholder占位符还有一个原因:就是使用它经常会出现下面问题: (1)ValueError: Cannot feed value of shape (2,) for Tensor ‘input_2:0’, whic...原创 2018-03-15 09:57:41 · 6212 阅读 · 2 评论 -
深度学习手记(三)之激活函数
激活函数在神经网络模型中是非常重要的一步。如果没有激活函数,那么不管神经网络有多少层,整个网络都是线性的,从而没有办法解决复杂的分类问题。 那么激活函数有哪些呢? 在维基百科上可以查到:https://en.wikipedia.org/wiki/Activation_function 在这里介绍几个比较常用的激活函数: relu: 根据公式,我们可以用python代码简单实现:...原创 2018-03-22 13:14:32 · 415 阅读 · 0 评论 -
浅谈朴素贝叶斯算法原理
朴素贝叶斯毫无疑问是对贝叶斯统计方法的朴素解释为基础。尽管存在朴素的一面,但是,这种方法应用的很广泛且都取得了不错的效果。特征类型和形式多种多样的数据集也是用这种方法进行分类。贝叶斯定理朴素贝叶斯算法算法应用示例贝叶斯定理首先,要明白贝叶斯统计方式与统计学中的频率概念是不同,从频率的角度出发,即假定数据遵循某种分布,我们的目标是确定该分布的几个参数,在某个固定的环境一下做模...原创 2018-04-08 15:34:32 · 11818 阅读 · 0 评论 -
深度学习手记(五)之优化方法
梯度下降和反向传播算法是神经网络模型的主要优化算法。梯度下降算法主要用于优化单个参数的取值而反向传播算法给出了一个高效的方式在所有参数上使用梯度下降算法,从而使神经网络的损失函数尽可能的小。在这里就不具体对梯度下降算法仔细讲解了(网上资源很多),主要对深度学习神经网络优化过程做一个介绍。 对于梯度下降算法,我们不得不说到梯度和学习率的设置,参数的梯度可以通过求偏导的方式计算得到,有了梯度还需要定...原创 2018-04-01 15:14:48 · 683 阅读 · 0 评论 -
深度学习手记(五)之LeNet-5预测模型
直接进入主题,大名鼎鼎的LeNet诞生于1994年,是最早的深层卷积神经网络之一,并且推动了深度学习的发展。LeNet模型是由Yann LeCun所完成的,他一直认为直接将每个像素作为多层神经网络的输入是不能利用图像本身所含有的空间相关性,效率大打折扣。LeNet5当时的特征有如下几点:每一个卷积层包含三个部分:卷积、降采样和非线性激活函数使用卷积提取空间特征降采样的最大池化层双曲...原创 2018-04-18 10:31:56 · 1824 阅读 · 0 评论 -
特征工程与建模分析
奥斯汀动物中心是美国最大的无杀伤动物收容所,每年为18,000多只动物提供护理和庇护,并参与一系列县,市和全州保护和照护废弃物的举措,处于危险中,并放弃了动物。作为奥斯汀市开放数据计划的一部分,奥斯汀动物中心提供其收集的数据集,其中包含进入奥斯汀动物服务系统的动物的统计数据和结果。 Austin Animal Center Shelter Outcomes(奥斯汀动物中心避难所成果)数据集可以在...原创 2018-05-02 17:02:47 · 1514 阅读 · 0 评论 -
深度学习手记(六)之实现稀疏自编码算法(SAE)的优化过程
简单介绍自编码算法(SAE) 首先,自编码算法是一种无监督算法,可以自动从无标注数据中学习特征,可以给出比原始数据更好的特征描述。当然,这是利用了自编码的一种属性:稀疏性,因为具有稀疏性,完成了特征的自动选择而不是采用随机的方式,这种方式明显要靠谱一些。就跟主成分分析方法(PCA)类似,自动完成了降维的过程。自编码器要求输出尽可能等于输入,从公式也可以看出来。 并且它的隐藏层必须满足一定...原创 2018-05-11 10:04:23 · 11313 阅读 · 4 评论 -
爬取百度学术文章及文本挖掘分析
学了一段时间的爬虫,给自己找一个小项目来练练手,爬取百度百科文章,之后结合自然语言处理分析文本之间的相似度和提取所有文章的重要信息。 目标总览爬取数据清洗数据词云展示文章相似度分析第一部分、爬取百度学术文章 首先,我们打开百度学术首页:http://xueshu.baidu.com/ 可以看到我们需要填入关键词,才能进行搜索我们需要的类型文章,在此我以“牛肉品质”为例,...原创 2018-06-05 11:26:47 · 15279 阅读 · 44 评论 -
解析逻辑回归模型
介绍逻辑回归模型是业界运用最为广泛的模型,我们从下面几个方面讨论这个模型: 1. 在模型层面上,逻辑回归模型是被用来解决分类问题的。由于分类是一个非线性问题,所以建模的主要难点是如何将非线性问题转化为线性问题。主要从两方面入手: - 从分解问题的角度入手:通过引入隐含变量(这里举一个例子,来解释什么是隐含变量:当人们在购买衣服的时候,能被其他人观察到的只有购买与否这个行为,而忽略了在这...原创 2018-06-18 11:33:24 · 4928 阅读 · 0 评论 -
作ROC曲线时遇上的问题
使用ROC曲线评估分类模型是非常通用的手段,但是,使用它的时候要注意两点: 1、分类的类型。 必须为数值型。 2、只针对二分类问题。 ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。传统的诊断试验评价方法有一个共同的特点,必须将试验结果分为两类,再进行统计分析。 下面有个例子:import nump...原创 2018-07-12 15:21:58 · 30991 阅读 · 6 评论 -
几种无监督学习示例
无监督学习模型是识别无标签数据结构的模型。这里简单介绍几种的无监督学习算法。分别是主成分分析(PCA)、高斯混合模型、流形学习算法(Isomap)。主成分分析(PCA) 这里使用鸢尾花数据集进行演示,将它降维到两个维度,然后再可视化。其实,降维的任务是要找到一个可以保留数据本质特征的低维矩阵来描述高维数据。降维通常用于辅助数据可视化工作的。from sklearn.decomposi...原创 2018-07-19 15:02:25 · 40802 阅读 · 0 评论 -
深入浅出聚类算法之k-means算法
k-means是一个十分简单的聚类算法,它的思路非常简明清晰,所以经常拿来当做教学。下面就来讲述一下这个模型的细节操作。内容模型原理模型收敛过程模型聚类个数模型局限1. 模型原理 将某一些数据分为不同的类别,在相同的类别中数据之间的距离应该都很近,也就是说离得越近的数据应该越相似,再进一步说明,数据之间的相似度与它们之间的欧式距离成反比。这就是k-means模型的假设。 ...原创 2018-08-13 18:14:06 · 51382 阅读 · 13 评论 -
深度学习手记(七)之MNIST实现CNN模型
手写字体识别是一个很好练习CNN框架搭建的数据集。下面简单讲述一下整个模型构建的思路: 整个模型通过两次卷积、两次亚采样以及两次全连接层,整个结构比较简单,也易理解。其中,两次卷积层的大小都为5x5,过滤器分别为32和64个,为了不改变图片的大小,设置padding参数为“same”,步长为1,激活函数为Relu;两次亚采样层(Pool)的大小都为2x2,步长设为2,以至于图片尺寸缩小一倍...转载 2019-03-26 12:17:31 · 3144 阅读 · 1 评论 -
分类模型之职员离职分析
今天要带来的是机器学习中几种重要的分类模型。分别是:逻辑回归、支持向量机、决策树、随机森林这四种算法模型。这里就不主要介绍模型背后的理论知识了,直接上数据,在数据分析中再来谈这些算法模型。 今天要讨论的是Kaggle上的公司职员离职数据集。这个数据集很有意思,因为它与生活贴近且是人们关注的事情。好了,下面我们进入主题。 首先,引入必要的包和库,再使用pandas包导入数据。import nump原创 2017-12-22 10:03:38 · 4808 阅读 · 2 评论 -
python中数据聚合与分组运算
在数据分析处理中,对数据进行分组并对各组应用一个函数(无论是聚合还是转换)计算分组统计或生成透视表,是数据分析工作中的重要环节。 python提供了一个灵活高效的groupby功能,它可以使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。在python中主要有两个模块(itertools和pandas)提供了groupby方法。而pandas中的groupby功能尤为强大,可以根据一个或多原创 2017-11-24 19:12:37 · 2425 阅读 · 0 评论 -
数据挖掘——亲和性分析
亲和性分析根据样本个体之间的相似度,确定它们关系的亲疏。应用场景:1.向网站用户提供多样化的服务或投放定向广告。2.为了向用户推荐电影或商品3.根据基因寻找有亲缘关系的人比如:统计顾客购买了商品1,然后再购买商品2的比率,算相似度。import numpy as npdataset_filename = "affinity_dataset.txt"x = np.loadtxt(da原创 2017-05-23 20:26:57 · 1476 阅读 · 0 评论 -
Python中关于CSV文件中的I/O
这用pandas包进行数据处理的时候,会遇到一些文件的输出与写入。比如csv文件,是一种比较常见的文件,它以逗号作为分隔符。所以,总结一下运用pandas数据处理包,处理csv文件的输出与写入方式。# 数据读取import pandas as pd# 这是文件有标头的df = pd.read_table("ex1.csv", sep= ",")# print df# 文件没有标题行原创 2017-05-23 20:25:48 · 724 阅读 · 0 评论 -
Python数据处理进阶——pandas
对于python进行数据处理来说,pandas式一个不得不用的包,它比numpy很为强大。通过对《利用python进行数据分析》这本书中介绍pandas包的学习,再加以自己的理解,写下这篇随笔,与一起喜欢数据分析的朋友分享和相互学习。import numpy as npimport pandas as pdfrom pandas import Series, DataFrame# 函数反原创 2017-05-23 20:25:44 · 710 阅读 · 0 评论 -
Python数据处理——numpy_3
通过前面两次的学习,基本上对numpy有了一定的认识,所以,接下来进一步对numpy学习。同时,最后以一个有趣的例子加深对numpy的理解。import numpy as npxarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])cond = np.array([True,原创 2017-05-23 20:25:39 · 798 阅读 · 0 评论 -
python数据处理——numpy_2
上一次的学习了numpy的一些基础操作,今天接着学习numpy的高级索引、轴对换数值转置以及作图。#花式索引import numpy as np'''t = np.empty((8,4)) #建立一个8行4列的空数组for i in range(8): t[i] = i'''#print t#print t[[4, 3, 0, 6]] 选取特定的行子集#print t[原创 2017-05-23 20:25:34 · 412 阅读 · 0 评论 -
Python数据处理——numpy_1
python中数据处理最基础的一个包——numpy。它能很好的进行数据准备,类似与R语言中的数据框(DataFrame)一样。今天,就来从最基础的开始学习。import numpy as npdata = [[0.95, -0.25, -0.89], [0.56, 0.24, 0.91]]data = np.array(data)#print data * 10#print dat原创 2017-05-23 20:25:29 · 437 阅读 · 0 评论 -
用scikit-learn估计值分类——近邻算法(KNN)
用scikit-learn估计值分类主要是为数据挖掘搭建通用的框架。有了这个框架之后,增加了算法的泛化性,减少了数据挖掘的复杂性。用scikit-learn估计值分类有这三个方面: 1. 估计器(estimator):用于分类、聚类和回归分析。 2. 转换器(transformer):用于数据的预处理和数据的转换。原创 2017-05-23 20:27:09 · 1361 阅读 · 0 评论 -
Python——数据导入与准备
数据导入与准备是进行数据挖掘等机器学习的第一要素。从各种不同的格式文件中导入数据是一件比较麻烦的事。因为文件格式多种多样,那么使用导入的方法也是有所不同。我总结了目前最常用的文件格式导入数据的一些方法,给大家参考一下。# 从CSV文件导入数据'''步骤:1. 打开文件2.读取文件头3.读取剩余行4当发生错误时抛出异常'''import csvimport sysfilen原创 2017-05-25 10:58:23 · 6038 阅读 · 0 评论 -
机器学习算法 Python&R 速查表
在拿破仑•希尔的名著《思考与致富》中讲述了达比的故事:达比经过几年的时间快要挖掘到了金矿,却在离它三英尺的地方离开了!现在,我不知道这个故事是否真实。但是,我肯定在我的周围有一些跟达比一样的人,这些人认为,不管遇到什么问题, 机器学习的目的就是执行以及使用2 – 3组算法。他们不去尝试更好的算法和技术,因为他们觉得太困难或耗费时间。像达比一样,他们无疑是在到达最后一步的时候突然消失转载 2017-06-24 12:47:49 · 468 阅读 · 0 评论 -
自行编写线性回归对房价进行预测
如果特征值之间存在线性关系就可以使用线性回归建模对其预测结果。本次测试是对一个房屋售价的数据集进行探索,并找出与售价之间有相关性的特征值建立回归模型,来通过此特征值来预测房价。 下面,开始导入数据集:import pandas as pddf = pd.read_csv("house_data.csv")# 查看前五行数据df.head()这样看数据集是很难看出有原创 2017-10-11 11:01:40 · 9564 阅读 · 9 评论 -
sklearn0.20移除了grid_search模块
如果使用sklearn0.20版本的朋友,那么使用网格搜索(gridsearch)寻找最优参数模型的话,sklearn.grid_search.GridsearchCV类已经被移除了,只有通过sklearn.model_selection调用GridsearchCV。原创 2017-11-10 09:58:56 · 7835 阅读 · 4 评论 -
可视化决策树之Python实现
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。一些基础原理这里就不再一一介绍了,直接进入今天的主题,如何可视化决策树。本篇使用klearn来实现决策树的过程,下面是详细讲解:首先导入必要的包:import pandas as pd...原创 2017-11-13 09:33:40 · 40854 阅读 · 37 评论 -
深度学习手记(九)之Inception-v3实现迁移学习
在训练神经网络模型时,往往需要很多的标注数据以支持模型的准确性。但是,在真实的应用中,很难收集到如此多的标注数据,即使可以收集到,也需要花费大量的人力物力。而且即使有海量的数据用于训练,也需要很多的时间。因此为了解决标注数据和训练时间的问题,可以考虑使用迁移学习。 所谓的迁移学习,就是将一个问题上训练好的模型通过简单的调整使其适用于一个新的问题,即只改变训练好的模型最后一层全连接层,而保留...转载 2019-04-05 10:56:04 · 2626 阅读 · 3 评论