算法:Manacher,给定一个字符串str,返回str中最长回文子串的长度。
摘要:【题目】 给定一个字符串str,返回str中最长回文子串的长度 【举例】 str="123", 1 str=“abc1234321ab” 7 【暴力破解】 从左到右遍历字符串,遍历到每个字符的时候,以当前字符作为中心能够产生多大的回文字符串, 奇回文和偶 回文寻找方式不一样。 缺点:前面的寻找无法为
阅读全文
算法:KMP, str1字符串是否包含str2字符串
摘要:【普通解法】从左到右遍历str1的每一个字符,然后看如果 以当前字符作为第一个字符出发 是否匹配 str2字符串。 【KMP算法】 1)生成一个nextArr数组,长度与str2字符串长度一样。i 的 值 含义是 str[0 - i-1】中,必须以str[i-1] 结尾的后缀子串 与 必须以 str
阅读全文
算法-反转部分单向链表
摘要:思路: 1) 先判断 0<m<=n ⇐ size,不满足直接返回原来的 头节点 2) 先找到 m的前一个节点 m_pre 和 n的后一个节点 n_pos. 把反转的部分反转之后。连接m_pre 和 n_pos. 3) 如果m_pre为null,说明反转的部分包含 头结点,则返回新的头结点,也就是 n
阅读全文
算法-岛问题
摘要:【题目】 一个矩阵中只有0和1两种值,每个位置都可以和自己的上、下、左、右 四个位置相连,如 果有一片1连在一起,这个部分叫做一个岛,求一个矩阵中有多少个岛? 【举例】 001010 111010 100100 000000 这个矩阵中有三个岛 非并行算法求解 1)从左到右,从上到下遍历。 2)如果
阅读全文
Python数据科学手册-机器学习: k-means聚类/高斯混合模型
摘要:前面学习的无监督学习模型:降维 另一种无监督学习模型:聚类算法。 聚类算法直接冲数据的内在性质中学习最优的划分结果或者确定离散标签类型。 最简单最容易理解的聚类算法可能是 k-means聚类算法了。 k-means简介 在不带标签的多维数据集中 寻找确定数量 的簇。 最优的聚类结果需要符合以下俩个假
阅读全文
Python数据科学手册-机器学习: 流形学习
摘要:PCA对非线性的数据集处理效果不太好。 另一种方法 流形学习 manifold learning 是一种无监督评估器,试图将一个低维度流形嵌入到一个高纬度 空间来描述数据集 。 类似 一张纸 (二维) 卷起 弄皱 (三维)。二维流形 嵌入到一个三维空间, 就不再是线性的了。 流形方法技巧: 多维标度
阅读全文
Python数据科学手册-机器学习: 主成分分析
摘要:PCA principal component analysis 主成分分析是一个快速灵活的数据降维无监督方法, 可视化一个包含200个数据点的二维数据集 x 和 y有线性关系,无监督学习希望探索x值和y值之间的相关性 在主成分分析中。一种量化俩变量之间关系的方法 是在数据中找到一组主轴,并用这些主
阅读全文
Python数据科学手册-机器学习: 决策树与随机森林
摘要:无参数 算法 随机森林 随机森林是一种集成方法,集成多个比较简单的评估器形成累计效果。 导入标准程序库 随机森林的诱因: 决策树 随机森林是建立在决策树 基础上 的集成学习器 建一颗决策树 二叉决策树 在一颗合理的决策书中。每个问题基本上都可将种类的可能性减半。 决策树的难点在于如何设计每一步的问题
阅读全文
Python数据科学手册-机器学习: 支持向量机
摘要:support vector machine SVM 是非常强大、 灵活的有监督学习算法, 可以用于分类和回归。 贝叶斯分类器,对每个类进行了随机分布的假设,用生成的模型估计 新数据点 的标签。是属于 生成分类 方法。 判别分类:不再为每类数据建模,而是用一条分割线 或者 流形体 将各种类型分开。
阅读全文
Python数据科学手册-机器学习:线性回归
摘要:朴素贝叶斯是解决分类任务的好起点,线性回归是解决回归任务的好起点。 简单线性回归 将数据拟合成一条直线。 y = ax + b , a 是斜率, b是直线截距 原始数据如下: 使用LinearRegression评估器来拟合数据 除了简单的直线拟合,还可以处理多维度的线性回归模型。 基函数回归 使用
阅读全文
Python数据科学手册-机器学习:朴素贝叶斯分类
摘要:朴素贝叶斯模型 朴素贝叶斯模型是一组非常简单快速的分类方法,通常适用于维度非常高的数据集。因为运行速度快,可调参数少。是一个快速粗糙的分类基本方案。 naive Bayes classifiers 贝叶斯分类 朴素贝叶斯分类器建立在贝叶斯分类方法的基础上。数学基础是贝叶斯定理。 一个描述统计量条件概
阅读全文
Python数据科学手册-机器学习之特征工程
摘要:特征工程常见示例: 分类数据、文本、图像。 还有提高模型复杂度的 衍生特征 和 处理 缺失数据的填充 方法。这个过程被叫做向量化。把任意格式的数据 转换成具有良好特性的向量形式。 分类特征 比如房屋数据: 房价、面积、地点信息。 方案1:把分类特征用映射关系 编码成 整数 。 {'Queen Ann
阅读全文
Python数据科学手册-机器学习之模型验证
摘要:模型验证 model validation 就是在选择 模型 和 超参数 之后。通过对训练数据进行学习。对比模型对 已知 数据的预测值和实际值 的差异。 错误的模型验证方法。 用同一套数据训练 和 评估 模型。 准确率总是100% 。 模型验证正确方法: 留出集。 从训练模型的数据中留出一部分。用这
阅读全文
Python数据科学手册-机器学习介绍
摘要:机器学习分为俩类: 有监督学习 supervised learning 和 无监督学习 unsupervised learning 有监督学习: 对数据的若干特征与若干标签之间 的关联性 进行建模的过程。 只要模型被确定,就可以应用到新的未知的数据上。 进一步可以分为 分类 classificati
阅读全文
Python数据科学手册-Pandas:向量化字符串操作、时间序列
摘要:向量化字符串操作 Series 和 Index对象 的str属性。 可以正确的处理缺失值 方法列表 正则表达式。 Method Description match() Call re.match() on each element, returning a boolean. extract() Ca
阅读全文
Python数据科学手册-Pandas:累计与分组
摘要:简单累计功能 Series sum() 返回一个 统计值 DataFrame sum。默认对每列进行统计 设置axis参数,对每一行 进行统计 describe()可以计算每一列的若干常用统计值。 获取seaborn planets数据 github: https://github.com/mwas
阅读全文
Python数据科学手册-Pandas:合并数据集
摘要:将不同的数据源进行合并 , 类似数据库 join merge . 工具函数 concat / append pd.concat() 简易合并 合并高维数据 默认按行合并。 axis=0 ,试试 axis = 1 索引重复 结果中,索引是重复的。 这可能并不是我们想要的结果。 1)捕捉索引重复的错误。
阅读全文