《Python数据分析与数据化运营》第二版勘误

本书默认已经修正了第一版遇到的所有问题,因此以下勘误仅限于第二版。有关第一版的勘误,请见“《Python数据分析与数据化运营》第一版勘误”。

最近更新时间:2019-10-10

最近一次新书重印更新为2019.9重印,读者可查看“前言”的前1页找到相关信息,如下:

微信图片_20191010105943

1.P108 第二段文字中,英语、数据、语文成绩……中的“数据”应为“数学”(2019.9重印时更正)。
2.P149 最下面使用聚类算法离散化的amount2的值应该是4个,对应的数据也应该是4个值(2019.9重印时更正)
3.P93 页面顶部描述文字中,“通过df.null方法找到所有数据..”中的df.null应该改为df.isnull()(2019.9重印时更正)
4.P396页,模型训练-交叉验证 章节的代码中的“cv_score = cross_val_score(model_gdbc”应该改为“cv_score = cross_val_score(model_vot”
5.P179 最底部最后一行的文字表述中“不能直接fit到klearn的K-Means模”中的“klearn”应为“sklearn”
6.P198 左侧靠中间位置的文本描述中,(1)部分, “此时的回归模型及其不稳定且方差较大” 中的“及其”应为“极其”
7.P347 步骤5 模型训练 – 建立pipeline中用到的模型对象 模块中缺少pipeline的代码段
8.P102 第2部分生成原始数据中,原始数据应为3行4列

1.P108 第二段文字中,英语、数据、语文成绩……中的“数据”应为“数学”。

解释:如下图圆圈处文字微信图片_20190628132827
2.P149 最下面的amount2的值应该是4个,对应的数据也应该是4个值。
4类聚类群体
使用聚类法实现离散化,k=4,那么应该代表4类数据,对应的唯一值应该是0,1,2,3

3.P93 页面顶部描述文字中,“通过df.null方法找到所有数据..”中的df.null应该改为df.isnull()
在描述缺失值的方法中,页面顶部描述文字中,“通过df.null方法找到所有数据..”中的df.null应该改为df.isnull(),如下图:python_isnull

3.4.P396页,模型训练-交叉验证 章节的代码中的“cv_score = cross_val_score(model_gdbc”应该改为“cv_score = cross_val_score(model_vot”

P396页,模型训练-交叉验证 章节的代码:
> cv_score = cross_val_score(model_gdbc, x_smote_resampled, y_smote_resampled, cv=cv)
应该改为:
> cv_score = cross_val_score(model_vot, x_smote_resampled, y_smote_resampled, cv=cv)
这是对集成模型的交叉检验的测试,而非单个模型。

5.P179 最底部最后一行的文字表述中“不能直接fit到klearn的K-Means模”中的“klearn”应为“sklearn”
最底部最后一行的文字表述中“不能直接fit到klearn的K-Means模”中的“klearn”应为“sklearn”,缺少一个字符s,即sklearn。

6.P198 左侧靠中间位置的文本描述中,(1)部分, “此时的回归模型及其不稳定且方差较大” 中的“及其”应为“极其”
左侧靠中间位置的文本描述中,(1)部分, “此时的回归模型及其不稳定且方差较大” 中的“及其”应为“极其”,此为文字用词错误。

7.P347 步骤5 模型训练 – 建立pipeline中用到的模型对象 模块中缺少pipeline的代码段
在 P347 步骤5 模型训练 – 建立pipeline中用到的模型对象 模块中,只有已经构建好的每个model,而没有pipelines,如下图:
未标题-1

正确的应为:
model_etc = ExtraTreesClassifier() # ExtraTree,用于EFE的模型对象
model_rfe = RFE(model_etc) # 使用RFE方法提取重要特征
model_lda = LinearDiscriminantAnalysis() # LDA模型对象
model_rf = RandomForestClassifier() # 分类对象
# ============== 这里开始增加 ==============
# 构建带有嵌套的pipeline
pipelines = Pipeline([
(‘feature_union’, FeatureUnion( # 组合特征pipeline
transformer_list=[
(‘model_rfe’, model_rfe), # 通过RFE中提取特征
(‘model_lda’, model_lda), # 通过LDA提取特征
],
transformer_weights={ # 建立不同特征模型的权重
‘model_rfe’: 1, # RFE模型权重
‘model_lda’: 0.8, # LDA模型权重
},
)),
(‘model_rf’, model_rf), # rf模型对象
])
# ============== 到这里增加结束 ==============

8.P102 第2部分生成原始数据中,原始数据应为3行4列
在P102页第2部分生成原始数据中,在中间部分print(df) # 打印输出原始数据框 之后的文字描述中,有如下描述:
“数据为3行3列的数据框,分别包含id、sex和level列,其中的id为模拟的用户ID,sex为用户性别(英文),level为用户等级(分别用high、middle和low代表三个等级)”
应改为:
“数据为3行4列的数据框,分别包含id、sex、level和score列,其中的id为模拟的用户ID,sex为用户性别(英文),level为用户等级(分别用high、middle和low代表三个等级),score列为用户得分等级(其中1/2/3分别是等级字符串,而非数字)”


====================【好书推荐,我为自己代言】====================

《Python数据分析与数据化运营》第二版上市啦!

50+数据流工作知识点
14个数据分析与挖掘主题
8个综合性运营分析案例
涵盖会员、商品、流量、内容4大主题
360°把脉运营问题并贴合数据场景落地


本书主要基于Python实现,其中主要用到的计算库是numpy、pandas和sklearn,其他相关库还包括:
  • 标准库:re、time、datetime、json、 base64、os、sys、cPickle、tarfile
  • Python调用R的rpy2
  • 统计分析:Statsmodels
  • 中文处理:结巴分词
  • 文本挖掘:Gensim
  • 数据挖掘和算法:XGboost、gplearn、TPOT
  • 爬虫和解析:requests、Beautiful Soup、xml
  • 图像处理:OpenCV和PIL/Pollow
  • 数据读取:xlrd、pymongo、pymysql
  • 数据预处理:imblearn
  • 展示美化类:Matplotlib、pyecharts、graphviz、prettytable、wordcloud、mpl_toolkits、pydotplus
如果你对以下内容感兴趣,那么本书将值得一看:
  • KMeans聚类的自动K均值的确立方法
  • 基于软方法的多分类模型组合评估模型的应用
  • 基于自动下探(下钻、细分)的应用
  • 基于增量学习的多项式贝叶斯分类
  • pipeline管道技术的应用
  • 基于超参数的自动参数值的优化方法
  • 特征自动选择
  • 文本分类、文本主题挖掘
  • 基于自动时间序列ARIMA的P、D、Q的调整
  • python决策树规则输出
  • 基于自定义图像的文本标签云
  • 非结构化数据,例如图像、音频、文本等处理
  • 对象持久化处理
  • 如何使用Python调用R实现数据挖掘
  • 自动化学习:增加了对于自动化数据挖掘与机器学习的理论、流程、知识和应用库介绍,并基于TPOT做自动化回归和分类学习案例演示
有关这本书的写作感受、详细内容介绍、附件(含数据和代)下载、关键知识和方法以及完整书稿目录,请访问《Python数据分析与数据化运营》第二版出版了!要购买此书,可以去京东当当天猫等查看。

《Python数据分析与数据化运营》第二版勘误》上有12个想法

  1. 宋老师你好,在3.2.3代码python标志转化实操中,使用了sklearn进行标志转换。在我使用后发现它会出现 could not convert string to float: ‘middle’的错误,我再去看了第一版的代码,也和第二版相同,不知道这个问题要怎么解决。

  2. P396页,模型训练-交叉验证 章节的代码:
    > cv_score = cross_val_score(model_gdbc, x_smote_resampled, y_smote_resampled, cv=cv)
    是否应该是
    > cv_score = cross_val_score(model_vot, x_smote_resampled, y_smote_resampled, cv=cv)

  3. 4.1.6 聚类分析这里发现一个勘误, “字符串型特征(IS_ACTIVE)代表一个分类型变量,不能直接fit到klearn的K-Means模型中” 之类klearn 应该为 sklearn

  4. 4.2 回归分析-案例:大型促销活动前的销售预测
    pre_y_list = [model.fit(X_train, y_train).predict(X_test) for model in model_list] # 各个回归模型预测的y值列表

    TypeError: must be real number, not str
    应该是model_list的问题,希望发布纠错代码

    • 你好。我测试了下代码,是可以正常运行的。

      你的报错我没有遇到,我的是python3.7版本。你方便的话加我微信,详细描述下到底如何出现这个问题的吧。或者你在地下把你的python版本、执行错误截图等发一下,我看下。谢谢。

发表评论

电子邮件地址不会被公开。 必填项已用*标注