用线性回归无编码实现文章浏览数预测

简介:
继 无编码利用协同算法实现个性化推荐,我纯粹使用SQL和配置实现了一个更为复杂一些的,计算文章词汇的tf/idf值,将浏览数作为预测值,使用线性回归算法进行模型训练的示例。帮助大家更好的了解StreamingPro对算法的优秀支持。这篇文章的示例将会跑在Spark 2.0 上了。为了方便大家体验,我已经将Spark 安装包,StreamignPro,以及分词包都准备好,大家下载即可。

准备工作

我们假设你下载的StreamingPro,ansi-seg包在/tmp目录下。然后将Spark 2.0 解压,进入主目录。

复制如下模板

  1. 我已经发布了三个配置文件,分别计算:
  2. 词汇的 idf 值 ,链接 
  3. 给每个词汇生成一个唯一的数字标示,链接
  4. 使用线性回归算法进行训练, 链接
PS : 有道笔记有时候第一次刷不出来,你刷新下就好。
复制保存三个文件:
  1. /tmp/idf.json
  2. /tmp/term-index.json
  3. /tmp/lr-train.json

本机运行

生成idf 文件:
cd  $SPARK_HOME

./bin/spark-submit   --class streaming.core.StreamingApp \
--master local[2] \
--name test \
--jars /tmp/ansj_seg-5.0.0-all-in-one.jar \
/tmp/streamingpro-0.3.3-SNAPSHOT-online-mllib-2.0.0.jar \
-streaming.name test    \
-streaming.platform spark   \
-streaming.job.file.path file:///tmp/idf.json
生成内容会存储成Parquet文件。在/tmp/idf 目录下可以看到具体文件。
接着生成 term index ,文件位于 /tmp/term-with-index,最后进行模型训练,训练好的模型在/tmp/lr-model
后续只要在Spark Streaming中加载,即可完成流式计算。

配置文件简要说明

以lr-train.json为例,大体框架如下:
{
  "lr1": {
    "desc": "LR模型训练Job",
    "strategy": "streaming.core.strategy.SparkStreamingStrategy",
    "compositor": [  ]
  },
  "udf_register": {
    "desc": "通过这个方式可以注册你自己开发的udf函数",
    "strategy": "streaming.core.strategy.SparkStreamingRefStrategy",    
        "compositor": [  ]
  },
  "term_index_ref_table": {
    "desc": "在这里申明表,可以在job中被引用",
    "strategy": "streaming.core.strategy.SparkStreamingRefStrategy",
    "algorithm": [],
    "ref": [],
     "compositor": [  ]
  },
  "term_idf_ref_table": {
    "desc": "在这里申明表,可以在job中被引用",
    "strategy": "streaming.core.strategy.SparkStreamingRefStrategy",    
    "algorithm": [],
    "ref": [],
     "compositor": [  ]
  }
}
这里有一个job,两个关联表,一个UDF函数注册模块。我在配置文件的描述中已经有说明。job 是一个可执行的main函数,你可以这么理解。关联表申明后可以直接在job的sql中使用。UDF函数注册模块则可以使得你很容易扩展SQL的功能。
他们唯一的区别是,Job 的strategy 是 SparkStreamingStrategy,而其他非Job则是SparkStreamingRefStrategy。
因为一个配置文件里可能有多个Job,每个Job引用的关联表也是不一样,你需要显示指定引用,在Job 的ref中申明即可:
  "lr1": {
    "strategy": "streaming.core.strategy.SparkStreamingStrategy",
    "ref": [
      "udf_register",
      "term_index_ref_table",
      "term_idf_ref_table"
    ],
    "compositor": [
这样框架自动为你准备好关联引用,注册UDF函数,然后在lr1 这个job中就可以使用了。比如lr里的parse 函数就是通过udf_register模块提供的。
之后就是定义输入,执行的SQL,以及输出(存储或者模型引擎)。 SQL在案例中你可以看到,可以非常复杂,多个SQL模块之间可以互相作用,通过多条SQL实现一个复杂的逻辑。比如我们这里试下了tf/idf计算等功能。

文/祝威廉(简书作者)
原文链接:http://www.jianshu.com/p/d053a21944f5
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
目录
相关文章
|
7月前
|
人工智能 运维 自然语言处理
AI原生·轻量化集成:开源知识库核心竞争力解析
在企业数字化转型与研发效率提升的双重驱动下,传统静态Wiki系统已难以适配复杂知识管理需求。基于大模型的开源知识库平台,以AI原生设计、富文本协同、多源导入与轻量化集成为核心,为技术文档、产品手册、FAQ与内部知识库提供全链路解决方案,本文结合技术特性、部署实践与真实场景案例,展开深度解析。
|
1月前
|
人工智能 自然语言处理 运维
AI实战见真章:2026大模型客服系统深度横评与实测
本文深度解析2026年大模型驱动的智能客服演进趋势,以阿里云瓴羊Quick Service为样本,指出行业正从“能否答对”转向“能否办完”。文章系统拆解其三层架构、AI Agent闭环执行、RAG知识增强、人机协同等核心能力,并通过长城汽车、申通快递等实测案例,验证其在任务完成率、满意度及降本增效上的显著成效。(239字)
|
3月前
|
人工智能 缓存 前端开发
刚刚 Kimi K3 炸裂发布,号称 Claude 和 GPT 的国产平替,夯爆了!
新模型 Kimi K3 实战项目测评,跟 Claude Fable 5 和 GPT-5.6 相比到底怎么样?前端和全栈工程能力如何?DeepSeek 2.0 时刻来了?
871 1
|
4月前
|
SQL 数据采集 自然语言处理
企业做智能问数,最推荐的分阶段实施路径是什么?
本文提出企业智能问数分阶段实施的核心判断框架,强调“可控复杂化”理念:以本体语义层路线为优选路径,分三阶段推进——语义建模筑基、业务知识校准、运营机制固化。适用于央国企、多系统复杂组织及有长期扩展需求的企业,但需匹配数据治理基础与语义治理能力。
|
5月前
|
SQL 缓存 关系型数据库
【MySQL百日打怪升级第18天】事务隔离级别详解:RC、RR、Serializable 到底怎么选?
本系列第18天详解MySQL事务隔离级别:RC(读已提交)、RR(可重复读,默认)、Serializable。厘清脏读、不可重复读、幻读三大问题,剖析InnoDB下RR如何借MVCC+Gap Lock基本防幻读,并给出RC与RR选型建议及真实避坑指南。
567 0
|
搜索推荐 项目管理 开发工具
odoo是啥
【6月更文挑战第23天】odoo是啥
1444 3
|
Unix Linux 网络安全
林帆:Docker运行GUI软件的方法
欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯! 继上周的“Kubernetes v1.0特性解析”分享之后,本周我们邀请到ThoughtWorks咨询师林帆为大家带来主题为“Docker运行GUI软件的方法”的分享。
4285 0
|
开发框架 .NET C#
探索VB.NET:了解.NET Framework下的Visual Basic
【4月更文挑战第27天】Visual Basic进化为VB.NET,融入.NET Framework,提供面向对象编程、泛型、LINQ等特性。VB.NET是强类型语言,支持类型推断,通过Windows Forms和WPF构建桌面应用。广泛应用于企业级、Web和数据处理开发,是易学且功能强大的编程工具。随着.NET版本更新,VB.NET的应用仍具价值,适合初学者和资深开发者。
900 1
|
人工智能 运维 云计算
飞天技术观丨开放的Autonomous Cloud,开启AI崭新时代
面向智能时代,阿里云将通过从底层算力到AI平台再到模型服务的全栈技术创新,升级云计算体系,打造一朵AI时代最开放的云。2023年,AI和云计算也终于走在一起,融合出更有生命力的广阔空间。
飞天技术观丨开放的Autonomous Cloud,开启AI崭新时代
|
存储 Oracle 关系型数据库
Typora+PicGo+super-prefix+阿里云OSS设置图床
Typora+PicGo+super-prefix+阿里云OSS设置图床

热门文章

最新文章