实践表明,许多企业公司在实施分析项目方面面临困难。
事实是,与经典的铁项目或适合线性执行模型的供应商解决方案的引入不同,与高级分析(数据科学)相关的任务很难以清晰,明确的技术规范形式进行形式化,足以传达表演者。 由于任务的执行需要集成大量内部IT系统和数据源,因此情况变得更加严峻,只有在开始处理数据并揭示真实的事务状态后才会出现一些问题和答案,这与世界纪录片大相径庭。 这一切都意味着,要写出能胜任的传统知识,有必要开展相当于项目一半的工作的前期工作,专门用于研究和形式化实际需求,分析数据源,它们之间的关系,结构和差距。 在组织的框架中,实际上不存在能够完成如此庞大的工作的员工。 因此,事实证明,对比赛提出了完全粗糙的要求。 最好的情况是,在澄清了一系列问题之后,比赛将被取消(发送以进行修订)。 在最坏的情况下-对于庞大的预算和很长的时间,结果与需求创建者的计划完全不同。 他们一无所有。
一个合理的选择是在公司内部创建一个数据科学(DS)团队。 如果您不打算建造埃及金字塔,那么一个团队和2-3名合格的专家可以做的非常非常大。 但是,这里又出现了一个问题,即如何准备这些专家。 下面我想分享一组成功测试的考虑因素,以快速准备以R为武器的这种“特种部队”。
它是以前出版物的延续。
发行
目前,在市场上寻找合格的专业人才是一个大问题。 因此,考虑简单识字且足够的学习策略非常有用。 同时,观察到了所需培训的细节:
- 几个月没有机会学习,必须尽快获得结果;
- 有必要强调公司的实际任务;
- 在工业DS中,与数据处理相关的任务比与AI \ ML相比要多得多;
- 工业级DS不是艺术之家,而是一种结构化的活动,可以转换为稳定的应用程序代码。
由于Coursera,Datacamp,各种书籍以及ML程序的出色表现,没有一套课程不允许获得所需的特性。 它们是增强技能的极好资源,但是很难快速上手。 快速启动的主要任务是指示路径,沼泽,陷阱; 熟悉现有工具的范围; 展示如何使用该工具解决公司的任务; 从船上扔进湖里游泳。
重要的是要证明R不仅是一个工具,而且还是一个适当的社区。 因此,利用了大量相关的发展,包括 演示是与社区合作的一种形式。 哈德利甚至可以在高音喇叭或github中写问题。 对于有价值的问题,您可以获得全面的答案。
作为各种实验的结果,获得了一种“深潜R”结构方法来供应基础材料。
潜入R
- 最佳课程持续时间为50小时(7-6小时约为7-9天)。
- 本课程的主要目标是形成使用最佳算法快速编写高质量和有效代码的实践技能。
- 最好针对特定任务创建全面的演示-通过这种方式,您可以更快地熟悉工具和方法。
- 所考虑的大量问题有助于形成有关生态系统功能的表示形式和“书签”。
- 每天的故障不是教条,而是计划的焦点控制。
- 为了每天展示和巩固材料,分析了复杂程度和数量不同的实际任务。
每个学生在开始学习之前,都将从他的领导那里收到一项实际任务(“学期报告”),其形式为实际任务,他必须在潜水过程中完成并在课程结束时进行防守。
第一天
简要介绍R.语法和语言结构。 使用RStudio IDE进行分析和开发的基础。 基本类型和数据。 交互式计算和程序代码执行。 R Markdown和R Notebook的简要介绍。 与图书馆合作的原则。 准备进行分析工作,安装必要的库,创建项目。 分析计算的原理,寻找瓶颈(极长)的地方并消除它们。
- R的历史与生态
- RStudio备忘单
- R-Markdown入门
- 培训/工作质量的标准:我们使用最佳算法快速编写快速而紧凑的代码
- 向量化
- 评估代码执行速度:
system.time
, tictoc
, benchmark
, profvis
, profvis
- 系统性能评估:
benchmarkme
- 生态系统R,语言基础
- 值
NA
, NULL
, NaN
。 - 运算符
=
, ==
, <-
- 函数
is.na()
, is.null()
, is.nan()
,( is.finite()
, is.infinite()
) - 子集和切片
第二天
“ tidyverse”软件包的概念和生态系统( https://www.tidyverse.org/ )。 其中包含的软件包的简要概述(导入/处理/可视化/导出)。 tidy data
的概念是tidy data
工作的基础。 “ tibble”作为数据表示格式。 (来自tidyverse生态系统的软件包)。 转换和数据处理。 流处理(管道)的语法和原理。 - -
。 ( tibble
, dplyr
, tidyr
。)
第三天
使用ggplot( https://ggplot2.tidyverse.org/reference/index.html )形成图形表示。 使用图形工具分析业务数据。
ggplot2图形语法的温和指南
添加。 链接到小部件和图表示例
外接式
创建动画
第四天
使用字符串和枚举类型。 正则表达式的基础。 处理日期。 (可stringi
, stringr
, forcats
, re2r
, lubridate
)
第五天
高级数据导入。 txt,csv,json,odbc,网页抓取(REST API),xlsx。
( readr
, opexlsx
, jsonlite
, curl
, rvest
, httr
, readtext
, DBI
, data.table
)
- 工作目录。
getwd()
, setwd()
。 应用程序包here
rspivot
。 rspivot是RStudio的Shiny小工具,用于查看数据帧。- 打包和添加
datapasta
。 - 阅读器简介 。 遍历列规范功能。
- 使用Excel:
- 演示中的网页抓取:
第六天
导出数据。 rds,csv,json,xlsx,docx,pptx,odbc。 R Markdown和R Notebook的基础知识。
(包opexlsx
, officer
, DBI
, jsonlite
, readr
, data.table
, knitr
)
包括
- 使用R
officer
创建演示文稿。 - 通过编织导出为PDF-> LaTeX
- 直接导出到Word
第七天
R中编程的基础知识。创建函数。 变量的范围。 查看对象。 查看对象及其结构。 操作原理是“通过链接”。
- 功能的概念。 创建自己的功能。
- 环境的概念。 高级R.7环境
- for循环,while循环
- purrr教程
- “安全”计算的概念及其在批次分析中的使用(
safely
) - Profvis-用于更快的R代码的性能分析工具
- 惰性评估方法,非标准评估,
lobstr
程序包
第八天
验证中间结果和最终结果的方法。 协作原理和可复制计算的形成。 演示闪亮的应用程序作为最终用户的目标界面。 ( reprex
checkmate
, reprex
, futile.logger
, shiny
)
- 防御性编程。 参数验证。
checkmate
包, 速度就是我们的一切 。 - 输入验证:
- 使用
futile.logger
。 - 2018-09_reprex-rstudio-网络研讨会
第九天
处理“平均”大小的数据的方法和方法。 打包data.table
。 主要功能。 比较实验分析。
1-8天之内出现的其他问题概述。
第十天
课程保护
Windows 10成员职位要求
书本
结论
- 建议的供稿顺序不是教条。 可能存在各种减损,包括。 材料,包括数学插入物。 一切都取决于实际的主题问题和任务,这些主题和任务将针对该课程确定,并列出受欢迎的生产问题。 最受欢迎的是回归,聚类,文本挖掘和时间序列算法。
- 使用ML算法和外部平台进行并行计算,创建闪亮的应用程序的问题不适合“快速浸入”的概念,但是可以在实际工作开始后继续进行。
PS HR通常很难制定工作要求。
这是种子的可能示例。 每个补充和规则根据他们的期望。
数据科学(DS):大数据和分析。 工作要求
- 学历:
- 技术或自然科学更高。
- 欢迎提供学科课程证书(Coursera,DataCamp)。
- 英语是一种资产(免费阅读技术文献,对不适应的口头表达有自信的理解,在技术交流水平上的口头语言)。
- 经验:
- 在DS领域-至少1年。
- 至少有2年的团队开发经验,涉及敏捷方法。
- 具有开发用户界面(WEB + JS)的经验。
- 具有开发文档的经验。
- 具备以下技术的丰富知识(至少占列表的30%):
- SQL + No-SQL后端(每种数据库类型中的至少一种)。
- 用于DS任务(Python和/或两者)的开源编程语言。
- 用于存储和处理大数据的平台(Hadoop及其衍生产品,Spark \ Ignite,ClickHouse,Vertica,ELK堆栈...)
- 面向最终用户的Web-GUI开发的HTML + JS + CSS基础。
- 精通数学统计和线性代数的基础知识。
- 时间序列(包括预测和异常搜索)。
- 机器学习,神经网络。
- 文本挖掘和正则表达式。
- Windows + Nix系统管理基础。
- 用于处理和可视化地理信息的工具和算法(ESRI,OpenStreet,Yandex Maps,Google Maps,leaflet等)可用于处理shap和GPX文件。
- 数据导入数据科学工具及其规范化(文件,ODBC,REST API,Web-爬网)。
- 可视化(Tableau,QlikView,Excel,Shiny \ Dash)。
- 商业数学软件包(Wolfram Mathematica,Maple,Matlab)。
- 工作职责:
- 检查和准备源数据。
- 假设的发展及其对原始数据的验证。
- 数学模型的开发及其测试。
- 开发软件设计解决方案。
- 开发Web应用程序和交互式仪表板。
- 开发纸质报告。
- 分析电路的调试,测试,开发和维护。
- 更新项目文档。
上一篇文章- “ R提高生产率有多快?” 。