
Python
我愛大泡泡
机器学习
情绪识别
展开
-
logistic回归和Python实现
一、Logistic Regression的基本内容通过学习了台湾的林教授和Stanford的课程后发现,他们两个人的基本思路虽然一致,但是具体做法有所差异,下面简单介绍一下两种实现方式。1、台湾的林教授方法 使用Logistic回归的思路是,我们不希望只给输出一个确定的{-1,+1}的结果,而是想给出一个概率值,这时就可以用到Logistic回归,得到概率的输出值在0~1之间原创 2016-05-31 13:36:11 · 4152 阅读 · 1 评论 -
Python 面向对象中的__init__、__new__以及super()
1、__init__()和__new__()的关系借用代码解释一下,注意这些都是在python2.7下面构造的,在py3.x可能会有所不同,比如在super()上,Python 2 里super() 是一定要有参数的。# -*- coding: utf-8 -*-class Person(object): """Silly Person""" def __new__(cl原创 2016-10-28 18:33:13 · 5442 阅读 · 0 评论 -
2016.10.30学习python
1、重载(overload)和覆盖(override)在C++,Java,C#等静态类型语言类型语言中,这两个概念同时存在。前者是为了让同一个函数名(方法名)匹配不同的参数(个数不同,类型不同);后者是为了实现多态,在相同名称的函数(方法)和参数,在不同的类中(父类,子类),有不同的实现。对于java多态的理解见文章2、原创 2016-10-30 18:31:46 · 663 阅读 · 0 评论 -
朴素贝叶斯的Python实现(二)
本文承接上文关于朴素贝叶斯模型的介绍,讲一下在python中的实现。这里要注意一点,我在看《机器学习实战》中发现,书中论述的模型有一些错误,混淆了多项式模型和伯努利模型,这里对其进行一些更正。一、对基本概念的进一步解释(1)为什么要使用拉普拉斯校准?要知道拉普拉斯平滑针对的是特征属性离散分布的情况下求先验条件概率。朴素贝叶斯分类是计算多个特征值的概率得到整个类别的概率,若某个特征值为0,则原创 2016-11-19 11:28:58 · 1653 阅读 · 0 评论 -
用Python进行数据可视化的10种方法
引言艺术之美根植于其所传达的信息。有时候,现实并非我们所看到或感知到的。达芬奇(Da Vinci)和毕加索(Picasso)等艺术家都通过其具有特定主题的非凡艺术品,试图让人们更加接近现实。数据科学家并不逊色于艺术家。他们用数据可视化的方式绘画,试图展现数据内隐藏的模式或表达对数据的见解。更有趣的是,一旦接触到任何可视化的内容、数据时,人类会有更强烈的知觉、认知和交流。在数据科学中,有转载 2017-03-21 00:17:24 · 23356 阅读 · 3 评论 -
小数据分析师学 Python 之 Seaborn(二):定量数据的线性模型(谁知道原文出处告诉我一下谢谢)
今天我开始切入了 Linear models with quantitative data 这一Tutorial, 让seaborn拼图增加了一块大大的领土.初识lmplot在之前讲解distribution分布一节中, 主要围绕的是单(双)样本间各自样本的形态, 或者是两个样本间的形态差异. 还未涉及到分析多个样本间的依赖关系. 后者需要借助于更复杂的工具来实现, 比如用线性函数来表达这转载 2017-03-21 16:14:31 · 6559 阅读 · 2 评论 -
XGBoost安装(非常简单)
网上看到很多非常麻烦的安装方案,因为主要是电脑内没有c++的编译器,但是因为WIN10已经有了编译器,就不需要在安装GCC了,具体流程如下:1、在github下载所需的安装包下载到本地解压(或是用git)2、从这里下载libxgboost.dll。下载好后放在解压好得到xgboost/python-package/xgboost/路径下(否则不能安装)3、cmd直到到安装包路径下的py原创 2017-03-22 10:01:42 · 2166 阅读 · 0 评论 -
干货:结合Scikit-learn介绍几种常用的特征选择方法 (文章实在找不到最原始出处了,个人感觉是kaggle上的大神写的)
作者: Edwin Jarvis特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。特征选择主要有两个功能:减少特征数量、降维,使模型泛化能力更强,减少过拟合增强对特征和特征值之间的理解拿到数据集,一个特征选择方法,往往很难同时完成这两个目的。通常情况下,我转载 2017-03-16 22:46:32 · 5665 阅读 · 3 评论 -
一个蛋疼的PIL图片读取问题
系统为ubuntu14.04,python3.6(用的conda的虚拟环境)。 用scipy.misc的imread读取图片的时候,正常是读出一个array的矩阵来表示图片,但是却读出了一个array(, dtype=object)的东西,因为大部分python的关于矩阵的的图片读取都是基于PIL的,所以问题应该是处在了PIL无法正确读取jpg图像上,于是首先卸载了PIL(这里注意如果是p原创 2017-06-04 11:03:49 · 6283 阅读 · 0 评论 -
SVM全系列:从原理到python实现(一):SVM原理
前言本文开始主要介绍一下SVM的分类原理以及SVM的数学导出和SVM在Python上的实现。借鉴了许多文章,会在后面一一指出,如果有什么不对的希望能指正。 一、 SVM简介首先看到SVM是在斯坦福的机器学习课程上,SVM是作为分类器在logisticregression的基础上引出的。其学习方法是把数据映射到一个高维空间上,使数据变稀疏,比较容易找到一个分割面来将数原创 2016-09-25 22:51:45 · 18545 阅读 · 4 评论 -
SVM原理介绍与Python实现(四):利用规则化(regularization)处理不可分情况
四、规则化和不可分处理我们一直假设数据是可分的,不论是引入核函数前的线性可分SVM,还是利用核函数处理非线性数据,都是在可分的情况下。如果不是因为数据本身的非线性结构而是由噪声数据引起的偏离要怎么处理呢?怎么才能在不可分的情况下找到分割超平面呢?首先我们先看一下为什么离群点会对超平面造成很大的影响(个人感觉算是SVM的一个缺点)。假设下面这样一幅图(来自这里)。被圈起来的蓝色的点就原创 2016-09-28 22:46:37 · 2341 阅读 · 0 评论 -
线性回归总结及python实现
一、概念简述 下图是线性回归的模型函数,目的就是通过一系列的测试数据求出θ的值,来更好地拟合连续的数据。做法是最小化代价函数J(θ)(这里用的是平方误差),这里的代价函数在台湾的视频中指的是in-sample:Ein。这分为两种方式,一种是按照单个训练样本更新θ,采用梯度下降法和最小均方法(LMS),第二种是最小二乘法直接得到。 线性回归还有一个用途原创 2016-05-28 00:39:28 · 4845 阅读 · 1 评论 -
Regularization(规则化)和model selection以及Python实现
这次以非线性转换(Nonlinear Transformation)为例,分别通过对多项式次数的选择和regularization避免过拟合,还通过model selection来提高识别能力。(一)非线性模型原来的学习模型大多假设两个类别是线性可分的,所以找到了一条直线或一个线性空间平面可以将两个类别进行分类,但是一些情况下会出现线性不可分的情况。或者进行回归预测的过程中,不能用一条直线原创 2016-06-07 16:28:43 · 2264 阅读 · 0 评论 -
Python机器学习开发环境搭建和GraphLab Create安装
(一)Python的开发环境搭建主要是按先后顺序安装Numpy、Scipy、matplotlib和scikit-learn。numpy、scipy、matplotlib、scikit-learn,分别是科学计算包,科学工具集,画图工具包,机器学习工具集。1、numpy :科学运算,主要是矩阵的运算。提供数组。2、scipy:主要是一些科学工具集,信号处理工具集 数值计算。原创 2016-06-04 19:49:26 · 9821 阅读 · 6 评论 -
Ipython notebook安装
现在 notebook从python独立出来了,不仅支持ipython还支持R,matlab ,现在 改名为jupyter,要pip install jupyter ,再运行jupyter notebook。 中间可能会出现这样的问题,可能是网断了之类的,就再次运行pip install jupyter 就可以了。原创 2016-06-04 20:34:53 · 838 阅读 · 0 评论 -
以logistic Regression为例实现多类别分类及Python实现
关于logistic 回归的内容,参照前面的文章,这里主要讲了多分类的方法和Python的实现,(一)多分类方法 1.第一种简单的方法是一对所有(one-Versus-All,OVA),给定m个类,训练m个二元分类器(将选取任意一类,再将其它所有类看成是一类,构建一个两类分类器)。分类器j使类j的元组为正类,其余为负类,进行训练。为了对未知元组X进行分类,分类器作为一个组合分类器投票原创 2016-06-05 17:20:20 · 23855 阅读 · 9 评论 -
SVM原理介绍与Python实现(二):SVM的推导过程
二、SVM的求解过程1、对问题的简单求解其实上一章中的结果,已经是一个可求解的问题了,因为现在的目标函数是二次的,约束条件是线性的,所以它是一个凸二次规划问题,只要通过现成的QP包就能解决这个二次规划问题。 2、求解方式转换由于这个结构具有特殊性,所以可以通过拉格朗日的对偶性( Lagrange Duality),将原问题转到对偶问题进行优化(两者等价)。 这样是有两个优点:一是对偶问题更容易求原创 2016-09-28 00:30:54 · 4156 阅读 · 2 评论 -
SVM原理介绍与Python实现(三):核函数的引出
三、核函数引出1、为什么要用核函数?我们上面其实通过解w和b已经得到了一个线性可分的分类器了,而且已经提到之所以用对偶形式求解就是因为对偶形式可以引入核函数解决线性不可分的情况。核函数解决线性不可分问题的原理就是将数据映射到高维的空间去,解决原始空间的线性不可分问题。举个例子:比如我们有一个一维的数据分布是如下图的样子,你想把它用一个直线来分开,你发现是不可能的,因为他原创 2016-09-28 11:51:07 · 5741 阅读 · 1 评论 -
常用的算法最好的讲解地址
主要是为了汇总讲的比较好的一些论文或博客。1、SVD分解和PCA降维等问题http://blog.youkuaiyun.com/zhongkejingwang/article/details/42264479(这个写的不错)http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.htm原创 2017-03-19 23:05:06 · 1998 阅读 · 0 评论