分类器

Python短文本自动识别个体是否有自杀倾向【新手必学】

喜你入骨 提交于 2020-02-12 17:43:14
我们以微博树洞为例,讲解了怎么自动爬取单个微博的评论。今天我们就要用上这些数据做一个自杀倾向分类器,这样的分类器如果应用得当,将可以帮助成千上万误入歧途的人们挽回生命。 为了简化问题,我们将短文本分为两种类别中的一种,即要么是正常微博、要么是自杀倾向微博。这样,有了上次的微博树洞,训练集和测试集就非常好获得了。由于是短文本二分类问题,可以使用 scikit-learn 的 SVM 分类模型。 不过要注意的是,我们的分类器并不能保证分类出来的结果百分百正确,毕竟心理状态是很难通过文本准确识别出来的,我们只能通过文字,大致判断其抑郁情况并加以介入。实际上这是一个宁可错杀一百,不可放过一个的问题。毕竟放过一个,可能就有一条生命悄然流逝。 本文源代码: https://github.com/Ckend/suicide-detect-sv... 欢迎一同改进这个项目,在训练集和模型方面,改进的空间还相当大。 PS:另外很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃,为此我建了个Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题有老司机解决哦,一起相互监督共同进步 1. 数据准备 数据集整体上分两个部分,一部分是训练集、一部分是测试集。其中

主题模型

拈花ヽ惹草 提交于 2020-02-12 05:12:14
主题模型(topic modeling)是一种常见的机器学习应用,主要用于对文本进行分类。传统的文本分类器,例如贝叶斯、KNN和SVM分类器,只能将测试对象分到某一个类别中,假设我给出三个分类:“算法”、“网络”和“编译”让其判断,这些分类器往往将对象归到某一类中。 但是如果一个外行完全给不出备选类别,有没有分类器能够自动给出类别判断呢? 有,这样的分类器就是主题模型。 潜在狄立克雷分配(Latent Dirichlet Allocation,LDA)主题模型是最简单的主题模型,它描述的是一篇文章是如何产生的。其原理如下图所示: 从左往右看,一个主题是由一些词语的分布定义的,比如蓝色主题是由2%几率的data,2%的number……构成的。一篇文章则是由一些主题构成的,比如右边的直方图。具体产生过程是,从主题集合中按概率分布选取一些主题,从该主题中按概率分布选取一些词语,这些词语构成了最终的文档(LDA模型中,词语的无序集合构成文档,也就是说词语的顺序没有关系)。 如果我们能将上述两个概率分布计算清楚,那么我们就得到了一个模型,该模型可以根据某篇文档推断出它的主题分布,即分类。由文档推断主题是文档生成过程的逆过程。 在《LDA数学八卦》一文中,对文档的生成过程有个很形象的描述: LDA是一种使用联合分布来计算在给定观测变量下隐藏变量的条件分布(后验分布)的概率模型

2.1:监督学习导学

淺唱寂寞╮ 提交于 2020-02-11 21:46:06
监督学习的目标 利用一组带有标签的数据,学习从输入到输出的映射,然后将这种映射关系应用到未知数据上,达到分类或回归的目的。 分类:当输出是 离散的 ,学习任务为分类任务。 回归:当输出是 连续的 ,学习任务为回归任务。 分类学习 输入:一组有标签的训练数据(也称观察和评估),标签表明了这些数据(观察)的所署类别。 输出:分类模型根据这些训练数据,训练自己的模型参数,学习出一个适合这组数据的分类器,当有新数据(非训练数据)需要进行类别判断,就可以将这组新数据作为输入送给学好的分类器进行判断。 分类学习-评价 • 训练集(training set):顾名思义用来训练模型的已标注数据,用来建立模型,发现规律。 • 测试集(testing set):也是已标注数据,通常做法是将标注隐藏,输送给训练好的模型,通过结果与真实标注进行对比,评估模型的学习能力。训练集/测试集的划分方法:根据已有标注数据,随机选出一部分数据( 70% )数据作为训练数据,余下的作为测试数据, 此外还有交叉验证法,自助法用来评估分类模型。 分类学习-评价标准 精确率:精确率是针对我们预测结果而言的,( 以二分类为例 )它表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),也就是 召回率:是针对我们原来的样本而言的

bagging和boosting

≡放荡痞女 提交于 2020-02-10 16:47:07
bagging 有放回抽样,各分类器之间没有关联 例如随机森林 boosting 分类器的损失是下一个分类器的训练标签,各分类器之前有关联 例如xgboost 来源: CSDN 作者: Jiiaaaoooo 链接: https://blog.csdn.net/Jiiaaaoooo/article/details/104249048

关于机器学习二分类问题的几个评估指标辨析

╄→гoц情女王★ 提交于 2020-02-09 13:11:33
在完成机器学习中的二分类问题的建模阶段后,需要对模型的效果做评价,如今业内通常采用的评价指标有精确率(Precision)、准确率(Accuracy)、召回率(Recall)、F值(F-Measure)等多个方面,为了准确理解以避免混淆,本文将对这些指标做简要介绍。 1 混淆矩阵 其实,上面提及的诸多评测指标都是在混淆矩阵上衍生出来的,因此先简要介绍混淆矩阵。 针对二分类问题,通常将我们所关心的类别定为正类,另一类称为负类;例如使用某种分类器预测某种疾病,我们关心的是“患病”这种情况,以便及早接受治疗,所以将“患病”设为正类,“不患病”设为负类。 混淆矩阵由如下数据构成: True Positive (真正,TP):将正类预测为正类的数目 True Negative (真负,TN):将负类预测为负类的数目 False Positive(假正,FP):将负类预测为正类的数目(误报) False Negative(假负,FN):将正类预测为负类的数目(漏报) 接下来介绍的几种评价指标都是由上述四个数据相互运算产生。 2 准确率(accuracy) 计算公式为:acc = (TP+TN)/(TP+TN+FP+FN) 准确率是最常见的评价指标,很容易理解,就是预测正确的样本数占所有的样本数的比例;通常来说,准确率越高分类器越好。然而,在正负样本极不平衡的情况下

Convolutional Neural Networks for Visual Recognition 1

五迷三道 提交于 2020-02-07 09:54:48
Introduction 这是斯坦福计算机视觉大牛李菲菲最新开设的一门关于deep learning在计算机视觉领域的相关应用的课程。这个课程重点介绍了deep learning里的一种比较流行的模型:Convolutional Neural Networks,简称CNN,主要利用CNN来做visual recognition,或者说是image classification,object recognition等。我自己在学习的过程中,一边翻译一边总结,整理出这些中文版的lecture notes,英文好的同学可以直接看原文,课程的网址是: http://cs231n.stanford.edu/ 学习这门课程,需要一定的数学基础,包括线性代数,概率论,统计等,还要对传统的机器学习有一定的了解,可以参考斯坦福大学机器学习大牛Anderw的课程,另外一个前提条件是编程,这门课程没有用matlab,而是用了当下比较流行的一种语言python,课程中所有的程序都是用python写成的,所以还要学习python编程,这门课程对python有简单的介绍,并且还推荐了相应的python版本及编译器,这些信息都可以在课程网站上找到。 我在这里转译的中文lecture notes,认为大家都已经搞定了上述所需的前提条件,就是有一定的数学基础,也了解机器学习,并且安装了相应的python和IDE

06-Message Passing and Node Classification 图机器学习之信息传播与节点分类

丶灬走出姿态 提交于 2020-02-06 23:54:42
信息传播和节点分类 给定网络中一些节点的label,如何确定其他节点的label 例如,一个网络中一些节点是诈骗犯,一些节点是可信度高的人,那么如何判断其他节点? 半年监督节点分类 协作分类:collective classification 利用网络中的关联关系 接下来,今天会学3个技巧: 1)relational classification : 关系分类 2)iterative classification:迭代分类 3)belief propagation:置信传播 网络中的关联存在 导致相关关系的3类主要依赖类型: 1)趋同性 2)影响力 3)交互性? 预测米黄色的节点的label 1)相似的节点通常会紧密关联或者直接相连 2)节点的label通常依赖于:节点的特征;节点的邻居;节点邻居的特征 假设网络具备趋同性,那么预测灰色节点的label W:带权重的连接矩阵 Y:label +1,-1,0(待打标签) 使用节点间的相互关联关系进行分类 马尔科夫假设:节点i的label yi由他的邻居们Ni决定 分为三步:1)local classifier:分配初始的label 2)relational classifier:捕捉节点间的关联关系 3)collective inference:相关关系的传播 local classifier: 使用节点自身属性进行分类

python打包,上传包知识点学习

大兔子大兔子 提交于 2020-02-06 16:30:43
python 打包工具推荐 PyPi PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。PyPI推荐使用pip包管理器来下载第三方库 pip可正常工作在Windows、Mac OS、Unix/Linux等 操作系统 上,但是需要至少2.6+和3.2+的CPython或PyPy的支持。python 2.7.9 和3.4以后的版本已经内置累pip程序,所以不需要安装 安装包的工具 使用pip安装来自PyPI的包 将virtrualenv或venv用于python环境的应用级隔离 创建包与分发的公工具 使用setuptools来定义项目并创建源代码发行版 使用wheel而不是egg来创建构建发行版 使用twine向PyPI上传包的发行版 pip install安装包与python install安装包的区别 项目配置 组织大型应用的代码的最简单的方法旧式将其分成几个包,这样做将使代码更容易理解,维护和修改,也使每个包的可复用性最大化,就像使用组件一样方便。 setup.py 对于一个需要被分发的包来说,其根目录包含一个setup.py脚本。它定义了distutils模块中描述的所有元数据,并将其合并为标准的setup()函数调用的参数。虽然distutils是一个标准库模块

图片分类器是如何工作的?

别说谁变了你拦得住时间么 提交于 2020-02-06 06:27:11
这篇文章是翻译官方IOS TuriCreate的图片分类器的使用。 原文链接: 图片分类器如何工作的? 图片分类器是如何工作的? 深度学习是在机器学习世界中随处可见的一个短语。它似乎正在帮助我们取得巨大的突破,但深度学习是什么呢?它是一种具有多层非线性转换的模型,频繁的通过该模型学习数据的高层表达的一种方法。让我们花点时间分析一下最后一句话。学习数据的高层表达意味着深度学习模型将获取数据,例如图片的原始像素值,并针对该数据学习诸如“是动物”或“是猫”等抽象概念。好的,很容易,但是“多层非线性变换”的含义是什么呢?从概念上讲,多层非线性变换意味着将简单的非线性函数组成了一个复杂的非线性函数,该函数可以将像原始像素值一样复杂的东西映射到图片类别上。这就是让深度学习模型获得如此惊人结果的原因。 卷积神经网络(CNN)是计算机视觉领域中最常见的方法。通常,挑战在于如何选择网络的层数,以及如何初始化模型参数值(也称为权重)等等。基本上,如果把深度学习模型比作一台机器,该机器上有许多令人困惑的旋钮(称为超参数,基本上是算法无法学习的参数),如果随机设置的情况下,模型的效果可能很差。但是,当良好的超参数设置组合在一起时,结果将非常强大。 图片分类器工具包的主要目标是降低创建模型的复杂度,该模型适用于不同类别图片的数据集(大型或小型)。 迁移学习 要解决的任务和已经解决的任务有相关性是很常见的

图片分类器部署到Core ML

前提是你 提交于 2020-02-06 04:09:32
这篇文章是翻译官方IOS TuriCreate的图片分类器的使用。 原文链接: 部署到Core ML 部署到Core ML 借助Core ML框架,您可以使用机器学习模型对输入数据进行分类。 可以使用 export_coreml 函数导出Core ML格式的模型。 model.export_coreml ( 'MyCatDogClassifier.mlmodel' ) 在Xcode中打开模型时,其外观如下所示: 通过简单的拖拽过程,你可以将模型合并到Xcode中。需要以下Swift代码才能在iOS应用中使用该模型。 let model = try VNCoreMLModel ( for: MyCustomImageClassifier ( ) .model ) let request = VNCoreMLRequest ( model: model, completionHandler: { [ weak self ] request, error in self?.processClassifications ( for: request, error: error ) } ) request.imageCropAndScaleOption = .centerCrop return request 有关在iOS和macOS的Core