数据分析实战45讲
陈旸
清华大学计算机博士
立即订阅
17314 人已学习
课程目录
已完结 48 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 你为什么需要数据分析能力?
免费
第一模块:数据分析基础篇 (16讲)
01丨数据分析全景图及修炼指南
02丨学习数据挖掘的最佳路径是什么?
03丨Python基础语法:开始你的Python之旅
04丨Python科学计算:用NumPy快速处理数据
05丨Python科学计算:Pandas
06 | 学数据分析要掌握哪些基本概念?
07 | 用户画像:标签化就是数据的抽象能力
08 | 数据采集:如何自动化采集数据?
09丨数据采集:如何用八爪鱼采集微博上的“D&G”评论
10丨Python爬虫:如何自动化下载王祖贤海报?
11 | 数据科学家80%时间都花费在了这些清洗任务上?
免费
12 | 数据集成:这些大号一共20亿粉丝?
13 | 数据变换:考试成绩要求正态分布合理么?
14丨数据可视化:掌握数据领域的万金油技能
15丨一次学会Python数据可视化的10种技能
16丨数据分析基础篇答疑
第二模块:数据分析算法篇 (20讲)
17 丨决策树(上):要不要去打篮球?决策树来告诉你
18丨决策树(中):CART,一棵是回归树,另一棵是分类树
19丨决策树(下):泰坦尼克乘客生存预测
20丨朴素贝叶斯分类(上):如何让机器判断男女?
21丨朴素贝叶斯分类(下):如何对文档进行分类?
22丨SVM(上):如何用一根棍子将蓝红两色球分开?
23丨SVM(下):如何进行乳腺癌检测?
24丨KNN(上):如何根据打斗和接吻次数来划分电影类型?
25丨KNN(下):如何对手写数字进行识别?
26丨K-Means(上):如何给20支亚洲球队做聚类?
27丨K-Means(下):如何使用K-Means对图像进行分割?
28丨EM聚类(上):如何将一份菜等分给两个人?
29丨EM聚类(下):用EM算法对王者荣耀英雄进行划分
30丨关联规则挖掘(上):如何用Apriori发现用户购物规则?
31丨关联规则挖掘(下):导演如何选择演员?
32丨PageRank(上):搞懂Google的PageRank算法
33丨PageRank(下):分析希拉里邮件中的人物关系
34丨AdaBoost(上):如何使用AdaBoost提升分类器性能?
35丨AdaBoost(下):如何使用AdaBoost对房价进行预测?
36丨数据分析算法篇答疑
第三模块:数据分析实战篇 (7讲)
37丨数据采集实战:如何自动化运营微博?
38丨数据可视化实战:如何给毛不易的歌曲做词云展示?
39丨数据挖掘实战(1):信用卡违约率分析
40丨数据挖掘实战(2):信用卡诈骗分析
41丨数据挖掘实战(3):如何对比特币走势进行预测?
42丨当我们谈深度学习的时候,我们都在谈什么?
43丨深度学习(下):如何用Keras搭建深度学习网络做手写数字识别?
第四模块:数据分析工作篇 (2讲)
44丨如何培养你的数据分析思维?
45丨求职简历中没有相关项目经验,怎么办?
加餐 (1讲)
加餐丨在社交网络上刷粉刷量,技术上是如何实现的?
结束语 (1讲)
结束语丨当大家都在讲知识和工具的时候,我更希望你重视思维和实战
数据分析实战45讲
登录|注册

36丨数据分析算法篇答疑

陈旸 2019-03-06
算法篇更新到现在就算结束了,因为这一模块比较难,所以大家提出了形形色色的问题。我总结了同学们经常遇到的问题,精选了几个有代表性的来作为答疑。没有列出的问题,我也会在评论区陆续解答。

17-19 篇:决策树

答疑 1:在探索数据的代码中,print(boston.feature_names) 有什么作用?

boston 是 sklearn 自带的数据集,里面有 5 个 keys,分别是 data、target、feature_names、DESCR 和 filename。其中 data 代表特征矩阵,target 代表目标结果,feature_names 代表 data 对应的特征名称,DESCR 是对数据集的描述,filename 对应的是 boston 这个数据在本地的存放文件路径。
针对 sklearn 中自带的数据集,你可以查看下加载之后,都有哪些字段。调用方法如下:
boston=load_boston()
print(boston.keys())
通过 boston.keys() 你可以看到,boston 数据集的字段包括了 [‘data’, ‘target’, ‘feature_names’, ‘DESCR’, ‘filename’]。

答疑 2:决策树的剪枝在 sklearn 中是如何实现的?

实际上决策树分类器,以及决策树回归器(对应 DecisionTreeRegressor 类)都没有集成剪枝步骤。一般对决策树进行缩减,常用的方法是在构造 DecisionTreeClassifier 类时,对参数进行设置,比如 max_depth 表示树的最大深度,max_leaf_nodes 表示最大的叶子节点数。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《数据分析实战45讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(12)

  • Kaggle的Python数据分析入门教程:https://www.kaggle.com/kanncaa1/data-sciencetutorial-for-beginners

    另外入门级别的kernels就是Titanic和房价预测:
    1、https://www.kaggle.com/c/titanic
    2、https://www.kaggle.com/c/house-prices-advanced-regression-techniques

    编辑回复: 对的,Kaggle里很多数据集都不错,另外在专栏里也会讲到关于信用卡违约率分析和信用卡欺诈分析。下面整理了一些数据集,更多数据集,可以通过https://www.kaggle.com/datasets 查找

    Titanic: Machine Learning from Disaster
    Titanic乘客生存预测
    https://www.kaggle.com/c/titanic

    House Prices-Advanced Regression Techniques
    预测房价
    https://www.kaggle.com/c/house-prices-advanced-regression-techniques

    MNIST手写数字识别
    https://www.kaggle.com/scolianni/mnistasjpg

    Passenger Satisfaction
    乘客满意度,提供了美国航空公司US Airline乘客满意度数据
    https://www.kaggle.com/johndddddd/customer-satisfaction

    Bike Sharing Demand
    自行车共享数据库,用于预测自行车的共享需求
    https://www.kaggle.com/lakshmi25npathi/bike-sharing-dataset

    San Francisco Building Permits
    5年时间,三藩市20万的建筑许可
    https://www.kaggle.com/aparnashastry/building-permit-applications-data

    San Francisco Crime Classification
    12年时间的三藩市的犯罪记录
    https://www.kaggle.com/kaggle/san-francisco-crime-classification

    2019-03-06
    12
  • 程序员小熊猫
    老师可以总结一下,这十个算法的应用场景、优缺点吗

    编辑回复: 首先十个经典算法代表了十种数据挖掘思想,基于他们都有不少算法的变种和改进,对数据挖掘的影响是非常深远的。
    另外这十大经典算法,解决的问题也不同,按照解决问题来划分的话:
    分类算法:C4.5,朴素贝叶斯(Naive Bayes),SVM,KNN,Adaboost,CART
    聚类算法:K-Means,EM
    关联分析:Apriori
    连接分析:PageRank
    所以这十大算法要解决的问题也不同,比如分类是一种有监督的学习方式,事先知道样本的类别,通过数据挖掘可以将不同类别的样本进行区别,从而对未知的物体进行分类。而聚类是一种无监督的学习方式,事先不知道样本的类别,而是通过相关属性分析,将具有类似属性的物体聚成一类。
    所以对十大算法的理解,想要知道他们解决的是哪类问题。然后针对同一类问题,比如分类问题,也有不同种解法,比如C4.5,朴素贝叶斯,SVM,KNN等。
    不同的算法实际上都有自己对这个问题分析的方式,很难说哪种算法更优,哪个算法不好。实际上这和我们的样本有很大关系,不同的样本属性,样本分布,特征值等,采用不同的算法结果都会有差别,最好的方式就是都做一遍,然后选择针对这个训练集/测试集最优的算法。所以你能看到,在后面的练习中,我们往往都在采用多种算法。
    另外我想说的是,关于算法的研究,这十大算法是根基,很多人都会在这些算法基础上提出自己的模型,就类似于研究生期间发表论文,都是在这些算法(会有这个算法相应的参考文献)的基础上进行的改进。同时,也会给出自己所采用的的数据集,然后针对这个数据集,采用传统方法和改进方法进行对比,得出结论。所以:算法是可以改进的,采用哪个适合和数据集也有关系,很多时候都会做一遍然后选择适合的。

    2019-03-07
    5
  • 听妈妈的话
    https://www.kaggle.com/learn/overview 页面里有分类好的比较简单的kernel,可以fork kernel在kaggle上运行,也可以下载ipynb或者rmd文件在自己的电脑上运行。比较经典的kaggle竞赛有泰坦尼克预测,房价预测,数字识别等,刚起步时可以参考这些竞赛里的kernel.
    另外,有一个开源组织ApacheCN有一些kaggle的培训,有很多相关的活动,也可以找同伴组队参加比赛。

    编辑回复: 整理的不错 可以看看 https://www.kaggle.com/learn/overview

    2019-03-23
    2
  • 王彬成
    一、sklearn自带的小数据集(packageddataset):sklearn.datasets.load_<name>

    1)鸢尾花数据集:load_iris():用于分类任务的数据集
    2)手写数字数据集:load_digits():用于分类任务或者降维任务的数据集
    3)乳腺癌数据集load_breast_cancer():简单经典的用于二分类任务的数据集
    4)糖尿病数据集:load_diabetes():经典的用于回归认为的数据集,值得注意的是,这10个特征中的每个特征都已经被处理成0均值,方差归一化的特征值。
    5)波士顿房价数据集:load_boston():经典的用于回归任务的数据集
    6)体能训练数据集:load_linnerud():经典的用于多变量回归任务的数据集。

    体能训练数据集中的特征名称linnerud.feature_names为['Chins', 'Situps', 'Jumps']
    鸢尾花数据集的特征名称iris.feature_names为['sepal length (cm)','sepal width (cm)','petal length (cm)','petal width (cm)']
    2019-03-06
    2
  • third
    import sklearn.datasets as db
    # help(db)#可以查看文档,有很多的数据集
    # 准备数据集
    iris=db.load_iris()
    print(iris.feature_names)
    结果
    ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']

    说来惭愧,到现在为止,都还没有注意到Kaggle的重要性。刚去看看了入门,发现这篇文章介绍的不错
    http://www.360doc.com/content/18/0106/16/44422250_719580875.shtml#

    一些摘要
    Kaggle成立于2010年,是一个进行数据发掘和预测竞赛的在线平台。从公司的角度来讲,可以提供一些数据,进而提出一个实际需要解决的问题;从参赛者的角度来讲,他们将组队参与项目,针对其中一个问题提出解决方案,最终由公司选出的最佳方案可以获得5K-10K美金的奖金。

    除此之外,Kaggle官方每年还会举办一次大规模的竞赛,奖金高达一百万美金,吸引了广大的数据科学爱好者参与其中。从某种角度来讲,大家可以把它理解为一个众包平台,类似国内的猪八戒。但是不同于传统的低层次劳动力需求,Kaggle一直致力于解决业界难题,因此也创造了一种全新的劳动力市场——不再以学历和工作经验作为唯一的人才评判标准,而是着眼于个人技能,为顶尖人才和公司之间搭建了一座桥梁。
    2019-03-06
    2
  • 王彬成
    在第21课朴素贝叶斯分类(下),对中文文档进行分类,老师可以提供完整代码吗?一直遇到对中文词组不支持的问题?

    编辑回复: 完整代码在https://github.com/cystanford/text_classification

    2019-03-06
    1
  • 周志翔
    我觉得在kaggle可以学到很多数据处理的方法,看厉害的人怎么做的,是个很不错的网站

    作者回复: 对 有不少优质的kernel可以参考和学习

    2019-07-22
  • Hulk
    K-Means的例子还是看不懂

    编辑回复: 这里想说明的是KMeans计算的中心点,实际上是这个类别里所有点的 属性值的平均值。然后作为这个新的中心点的属性值。如果还不理解的话,可以加数据分析的微信群

    2019-07-07
  • 滨滨
    预减枝就是在划分子树的时候不能带来准确度的提升,就不划分。后减枝就是试着减掉每一个叶子节点,看准确度是否有提升。
    2019-04-23
  • 吃饭睡觉打窦窦
    学校学了一遍,这里又学一遍,这才把东西学透点,但是我好奇为啥课堂上学不会呀?[滑稽](老师是个海归)

    编辑回复: 哈哈 需要和知识反复交朋友,其实很多需要推导的知识,往往需要学习多次,所以也很正常。

    2019-03-27
  • 程序员小熊猫
    老师 为什么三个相关性大的特征只选一个呢?原理是什么?

    编辑回复: 首先特征选择是数据挖掘(机器学习)中的重要问题之一,一般来说对于数据特征空间大的数据集来说,我们需简要对特征进行选择,也就是选取有代表性的特征,来降低特征空间的冗余度,提升算法的效率。
    特征选择的过程,你可以理解是从m个特征中选择n个特征的过程,文章中从三个相关性大的特征只选择一个,目的是在于降低冗余信息,缩减特征维数。

    2019-03-06
  • 王彬成
    在第21课朴素贝叶斯分类(下):
    在模块4:生成朴素贝叶斯分类器,特征训练集的特征空间 train_features,以及训练集对应的分类 train_labels 是如何获取的。老师并没有讲清楚。
    2019-03-06
收起评论
12
返回
顶部