在业界做机器学习,数据和特征是非常重要的环节,决定了机器学习的上限,而模型和算法只是在逼近这个上限。本文从特征工程、数据挖掘、开源库中的特征分析选择及来自模型的特征分析选择四个方面介绍特征分析。
Hexo-NexT 博客 note 与 tab 使用
在完成的博客网站上,随内容的丰富和完善,对展示内容的格式有进一步的需求和完善。本篇主要介绍 Hexto NexT
中的 note
与 tab
标签的使用,实现不同风格的提示块与选项卡功能。
提示块适用于不同重要程度的内容记录或展示;选项卡功能对于不同版本的代码展示有更好的展示效果。
详细说明如正文所示。
LeetCode 4.Median of Two Sorted Arrays
该题目选自 LeetCode 算法题目第四题 4.Median of Two Sorted Arrays,LeetCode 中第一道难度为 Hard 的题目。在没有时间复杂度要求的前提下,归并排序得到需要的解是简单有效的实现方式。进一步优化,通过找第 K 大数的方式每次减少 K/2 的搜索范围,可以在 log(m+n) 的时间复杂度下解决。最终的优化方案是找可以将两个数组分为两部分的边界值,复杂度可以优化到 log(min(m, n))。详细解题思路及源代码如下。
LeetCode 3.Longest Substring Without Repeating Characters
该题目选自 LeetCode 算法题目第三题 3.Longest Substring Without Repeating Characters。在中等难度题目中,个人认为该题目是非常适合作为面试手写代码的测试题之一。代码量少,但边界需要注意很多隐藏的问题,如参数合法性检验,字符集大小确定,子串长度计算等,细节处查考了基本功力。题目不复杂,但手写代码可以一次性通过测试还是有一定的难度和挑战。
LeetCode 2.Add Two Numbers
该题目选自 LeetCode 算法题目第二题 2.Add Two Numbers。与第一题相比,该题目更偏重对数据结构的熟练应用。当然为方便实现,这里的链表是以逆序的方式存储的。
LeetCode 1.Two Sum
LeetCode 网站题目多为一些经典公司面试应聘者的题目,大多数程序员都会通过刷题来应聘一些互联网公司。毕业之后,从 C/C++ 转为了 Python 开发,对 C/C++ 的很多基本用法有所遗忘,期望通过一段时间的刷题巩固寻求做编程题的感觉。通过博客形式的分享与记录鞭策自己不断前行,愿在技术的道路上可以走的更远。
该题目选自 LeetCode 算法题目第一题 1.Two Sum。
Pandas 内存优化
Pandas
是数据分析中常用的一个 Python 库。本文主要讲述 Pandas
内存优化。其中数据读入存储的部分参考资料 简单又实用的pandas技巧:如何将内存占用降低90%,该部分内容在网上有较多说明与介绍。本文更多篇幅放在 Pandas 的 DataFrame 类型相关测试与源码分析上。
Python3.5.6 multiprocessing 用户文档
最近在做 Python 内存优化时,发现 multiprocessing
可以充分利用 CPU 的多核特性,且可以在执行完任务后释放所有的资源,只保留需要的结果即可,可以避免 Python 的垃圾回收过慢的弊病,同时带来执行效率的提升。同时,之前的 Python 资料书籍更关注于 Python 多线程部分,而对多进程的讲解应用较少。于是开始阅读该部分文档和源码,本篇博客是其官网文档 multiprocessing
的翻译(原文地址)。