数据科学家是我未来一个职业的备选项,所以平时就比较关注这方面的资讯,正好前两天听了一个关于博士生的职业规划讲座,讲者的身份是英国某四大的lead data scientist,从中获益良多,正好趁这个机会总结下。
这个讲座是主要是针对博士在读或者博士学位获得者的,特别是一些非CS专业的同学如何准备data scientist的职业准备。
工业界特点
首先提到的是不同于学术界,data scientist通常情况属于工业界,具有以下7个特点:
- 驱动力:商业敏锐度,快速的经济回报,生活方式的改变,对工程项目兴趣等。
- 能力:信息收集,解决问题,独立性,技术写作,公开演讲等。
- 匹配:深入研究“创新研究”,转化为行业问题或快速学习相关技能
- 团队合作:帮助他人,互相讨论,极客,Kaggle比赛等。
- 态度:乐于学习(业务,基础架构,工具),乐于融入企业/公司文化,适应力等
- 风格:有趣,有创造力,开放,支持,鼓励等
- 公司文化:科技公司,咨询公司,金融服务,初创公司,公务员
个人前期准备
讲者提到了应届生在进行职业规划的时候,不一定非得追求一步到位到科技公司或者互联网公司,因为这些公司竞争通常相当激烈。反而可以参考一些公司甚至银行等金融机构的graduate scheme,这种渠道对于非CS科班出身的同学非常友好,成功率也相对来说更大一点,之后再跳槽也非常的方便。
另外,对于一个打算找业界工业的应届生,应该尽量充实自己的以下几个方面:
- 就业区域:未来几年内的想去的地方,尽早谋划
- 尽早与业界沟通:比如可以通过科研项目合作尽早跟业界接触,提前了解业界需求
- 技能树:编程,工具掌握,各种证书,外语(非必须)
- 刷题:很多IT公司都要走这一步,逃不掉
- 兜售你的科研成果:在博士就读期间,肯定会有科研成果发表,不然也毕不了业,那么思考如何将自己的科研成果转化为业界难点的解决办法(比如一套鲁棒性很强的在线分类算法等)、
- 丰富简历:比如写一些博客,个人网站,github代码,kaggle竞赛等
数据科学 Data Science
数学 + 编程,DS的本质就是这两者的结合,这个方向的对口职业一般也需要这两者的结合。比如在金融领域列举了以下几个职业:
- Quant,金融知识和计算机知识结合的职业,会需要到:CFA,CQF,C++, Python, Linux等技能
- 商业分析师:SQL, Java, JS, Perl, ETL tools 等
- 风控:政策理解 + 市场 + 管控 + 欺诈等, 和Python Sql等IT知识
对于大多数人来说,我其实是推荐把数据分析当做一个方向来学的,首先python的优势就在数据处理分析与人工智能。
人工智能的从业门槛很高,自学基本上属于纯玩,性价比不高。
数据分析处理,我觉得是未来各行各业都可能碰到的问题,虽然现在有很多自动化数据处理工具,但是毕竟通用的场景并不多,而那些熟悉某个特定行业领域+数据处理能力的复合型人才就相对可能更吃香。
这里有一门知乎知学堂出品的数据处理精品课程,对于在本职工作之外想要学习一门实用技能的同学,建议免费体验一下,记住,那这个找工作很难,属于锦上添花的技能。
DS需要掌握的几个要点:
Python IDE 集成开发环境:
Jupyter notebooks, Spider, PyCharm等
text editor 文本编辑器:
Sublime text, Vim editor, Visual Studio code
version control 版本控制:
Github, Gitlab, Bitbucket
Cloud sharing functionality 云平台相关:
Google Colab, Kaggle, Azure notebooks, AWS Sagemarker
Package installation 库安装:
pip, conda, homebrew
Common packages 常用库:
Data process: pandas, pyodbc, sqlalchemy, etc.
Visualization: matplotlib, plotly, seaborn, etc.
Machine learning: sklearn, tensorflow
NLP: nltk, spacy, tensorflow, torch
GUI: tinker, flask
Test tool 测试工具
Selenium, Katalon Studio
Containerization and orchestration 容器和编排配置
Docker, Kubernetes
backup and restore 备份和还原
Terraform
算法和技能方向
讲者用下面这张图做了一个总体的介绍。
并列举了一些常用的算法:
Classification 分类算法:
比如说判断某个邮件是否是垃圾邮件。
- 需要的输入数据: 特征features和对应的数据标签 label
- 常用的分类算法:
- Linear Classifiers: Logistic Regression, Naive Bayes Classifier
- Nearest Neighbour:
- Support Vector Machines
- Decision Trees
- Boosted Trees
- Random Forest
- Neural Networks
- 性能衡量标准:
- accuracy, precision, recall, F1 score
- confusion matrix
- AUC
Regression 回归算法:
比如通过地理位置,供需变化等参数与拟合一个预测房价变化的模型。
- 需要的输入数据: 特征features和对应的数据标签 label
- 常用的回归算法:
- simple linear regression
- polynomial regression
- support vector regression
- decision tree regression
- random forest regression
- 性能衡量标准:
- Mean Squared Error(MSE)
- Root-Mean-Squared-Error(RMSE)
- Mean-Absolute-Error(MAE)
- R² or Coefficient of Determination
- Adjusted R²
Clustering 聚类算法:
比如说在保险行业,可以用于确定平均理赔费用较高的汽车保单持有人群体,识别欺诈行为。
- 需要的输入数据: 特征features(不需要label,un-supervised)
- 常用的聚类算法:
- K-Means clustering
- mean-shift clustering
- density-based spatial clustering of applications with noise (DBSCAN)
- expectation–maximization (EM) clustering using Gaussian Mixture Models (GMM)
- agglomerative hierarchical clustering
- 性能衡量标准:
- clustering tendency: Hopkins test - a statistical test for spatial randomness of a variable to measure the probability of data points generated by uniform data distribution
- number of clusters: elbow method
- clustering quality: Silhouette Coefficient
Dimension reduction 降维方法
优点包括:降低存储成本,减少计算时间,提高算法性能,有利于可视化
常用的方法:
- data filters: missing value ratio, low variance filter, high correlation filter
- random forest
- backward feature elimination
- forward feature selection
- factor analysis
- principal component analysis (PCA)
- independent component analysis
- ISOMAP
- t- distributed stochastic neighbour embedding (t-SNE)
- uniform manifold approximation and projection (UMAP)
Ensemble Learning 集成学习
原理可以简单理解为三个臭皮匠顶个诸葛亮,结合多个基学习器进行学习并预测,通常具有不错的性能
三大主流的集成学习方法: 详细请参考:<a href="http://zhuanlan.zhihu.com/p/36161812" class="internal">https://zhuanlan.zhihu.com/p/36161812
- Bagging:使用bootstrap aggregation
- Boosting:将多个弱学习器集成为一个强学习器(多为同质学习器)
- Stacking:类似于Boosting,但多余异质学习器的组合
NLP 自然语言处理
为什么选择NLP?
- 非结构化文本数据常常会出现在实际场景中
- 企业主希望从非结构化内容中提取有用的信息以发现问题
- 内容丰富和情感分析可以帮助做出更明智的决策
典型NLP任务:
- 文字分类
- 情绪分析
- 主题建模
- 文字总结
- 实体识别
- 信息检索
统计方面
在算法部分中已经涵盖了一部分的统计学知识,其余的统计知识比如假设检验等知识可以从这本书中查漏补缺
《面向数据科学家的实用统计学》
总结:
讲座大概持续了一个半小时,信息量很大,我的理解就是对于一个数据科学家,数学+统计+编程+业务理解,这四个方面都得面面俱到。
如果你能坚持看到这里,那么就去学吧,从最简单也是最直观的数据分析学起来吧,并且试着从知乎知学堂出品的数据分析课开始吧。 |