0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python和R语言都适合进行数据分析

倩倩 来源:读芯术 2020-03-25 16:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Python还是R语言,这是个难题……

这两个异常强大、灵活好用的数据分析语常常让我们难以抉择。

有很多文章将Python语言和R语言在数据科学方面的优缺点进行了比较,但本文并不在其中之列。

与之不同,本文介绍了数据分析师和机器学习工程师的差异,以及他们对编程语言的不同需求。

简单而言,机器学习工程师从根本上来说是软件工程师,他们用的是为软件工程设计的编程语言——而不是统计使用的编程语言。

这听起来相当显而易见,但它代表了机器学习生态系统的一种变化,值得深入研究。

Python和R语言都适合进行数据分析

在以往比较Python和R语言的文章中通常会凸显出某种语言的明显优势,但这些优势充其量是微不足道的、主观的。尽管有些人认为R语言非常规统计函数的优势超过了Python,原因是后者需要使用Numpy这样的第三方库,但这些差异并没有产生那么大的影响。

事实就是R语言和Python都完全可以用于数据分析。

比如,假设用户要对某些数据(例如房价)运行简单的线性回归模型。R语言的运行结果如下:

square_feet 《- c(1000, 1300,942, 1423, 2189)

price 《- c(300000, 299000, 240000, 420000, 600322)correlation 《-lm(price~square_feet)new_house 《- data.frame(square_feet = 1100)

new_house_price = predict(correlation, new_house)print(new_house_price)

而Python的运行结果如下:

import pandas as pd

import statsmodels.api as smdata = {‘square_feet’: [1000, 1300, 942, 1423,2189], ‘price’: [300000, 299000, 240000, 420000, 600322]}

housing_data = pd.DataFrame(data=data)model = sm.OLS(housing_data[‘price’],housing_data[‘square_feet’]).fit()new_data = {‘square_feet’: [1400]}

new_housing_data =pd.DataFrame(data=new_data)model.predict(new_housing_data[‘square_feet’])

两者的差异并非出人意料。一些人可能更青睐某一种语言的语法,或者可能更喜欢R语言的默认绘图库(ggplot2),不喜欢Matplotlib或Python的其他库。而其他人会认为Python比R语言的性能更好。

现实情况是,如果用户要做的只是分析数据,那么任何一种语言都能完成得很不错。

但是机器学习工程与软件有关——并非商业智能

分析数据从而了解业务的公司(也就是商业智能)与将机器学习当作产品一部分的公司有着不同的需求。

正如Foursquare的核心技术负责人亚当·瓦克斯曼所说:

“很多时候,公司说他们有‘数据科学团队’,其实他们有的是分析支持功能。在Foursquare,机器学习模型在产品中占很大比重……Foursquare将数据科学视为产品开发团队的一部分”

瓦克斯曼还表示,在Foursquare,“没有数据科学部门——工程部门负责处理很多事情。”

机器学习工程师的需求是不同的。这里举一个真实的例子。

为公司设计客户服务机器人,可能需要将模型部署为微服务,该服务将接收客户的输入并返回要在机器人前端进行渲染的响应。

构建该应用程序界面需要:

· 加载模型,无论使用哪种框架,它们基本上都具有本地Python包。

· 选择一个框架,服务于应用程序界面。Python有多种选择(其中,Flask最受欢迎),而R语言仅限于Plumbr。

· 考虑到解析用户输入以及与其他服务进行通讯等问题。使用通用脚本语言(比如Python)会更加得心应手。

换句话说,机器学习工程师需要处理工程方面的问题,而Python是更好的选择。

机器学习既是研究领域也是工程学科

要想了解机器学习工程是怎样出现的,看一看相关领域(网络开发)的发展经历非常有用。

2000年,只有一种产品依赖于客户端和服务器之间的异步通信,它就是Outlook Web Access。微软公司负责该产品的团队也同时研发了XMLHTTP。XMLHTTP让后台HTTP请求成为可能。

换句话说,唯一能构建异步应用程序的人就是那些发明了异步应用程序技术的人。

不久之前,机器学习领域也是如此。仅有的几家生产机器学习相关产品的公司同样拥有相当数量的机器学习团队,比如谷歌、脸书和网飞。

但是,网络开发领域很快就将相关人员划分为研究人员和从业人员。研究人员还在研究新技术和框架(通常应用于较大的公司)的时候,大多数从业人员就开始用他们的发明生产产品了。

机器学习领域也出现了类似的趋势。机器学习工程师正在以从业者的身份出现,他们使用大型公司和研究实验室生产的最新模型和框架来生产机器学习驱动型产品。

比如,尼克·沃尔顿在黑客马拉松比赛中使用OpenAI的GPT-2微调版创建了AI地牢,该程序由机器学习驱动,用户可创建自己的冒险游戏:

大多数网络开发人员并不设计自己的数据库或框架,沃尔顿和他们类似,他也没有发明自己的模型架构。相反,他利用机器学习研究人员输出的成果来创建新产品。

像沃尔顿这样的从业人员都把精力放在构建软件上,他们需要使用适合于构建软件(而不是控制面板)的语言进行工作。

机器学习正在走出实验室并投入生产——Python就是机器学习的产物

商业智能和数据分析会一直存在,在这些领域内,R语言仍会是个很受欢迎的选择。但是,机器学习工程已经向前发展了。

越来越多像Foursquare这样的团队涌现出来,对于他们来说,数据科学和机器学习与产品开发和工程有关。负责这些领域的并非数据分析师,而是工程师(根据的是职责,而不是职称),他们使用的是软件工程师熟悉的工具和语言(比如Python)。

R将一直是生成控制面板和输出报告的有效工具。但是,为拼车软件创建估计到达时间功能、为流媒体服务提供内容推荐工具或为照片应用程序提供人脸识别器是机器学习工程师和Python该完成的工作。

笔者的团队为机器学习工程师构建了Cortex,因为我们本来就是希望利用机器学习的软件工程师。笔者所关心的问题与设计新模型无关,而与工程问题有关,比如:

· 与受欢迎的机器学习框架最为匹配的语言是什么?每个框架都有本地Python包。

· 哪种语言最适合编写请求处理代码?Python这样的通用语言。

· 可用于包装应用程序界面模型的最简微服务框架是什么?Flask,当然是Python。

换句话说,笔者的团队为机器学习工程师(而不是数据分析师)建立了一个平台,这就意味着我们支持的是Python,而不是R语言。

而对大家而言,适合的才是最好的,Python和R语言,在不同的领域,面对不同的问题,都有着各自无法取代的优势。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    67

    文章

    8570

    浏览量

    137422
  • python
    +关注

    关注

    59

    文章

    4892

    浏览量

    90424
  • r语言
    +关注

    关注

    1

    文章

    30

    浏览量

    6711
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SCADA采集监控系统提供强大的数据分析与决策支持

    库与图形库 平台内置了算法库、图形库等,方便用户进行数据分析与可视化展示。这有助于企业深入挖掘数据价值,发现生产过程中的瓶颈和优化点。 2、完备的过程控制支持 本平台具备完善的过程控制分析能力,包括
    发表于 05-06 15:21

    利用数据API构建实时数据分析与可视化报表系统

    API(涵盖销售统计、用户画像、流量分析等)进行高效的数据整合、分析,并实现 自定义报表生成 和 实时数据可视化 ,为商业决策提供强大支持。
    的头像 发表于 04-02 15:56 221次阅读
    利用<b class='flag-5'>数据</b>API构建实时<b class='flag-5'>数据分析</b>与可视化报表系统

    使用PYTHON进行的跨平台仿真

    如何使用编程语言Python来调用和控制VirtualLab Fusion中的模拟。请查看下面链接的文档,以找到关于如何设置和使用Python和VirtualLab Fusion之间的接口的详细指南,以及一个
    发表于 04-02 08:21

    API数据分析:淘宝流量来源分析,渠道优化!

    优化渠道策略。我们将使用Python作为工具,结合数据分析和统计方法,确保过程真实可靠。 1. 理解淘宝流量来源 淘宝流量主要来自多个渠道,包括: 直接访问 :用户直接输入淘宝网址或从收藏夹访问。 搜索引擎 :如百度或淘宝内搜索,贡献
    的头像 发表于 01-23 13:42 498次阅读
    API<b class='flag-5'>数据分析</b>:淘宝流量来源<b class='flag-5'>分析</b>,渠道优化!

    利用拼多多用户API进行粉丝数据分析,有效提升用户粘性

    这些API进行粉丝数据分析,并基于分析结果制定增强用户粘性的策略。 一、 拼多多用户API概览 拼多多开放平台提供了丰富的API接口,涵盖商品、交易、用户、物流等多个维度。对于粉丝数据分析
    的头像 发表于 12-30 10:38 445次阅读
    利用拼多多用户API<b class='flag-5'>进行</b>粉丝<b class='flag-5'>数据分析</b>,有效提升用户粘性

    淘宝数据分析API:用户行为洞察,精准营销决策!

    。本文将探讨如何利用这些API实现用户行为的深度洞察,并转化为实际的营销价值。 一、用户行为数据的价值:从流量到洞察 用户进入店铺或浏览商品的每一个动作,蕴含着丰富的信息。传统的数据分析可能停留在流量、转化率等宏观层面
    的头像 发表于 12-25 14:12 486次阅读
    淘宝<b class='flag-5'>数据分析</b>API:用户行为洞察,精准营销决策!

    经营数据分析可以通过哪些方式

    在数聚股份看来,提起经营数据分析,大家往往会联想到一些密密麻麻的数字表格,或是高级的数据建模手法,再或是华丽的数据报表。其实,“ 分析 ”本身是每个人
    的头像 发表于 12-05 16:31 803次阅读

    一文了解Mojo编程语言

    Mojo 是一种由 Modular AI 公司开发的编程语言,旨在将 Python 的易用性与 C 语言的高性能相结合,特别适合人工智能(AI)、高性能计算(HPC)和系统级编程场景。
    发表于 11-07 05:59

    温度循环测试后如何进行数据记录和分析

    温度循环测试后的数据记录和分析是验证电能质量在线监测装置精度稳定性、功能完整性、硬件可靠性的核心环节,需围绕 “数据溯源可查、分析逻辑闭环、结论依据充分” 展开,结合测试标准(IEC
    的头像 发表于 09-26 14:22 764次阅读

    如何使用运行数据趋势分析验证装置准确性?

    负荷变化、设备启停、电网事件)高度匹配,且关键参数波动范围在合理区间内。以下是具体实施步骤、核心分析维度及判断标准: 一、前提:数据预处理 —— 确保分析基础有效 在开展趋势分析前,需
    的头像 发表于 09-18 10:33 654次阅读
    如何使用运<b class='flag-5'>行数据</b>趋势<b class='flag-5'>分析</b>验证装置准确性?

    普迪飞 Exensio®数据分析平台 | Test Operations解锁半导体测试新纪元

    TestOperations是Exensio数据分析平台的四个主要模块之一。T-Ops模块旨在帮助集成器件制造商(IDM)、无晶圆厂半导体公司(Fabless)和外包半导体(产品)封测厂(OSAT
    的头像 发表于 08-19 13:53 1935次阅读
    普迪飞 Exensio®<b class='flag-5'>数据分析</b>平台 | Test Operations解锁半导体测试新纪元

    如何通过数据分析识别设备故障模式?

    通过数据分析识别设备故障模式,本质是从声振温等多维数据中提取故障特征,建立 “数据特征 - 故障类型” 的映射关系,核心可通过特征提取、模式匹配、趋势分析三步实现,精准定位故障根源与发
    的头像 发表于 08-19 11:14 1239次阅读
    如何通过<b class='flag-5'>数据分析</b>识别设备故障模式?

    构建自定义电商数据分析API

      在电商业务中,数据是驱动决策的核心。随着数据量的增长,企业需要实时、灵活的分析工具来监控销售、用户行为和库存等指标。一个自定义电商数据分析API(应用程序接口)可以自动化
    的头像 发表于 07-17 14:44 784次阅读
    构建自定义电商<b class='flag-5'>数据分析</b>API

    AI数据分析仪设计原理图:RapidIO信号接入 平板AI数据分析

    AI数据分析仪, 平板数据分析仪, 数据分析仪, AI边缘计算, 高带宽数据输入
    的头像 发表于 07-17 09:20 963次阅读
    AI<b class='flag-5'>数据分析</b>仪设计原理图:RapidIO信号接入 平板AI<b class='flag-5'>数据分析</b>仪

    如何使用协议分析进行数据分析与可视化

    使用协议分析进行数据分析与可视化,需结合数据捕获、协议解码、统计分析及可视化工具,将原始数据转化为可解读的图表和报告。以下是详细步骤及关键
    发表于 07-16 14:16