《Python机器学习基础教程》勘误

。。。本来文章都快写好了,360莫名其妙退出,还没有自动保存为草稿,又敲一遍。

最近没怎么整理笔记,一直在看一个时序数据库的东西,C++工程难啃,头疼的一笔。

其实感觉我们的编码和外国人相比还是有很多困难的,比如匈牙利命名法的简写,包括一些注释习惯,对于不是native speaker来说,都有不小的障碍。比如下面这段注释。

 // Adds a value to a bit string. `bitsInValue` specifies the number
  // of least significant bits that will be added to the bit
  // string. The bits from `value` will be added from the most
  // significant bit to the least significant bit.
static void addValueToBitString(
      uint64_t value,
      uint64_t bitsInValue,
      folly::fbstring& bitString,
      uint32_t& numBits);

将value值添加到位串,`bitsInValue`指定了添加到位串的最低有效位的位数。‘value’中的bits将从最高有效位(更准确来说应该是MSB 最高有效字节)至最低有效位(LSB 最低有效字节)逐步被添加到bitString。可以看到在原文的注释中,和我翻译的不太一样,是因为我是在看过源码的基础上翻译过来的。这意味着一个初次看注释的人基本上不知道这个注释在说什么。。艰难困苦,玉汝于成。愿与诸君共勉。

另外在看吴恩达老师的机器学习,同步在学ORelly的动物书,《Python机器学习基础教程》。这本书真心犀利,干货满满,同时由浅入深,层次也非常清晰,值得学习。只是有以下几点需要注意:

1.书里面有不少画图和数据科学包的api反复用到,下篇文章整理下,不然忘了又需要去查。

2.书中不少代码是重复的,只是修改了参数以期读者自行对比深入理解,足够熟练的话没必要那样,直接zip和subplots叠加复用就可以了。注意:zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。可迭代对象是为了优化内存使用。如果只有一个参数,不要使用zip,直接元组即可。例如用for i in ('a', 'b', 'c'),而不是使用for i in zip(['a', 'b', 'c']),后者返回的是[('a',), ('b',),('c',)]。

3.书中有几处存在一些问题,在本文中记录。

勘误列表

P51:将In[50]的第一条语句放到最后一句执行,不然画图会出现留白。

P114: 将In[23]的 if (i+1)% 3 == 0的3改为2,因为enumerate()函数所给出的索引默认是从0开始的,也可以在enumerate()函数处加参数start=1.

P187:In[52]的strftime("%s")的入参比较少见,开始搜官网都没有搜到,是将date类型的数据(单独/数组/列式数据)转换为秒级时间戳。但是这个函数在Windows系统运行有问题,只转换成了字符串,我环境是Win7,在虚拟机上可以正确运行(Ubuntu 18.04)。也可以自己写个函数去处理,因为在书中是列式数据,处理麻烦一些,就没做尝试。

P221:In[50]报错,不能tuple//int,暂未解决。

P226:In[57]:加上 from sklearn.metrics import f1_score

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值