sklearn 聚类_Python.sklearn聚类学习丨如何快速辨别海量真假新闻?

6d297f464d82996d33fd12379438bb12.png

人类在处理大量信息时,是有局限的。

如果现在有几条新闻让你辨别真假:

1,“震惊!深圳市将于10月25日发生极昼现象!”;

2,“腾讯将给每位微信用户充值100元,手慢无”;

3,“美职篮:湖人4-2中击败热火,荣获赛季总冠军”……

你肯定觉得超简单,但如果现在有几千甚至数万条新闻让你辨别真假,你会觉得“是在玩我吧!”。

82f4e53613543670bb830554002c153d.png
图1:黑人问号

当然,如果你特别有毅力,可能会尝试一下各种评判标准,去进行快速筛选,但这样大量快速手工操作的准确率和效率,往往可能是不尽如人意的。

怎么办呢?这个时候就要借助AI了,也就是机器学习,让计算机通过学习足够数量的样本,根据数据中的特征构建模型,并利用此模型对新的情境给出判断和预测。

你可能会觉得有点意思了!更加有意思的是你也可以通过机器学习的方法,利用Python里强大的scikit-learn 包中的聚类学习工具,来迅速判定海量新闻的真假(而Atlas OS的云主机的使用能让整个过程轻松便捷)。

下面跟着视频或图文介绍来试试看!

知乎视频​www.zhihu.com

一,数据和代码准备

我们从DataFlair的“Fake News Detection Project”教程中收集了6335条真假新闻数据集,并开发了相应学习代码。(数据和代码链接

:https://data-flair.training/blogs/advanced-python-project-detecting-fake-news/)

二,环境搭建

如果我们要进行sklearn聚类学习,就需要一个Python开发环境来进行开发,为了省去可能会有一万字的繁琐环境搭建步骤,所以这里选择了Atlas OS 的达仁云主机Linux+JupyterLab开发环境,里面已经预设好了Python环境,只需简单几步就能调出使用。

1,首先在浏览器中输入http://atlas.daren.io登陆(如果没有账号可以注册一个);

e724ecd846b2e3cdb8ca25ad5c639493.png
图2:Atlas OS登录界面

2,选择达仁云主机,新建一个虚拟硬盘,并上传新闻数据集文件news.csv,这是一个逗号分隔的纯文本文档,可以用任何的文本编辑器打开查看;

dac2dab000d0e44f08b62c34e17ec9c7.png
图3:达仁云主机虚拟硬盘界面

3,选择主机镜像,启动Linux+Jupyterlab镜像,并选择镜像配置,这里选了一个2核2G的就够了,跑一个小时才0.1元,然后选择数据文件所在的虚拟硬盘,点击启动云主机。

14f1dc6af09ef0b6f973bc25be783066.png
图4:镜像选择界面

4,仅需2分钟,一个崭新的Linux+Jupyterlab镜像就出炉了,在主机信息中,点击进入云主机,复制密码在网页登陆,就可以看到镜像界面了。

4bc0e989518e8c613d69557cf216a91a.png
图5:Linux+Jupyterlab界面

三,开始机器学习:真假新闻识别

首先在Terminal里,安装这个机器学习项目需要的支撑包。

fc861638686e7712d00e16fe550daf07.png
图6:安装项目支撑包

这个项目使用的数据是我们之前放入虚拟硬盘的数据文件news.csv。这里面有6335条真假新闻数据,包含新闻标题、内容和真假性质数据。

然后新建一个JupyterLab文档,在文档的代码中先import项目需要的支撑包,并读取数据。

698b386139edab342e49ea4cd4af2b3b.png
图7:写入项目支撑包

一个机器学习的项目里,我们需要将数据的一部分作为模型训练使用,一部分用来测试。这个例子里面我们可以看到test_size=0.001,也就是随机使用千分之一的数据用来测试,剩下的千分之九百九十九的其他数据用来训练模型。这个test_size参数可以根据需要调整。

a46a4bc278b61d27fa7b72806b5939a3.png
图8:调整测试数据比例

我们使用sklearn TfidfVectorizer函数,用TF-IDF词频-逆向文件频率方法进行文本特征提取,使用sklearn fit_transform 函数根据输入的训练数据,统计词汇词典并返回数据对象,生成文档稀疏矩阵,建立模型。

最后,我们使用sklearn PassiveAggressiveClassifier来做学习,这是一种增量学习算法(PA算法),即被动感知算法对测试数据进行预测,并统计结果。

38c0b8ae93e3d4b20918d51142da7a13.png
图9:建立模型进行预测

我们可以看到这里程序输出了部分新闻的信息,以及模型对测试数据的预测结果和真实数据的对比信息,以及最终预测正确与错误的数据。可以看到这里这几个简单测试的结果预测准确率为100%,也就是说,本次随机测试到的7条新闻完成预测正确。

770aad2717d7a35ce31806881248d215.png
图10:预测结果

上面测试数据较少,调整test_size=0.2,运行,查看结果,这里显示计算出的模型的预测准确率有92%以上。我们可以看到对1267条测试数据的验证结果: 589个真阳性,587个真阴性,42个假阳性和49个假阴性(即1176个预测正确,91个预测错误)。

60ec9f90c1b300433a42b62ed9cafeb0.png
图11:验证结果

可以看到,在达仁云主机中开启环境,可以快速学习和实践Python的机器学习功能。我们通过这个简单的scikit-learn聚类学习项目,我们可以判断出90%以上的假新闻。那么在这个广告和假新闻满天飞的年代,也许我们后续可以逐步按这个方式过滤假新闻。

你学会了吗?想要马上练习!赶快登陆http://atlas.daren.io一键启用你的云主机吧,不仅是JupyterLab,达仁云主机还提供RStudio、Eclipse等多种主流开发环境,可选配置多达百余种,可选CPU涵盖1~96核,可选内存涵盖0.5~3TB,可选硬盘涵盖1GB~16TB,费用低至0.03元每小时起,浏览器中即开即用,这下再也不用为各种学习、开发、测试环境而苦恼了。

想了解更多新鲜实用的云计算和云数据分析工具欢迎关注“Atlas OS”微信公众号,或联系达仁基算团队ddeng@daren.io。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值