36丨数据分析算法篇答疑
36丨数据分析算法篇答疑
讲述:陈旸
时长11:20大小10.40M
17-19 篇:决策树
答疑 1:在探索数据的代码中,print(boston.feature_names) 有什么作用?
答疑 2:决策树的剪枝在 sklearn 中是如何实现的?
答疑 3:对泰坦尼克号的乘客做生存预测的时候,Carbin 字段缺失率分别为 77% 和 78%,Age 和 Fare 字段有缺失值,是如何判断出来的?
答疑 4:在用 pd.read_csv 时报错“UnicodeDecodeError utf-8 codec can’t decode byte 0xcf in position 15: invalid continuation byte”是什么问题?
第 20-21 篇:朴素贝叶斯
答疑 1:在朴素贝叶斯中,我们要统计的是属性的条件概率,也就是假设取出来的是白色的棋子,那么它属于盒子 A 的概率是 2/3。这个我算的是 3/5,跟老师的不一样,老师可以给一下详细步骤吗?
22-23 篇:SVM 算法
答疑 1:SVM 多分类器是集成算法么?
26-27 篇:K-Means
答疑 1:我在给 20 支亚洲球队做聚类模拟的时候,使用 K-Means 算法需要重新计算这三个类的中心点,最简单的方式就是取平均值,然后根据新的中心点按照距离远近重新分配球队的分类。对中心点的重新计算不太理解。
28-29 篇:EM 聚类
答疑 1:关于 EM 聚类初始参数设置的问题,初始参数随机设置会影响聚类的效果吗。会不会初始参数不对,聚类就出错了呢?
30-31 篇:关联规则挖掘
答疑 1:看不懂构造 FP 树的过程,面包和啤酒为什么会拆分呢?
答疑 2:不怎么会找元素的 XPath 路径。
答疑 3:最小支持度可以设置小一些,如果最小支持度小,那么置信度就要设置得相对大一点,不然即使提升度高,也有可能是巧合。这个参数跟数据量以及项的数量有关。理解对吗?
34-35 篇:AdaBoost 算法
答疑 1:关于 和 的含义
赞 8
提建议
精选留言(16)
- 志2019-03-06Kaggle的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
23 - 小熊猫2019-03-07老师可以总结一下,这十个算法的应用场景、优缺点吗
编辑回复: 首先十个经典算法代表了十种数据挖掘思想,基于他们都有不少算法的变种和改进,对数据挖掘的影响是非常深远的。 另外这十大经典算法,解决的问题也不同,按照解决问题来划分的话: 分类算法:C4.5,朴素贝叶斯(Naive Bayes),SVM,KNN,Adaboost,CART 聚类算法:K-Means,EM 关联分析:Apriori 连接分析:PageRank 所以这十大算法要解决的问题也不同,比如分类是一种有监督的学习方式,事先知道样本的类别,通过数据挖掘可以将不同类别的样本进行区别,从而对未知的物体进行分类。而聚类是一种无监督的学习方式,事先不知道样本的类别,而是通过相关属性分析,将具有类似属性的物体聚成一类。 所以对十大算法的理解,想要知道他们解决的是哪类问题。然后针对同一类问题,比如分类问题,也有不同种解法,比如C4.5,朴素贝叶斯,SVM,KNN等。 不同的算法实际上都有自己对这个问题分析的方式,很难说哪种算法更优,哪个算法不好。实际上这和我们的样本有很大关系,不同的样本属性,样本分布,特征值等,采用不同的算法结果都会有差别,最好的方式就是都做一遍,然后选择针对这个训练集/测试集最优的算法。所以你能看到,在后面的练习中,我们往往都在采用多种算法。 另外我想说的是,关于算法的研究,这十大算法是根基,很多人都会在这些算法基础上提出自己的模型,就类似于研究生期间发表论文,都是在这些算法(会有这个算法相应的参考文献)的基础上进行的改进。同时,也会给出自己所采用的的数据集,然后针对这个数据集,采用传统方法和改进方法进行对比,得出结论。所以:算法是可以改进的,采用哪个适合和数据集也有关系,很多时候都会做一遍然后选择适合的。
共 2 条评论13 - 王彬成2019-03-06一、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)']展开
作者回复: 很好的总结 感谢
8 - 听妈妈的话2019-03-23https://www.kaggle.com/learn/overview 页面里有分类好的比较简单的kernel,可以fork kernel在kaggle上运行,也可以下载ipynb或者rmd文件在自己的电脑上运行。比较经典的kaggle竞赛有泰坦尼克预测,房价预测,数字识别等,刚起步时可以参考这些竞赛里的kernel. 另外,有一个开源组织ApacheCN有一些kaggle的培训,有很多相关的活动,也可以找同伴组队参加比赛。展开
编辑回复: 整理的不错 可以看看 https://www.kaggle.com/learn/overview
4 - Merlin2020-01-29尝试过kaggle上预测房价的项目,适合入门
作者回复: 不错 加油
3 - 滨滨2019-04-23预减枝就是在划分子树的时候不能带来准确度的提升,就不划分。后减枝就是试着减掉每一个叶子节点,看准确度是否有提升。3
- third2019-03-06import 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一直致力于解决业界难题,因此也创造了一种全新的劳动力市场——不再以学历和工作经验作为唯一的人才评判标准,而是着眼于个人技能,为顶尖人才和公司之间搭建了一座桥梁。展开
作者回复: kaggle给数据分析师提供了非常好的数据集
3 - 建强2019-12-28有一个问题想请教一下老师,每次做算法模型训练,用训练集数据拟合一个模型后,如何把它保存下来,如果不保存拟合后的模型,每次要做新的预测时,难道都要用样本训练集重新拟合模型?
作者回复: 可以使用picke工具 import pickle # fp_lr_model 是模型保存的文件位置 pickle.dump(lr_model, open(fp_lr_model, 'wb')) lr_model = pickle.load(open(fp_lr_model, 'rb'))
2 - 吃饭睡觉打窦窦2019-03-27学校学了一遍,这里又学一遍,这才把东西学透点,但是我好奇为啥课堂上学不会呀?[滑稽](老师是个海归)
编辑回复: 哈哈 需要和知识反复交朋友,其实很多需要推导的知识,往往需要学习多次,所以也很正常。
2 - 小熊猫2019-03-06老师 为什么三个相关性大的特征只选一个呢?原理是什么?
编辑回复: 首先特征选择是数据挖掘(机器学习)中的重要问题之一,一般来说对于数据特征空间大的数据集来说,我们需简要对特征进行选择,也就是选取有代表性的特征,来降低特征空间的冗余度,提升算法的效率。 特征选择的过程,你可以理解是从m个特征中选择n个特征的过程,文章中从三个相关性大的特征只选择一个,目的是在于降低冗余信息,缩减特征维数。
2 - 王彬成2019-03-06在第21课朴素贝叶斯分类(下),对中文文档进行分类,老师可以提供完整代码吗?一直遇到对中文词组不支持的问题?
编辑回复: 完整代码在https://github.com/cystanford/text_classification
2 - 王彬成2019-03-06在第21课朴素贝叶斯分类(下): 在模块4:生成朴素贝叶斯分类器,特征训练集的特征空间 train_features,以及训练集对应的分类 train_labels 是如何获取的。老师并没有讲清楚。2
- 小晨2021-03-11答疑3:carbin是卡宾枪 /偷笑/偷笑
作者回复: 感谢提醒。代表船舱的字段是Cabin,而不是carbin
1 - 周志翔2019-07-22我觉得在kaggle可以学到很多数据处理的方法,看厉害的人怎么做的,是个很不错的网站
作者回复: 对 有不少优质的kernel可以参考和学习
1 - Hulk2019-07-07K-Means的例子还是看不懂
编辑回复: 这里想说明的是KMeans计算的中心点,实际上是这个类别里所有点的 属性值的平均值。然后作为这个新的中心点的属性值。如果还不理解的话,可以加数据分析的微信群
共 2 条评论1 - 宏伟2021-09-28陈老师,微软的PowerBI里已经集成了Python,可以安装anaconda,那么您课程里的十大算法是不是都可以在powerbi里的Python操作建模、拆分数据集、训练、验证、测试,乃至部署模型、进入实战呢? 之前看您讲Python的IDE时,没有提到anaconda的jupyter notebook。但黄佳老师(我就是从他的机器学习课程链接到您的课程的)讲,传统机器学习用notebook就可以了。 期盼回复。展开1