抽空将《Python数据挖掘入门与实践》通读了一遍,初步了解了下相关算法及效果。若要深入研究,那还需要大量的时间进行专题研究,比如KMeans算法、随机森林、神经网络、MapReduce等等。
总体而言,这本书非常接地气,不拿高深理论和抽象概念来烧脑,秉持了程序员一言不合就show me the code的优良传统,是一本值得推荐和学习的关于Python数据挖掘的好书。
不过虽然定位入门,但门槛并不低,如果没有一定的编程经验,原书代码理解起来会比较费劲的。不管怎样,书本非常适合一线程序员阅读,五星推荐!
章节 | 主题 | 重点内容 |
第1章 | 亲和度 分析 |
- 商品推荐:客户购买面包、牛奶、奶酪、苹果和香蕉记录,基于置信度排序得出前五大规则
- 支持度(support)和置信度(confidence)
|
OneR算法 |
- 经典的Iris数据集(150个样本,每个样本4个特征:萼片及花瓣的长和宽)
- 按照错误率最低原则,找出最佳规则并以此来分类
|
第2章 | 估计器 分类 |
- 电离层(Ionosphere)数据集
- 近邻算法(K近邻估计器KNeighborsClassifier),特征值规范化(用MinMaxScaler规范到0~1)
- 估计器Estimator,转换器Transformer,流水线Pipeline(通过named_steps[]获得具体步骤)
|
第3章 | 预测NBA 比赛胜负 |
- NBA 2013-2014赛季的比赛数据
- Pandas处理数据,特征值提炼及转换(LabelEncoder、OneHotEncoder)
- 决策树/随机森林分类器,模型调参(GridSearchCV)选取局部最优参数
|
第4章 | 推荐电影 |
- 电影数据集(100万条数据,Grouplens研究团队发布)
- Apriori算法:频繁项集(frequent itemset),关联规则(前提->结论)
- 亲和性分析:按置信度最高,得到前五大推荐规则
- 不可更改集合frozenset的用法
|
第5章 | 预测 年收入 |
- Adult数据集
- 删除方差达不到最低标准的特征(VarianceThreshold)
- 选取K个最佳特征SelectKBest(卡方检验chi2,皮尔逊相关系数pearsonr)
- 交叉检验cross_val_score
|
主成分 分析 |
- Advertisements数据集
- 主成分分析算法(Principal Component Analysis,PCA),主成分中某特征的方差对总体方差的贡献率,主成分散点图
|
自定义 转换器 |
- 转换器基类TransformerMixin
- 函数fit()接受训练数据、transform()进行转换
- 自定义均值离散化MeanDiscrete类(大于均值取1,否则0)
|
第6章 | 朴素 贝叶斯 |
- 社会媒体挖掘(下载Twitter网站数据,Json接口)
- NLTK自然语言分词(word_tokenize)、字典转向量矩阵(DictVectorizer)、伯努利二值贝叶斯(BernoulliNB)
- 其他:魔术方法%%html和%%javascript(Jupyter中嵌入html交互操作)
|
第7章 | 好友推荐 |
- 下载Twitter好友样本(150名用户的好友数据)
- NetworkX库创建有向图、无向图,边权重为好友相似度
- 杰卡德相似系数(Jaccard Similarity,交集数量/并集数量,值介于0~1之间)
- 轮廓系数(silhouette coefficient):(b-a)/max(b-a),a/b分别为簇内/间距离,求解最大轮廓系数(调用minimize函数)
- 求解图形的连通分支(connected_components)
|
第8章 | 神经网络 破解验证码 |
- 绘图Pillow库(PIL升级版):生成4个字母的验证码,图形的错切(shear)和切割(regionprops函数寻找连续区域)
- pybrain库构建神经网络(输入层、隐含层、输出层),偏置神经元(bias neuron),反向传播训练(BackpropTrainer)
|
第9章 | 作者归属 问题 |
- 从gutenberg下载电子图书(urllib库爬虫)
- CountVectorizer词频及单词N元语法(针对功能词)
- 支持向量机分类算法SVC(参数kernel和C的取值)
|
安然邮件 作者 |
- 安然数据集(安然公司邮件)
- 邮件解析(email.parser),提出回复邮件中原始邮件摘录(quotequail)
- CountVectorizer词频及字符N元语法(邮件正文)
- 生成混淆矩阵(confusion_matrix)并作图
|
第10章 | 新闻语料 分类 |
- reddit官网爬虫,下载worldnews栏目(因国内无法访问,代替使用搜狐新闻语料库,中文通过jieba分词)
- TfidfVectorizer词频权重=log(文档集数量/词语所在文档的数量),出现次数越高权重越低)
- 聚类算法KMeans应用:绘制不同分簇个数对应的惯性值inertia变化趋势,并选取最优分簇个数
- 执行多轮KMeans算法,创建共协矩阵(不同数据点拥有相同的标签),最小生成树(minimum_spanning_tree),连通分支(connected_components)
- 证据累积算法(Evidence Accumulation Clustering,EAC)
- 线上学习:分步KMeans(MiniBatchKMeans)、哈希向量(HashingVectorizer)
|
第11章 | 深度学习 |
- CIFAR-10数据集(有6万张32像素的图像,每个像素都有一个RGB值)
- Theano库和Lasagne库应用(操作Iris数据集并预测)
- nolearn实现神经网络(因nolearn停更,相关代码在python3.6平台上无法运行)
|
第12章 | 大数据处理 |
- blogger数据集(60万篇博客,推测博主性别)
- MapReduce模型:映射(Map)和规约(Reduce)
- mrjob库应用:重载mapper、reducer、steps函数,指定运行参数(output-dir、local-tmp-dir、no-cat-output)
- 正则表达式切割单词(re.compile(r"[\w']+"))
|
所有评论(0)