《构建实时机器学习系统》一2.3 实时线性分类器介绍

简介: 本节书摘来自华章出版社《构建实时机器学习系统》一 书中的第2章,第2.3节,作者:彭河森 汪涵,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 实时线性分类器介绍

2.3.1 广义线性模型的定义

(广义)线性模型是机器学习发展几十年来理论和工具上最为完备的模型:不管是分类还是预测,线性模型都可以进行实时更新和预测;线性模型的解释性非常优秀,每个变量的回归系数都可以用于解释模型;最后,我们可以通过增减变量,修改特定的回归系数对模型进行人为加工。
继续前文的符号定义,假设回归因变量为 Y ,自变量为 p 维向量 X。在线性模型中,我们企图获得 p 维参数向量,让我们可以通过 X 个个元素的现行组合得到Y 。它们的关系可以通过下面的函数来表示:
screenshot

其中,F ()为因变量 Y 的累计概率分布,E()为数学期望的计算。我们可以从以下两个部分来解读这个模型。
(1)线性输入
η=XTb,每个自变量 Xi对模型输出的贡献都是线性的,其贡献大小都由对应的 i 来决定。当bi= 0 时,自变量 Xi 不会影响最后的预测。这些线性输入的总和会直接影响最后因变量的取值。
(2)可预计的输出
给定η时,因变量的取值由连接函数 f 和 Y 的分布 F 来决定。我们常用的 f 和 e 有以下三种情况。
当 f(η) =η,且 F () 为正态分布的累计概率分布时,模型等于对正态分布的连续变量进行线性预测。
当 f(η) = 1/(1 + exp(η)),且 F() 为二项分布累计概率分布的时候,模型等于逻辑回归模型,可用于对男女、好恶等类别进行分类预测。
当 f(η) = exp(η),且 F ()为泊松分布累计概率分布的时候,模型等于泊松模型,可用于对订票人数、车辆通过数量等数据进行预测。
综上所述,众多数据模型都是可以通过线性模型的特殊情况进行建模预测的。

2.3.2 训练线性模型

给定已知的样本 {(Xi, Yi)}ni=1,假设现在需要通过模型训练得到线性模型参数b,那么我们往往会定义目标函数 L,通过随机梯度下降的方法求得b,使得 L 尽量小:
screenshot

其中,λ1和λ2是预先设置好的非负参数,| · |1 为计算 L1 的范数,| · |2 为计算 L2 的范数。
上面的目标函数可以分为如下两部分来理解。
预测误差:目标函数L第一项预测误差,我们训练一个模型当然是希望其得到的误差应尽量小。
惩罚函数 (penalty function):目标函数L中第二、三项的存在是为了防止所得模型的过度拟合,加入L1惩罚函数还可以进行变量优先选择。
这里的参数λ1 和 λ2都是实现选择的参数,可以通过多次比较不同的模型来获取最有效的组合。
现在对线性模型的拟合工作已经在主流机器学习软件工具中完全自动化,在Scikit-learn中,对线性回归模型的拟合主要采用 sklearn.linear_model.SGDRegressor,对于分类问题,主要采用 sklearn.linear_model.SGDClaffier。

2.3.3 冷启动问题

机器学习应用中,其实收集数据才是最昂贵的一部分。若没有数据,那么一切模型都将是空中楼阁。对于新企业或新项目,没有数据进行模型训练,那么怎么样才能有最初始的模型呢?没有数据就有没模型,但是如果没有模型,往往也会难以收集到数据。怎么样才能解决这个鸡生蛋、蛋生鸡的问题呢?这个问题可能会因为不同的组织而有不同的答案,这里主要总结如下两个方案。

  1. 借用其他相关数据

如果无法获得当前组织的机器学习数据进行建模,那么其中一个办法是从其他来源获取类似的数据,建立暂时能用的模型。等到产品成熟了,收集到足够多的数据以后再开发自身专有的模型。
例如,某初创业公司需要对小说影评的正负评价进行分类。但苦于暂时没有现成的数据,因此借用了相关网站,如豆瓣、知乎等帖子的内容,作为训练数据;又因为没有评价正负标签,该公司将豆瓣评分、知乎投票数量进行转化,获得了模型的正负标签。
2.人工参与
在遇到建模冷启动问题的时候,该模型的使用人数往往并不高,如果对延迟的要求不高,完全可以通过人工标记的方法来解决。
例如,国内某家已经上市的门户视频网站,成立多年以来,分类、标记、推荐等业务都是通过人工完成的,且取得了尚佳的结果。如今该网站上市之后拥有了雄厚的资金实力,聘请了顶尖的机器学习专家进行视频的标签标记和推荐。此时通过多年的努力该网站已经积累了大量的标签数据,建模的效果也相当好。
另外一方面,处理冷启动问题的时候,我们也可以将人工意见写入模型之中,使其自动化运行。例如对于股价走势预测模型,我们可以通过人工经验,对历史走势、成交量等因子进行人工打分,将人工打分的结果放入现行模型中,进行前期应用。
当然,所有人工参与的方式都离不开严格的监督流程。本书的第9章会介绍通过 Elasticsearch 对数据进行可视化分析和质量监控的方法。

相关文章
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
104 4
|
14天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
20 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
27天前
|
机器学习/深度学习 数据采集 人工智能
使用Python实现简单的机器学习分类器
【8月更文挑战第37天】本文将引导读者了解如何利用Python编程语言构建一个简单的机器学习分类器。我们将从基础概念出发,通过代码示例逐步深入,探索数据预处理、模型选择、训练和评估过程。文章旨在为初学者提供一条清晰的学习路径,帮助他们理解并实现基本的机器学习任务。
|
2月前
|
机器学习/深度学习 人工智能 开发者
使用Python实现简单的机器学习分类器
【8月更文挑战第31天】在这篇文章中,我们将探索如何使用Python来创建一个简单的机器学习分类器。通过使用scikit-learn库,我们可以快速构建和训练模型,而无需深入了解复杂的数学原理。我们将从数据准备开始,逐步介绍如何选择合适的模型、训练模型以及评估模型的性能。最后,我们将展示如何将训练好的模型应用于新数据的预测。无论你是机器学习的初学者还是有一定经验的开发者,这篇文章都将为你提供一个实用的指南,帮助你入门并理解基本的机器学习概念。
|
2月前
|
机器学习/深度学习 PHP 开发者
探索PHP中的面向对象编程构建你的首个机器学习模型:以Python和scikit-learn为例
【8月更文挑战第30天】在PHP的世界中,面向对象编程(OOP)是一块基石,它让代码更加模块化、易于管理和维护。本文将深入探讨PHP中面向对象的魔法,从类和对象的定义开始,到继承、多态性、封装等核心概念,再到实战中如何应用这些理念来构建更健壮的应用。我们将通过示例代码,一起见证PHP中OOP的魔力,并理解其背后的设计哲学。
|
2月前
|
机器学习/深度学习 人工智能 Android开发
揭秘AI编程:从零开始构建你的第一个机器学习模型移动应用开发之旅:从新手到专家
【8月更文挑战第29天】本文将带你走进人工智能的奇妙世界,一起探索如何从零开始构建一个机器学习模型。我们将一步步解析整个过程,包括数据收集、预处理、模型选择、训练和测试等步骤,让你对AI编程有一个全面而深入的理解。无论你是AI初学者,还是有一定基础的开发者,都能在这篇文章中找到你需要的信息和启示。让我们一起开启这段激动人心的AI编程之旅吧! 【8月更文挑战第29天】在这篇文章中,我们将探索移动应用开发的奇妙世界。无论你是刚刚踏入这个领域的新手,还是已经有一定经验的开发者,这篇文章都将为你提供有价值的信息和指导。我们将从基础开始,逐步深入到更复杂的主题,包括移动操作系统的选择、开发工具的使用、
|
2月前
|
机器学习/深度学习 人工智能 算法
【悬念揭秘】ML.NET:那片未被探索的机器学习宝藏,如何让普通开发者一夜变身AI高手?——从零开始,揭秘构建智能应用的神秘旅程!
【8月更文挑战第28天】ML.NET 是微软推出的一款开源机器学习框架,专为希望在本地应用中嵌入智能功能的 .NET 开发者设计。无需深厚的数据科学背景,即可实现预测分析、推荐系统和图像识别等功能。它支持多种数据源,提供丰富的预处理工具和多样化的机器学习算法,简化了数据处理和模型训练流程。
37 1
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
基于python 机器学习算法的二手房房价可视化和预测系统
文章介绍了一个基于Python机器学习算法的二手房房价可视化和预测系统,涵盖了爬虫数据采集、数据处理分析、机器学习预测以及Flask Web部署等模块。
基于python 机器学习算法的二手房房价可视化和预测系统
|
2月前
|
机器学习/深度学习 数据处理 定位技术
构建您的首个机器学习项目:从理论到实践
【8月更文挑战第28天】本文旨在为初学者提供一个简明的指南,通过介绍一个基础的机器学习项目——预测房价——来揭示机器学习的神秘面纱。我们将从数据收集开始,逐步深入到数据处理、模型选择、训练和评估等环节。通过实际操作,你将学会如何利用Python及其强大的科学计算库来实现自己的机器学习模型。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往机器学习世界的大门。
|
2月前
|
机器学习/深度学习 自动驾驶 算法
揭秘机器学习:用Python构建你的首个预测模型
【8月更文挑战第26天】 机器学习,这个听起来既神秘又遥不可及的领域,实际上正悄然改变着我们的世界。从推荐系统到自动驾驶汽车,机器学习技术无处不在。本文将带你走进机器学习的世界,通过一个简单的Python代码示例,展示如何构建一个基本的线性回归模型来预测房价。不需要复杂的数学公式或深奥的理论,我们将以最直观的方式理解机器学习的核心概念。无论你是编程新手还是数据科学爱好者,这篇文章都将为你打开一扇新的大门,让你看到数据背后的力量。
下一篇
无影云桌面