python
文章平均质量分 94
尘世中迷途小码农
小小码农写程序,又改bug换酒钱
展开
-
机器学习-使用FP-Growth算法来高效发现频繁项集
机器学习-使用FP-Growth算法来高效发现频繁项集FP-Growth算法是这里要介绍的第三个非监督学习算法,FP(Frequent Pattern)代表频繁模式。FP-Growth算法相对于Apriori算法来说效率更高,其只需要对数据集进行两轮扫描即可发现频繁项集,而Apriori确做不到。通常情况,FP-Growth会比Apriori快两个数量级。FP-Growth只能发现频繁项集,但不能发现关联规则。FP-Growth发现频繁项集的过程包括构建FP树和从FP树中找出频繁项集两个部分。本原创 2021-02-24 15:37:12 · 1222 阅读 · 0 评论 -
机器学习-使用Apriori进行关联分析
Apriori算法是我们要介绍的第二个非监督学习算法,通过Apriori算法我们可以非常容易的找到数据集中的内在关系,例如:哪些数据出现的频率较高,哪些数据之间存在着相互关系等等。本节包含以下内容:背景 频繁项集 关联规则部分内容引用自《Machine Learning in Action》背景设想这样一个场景,一个超市里共有N种商品,客户可以一次购买其中的任何多种商品。目前我们有该超市一年的销售记录,希望从中找到哪些商品经常被一起购买,以及客户如果买了哪些商品后最有可能购买另外哪些商原创 2021-01-21 16:41:08 · 504 阅读 · 0 评论 -
机器学习-K均值聚类
前面文章介绍的都是机器学习中的监督学习算法,本章开始介绍第一个非监督学习算法-K均值聚类算法。监督学习包含分类和回归,其共同点是我们事先知道要求解的目标变量,而非监督学习中不存在类似的目标变量。非监督学习通常可以解决以下问题,数据集S可以分成哪些类(注意,此时我们并不知道S中存在哪些类别,而监督学习事先是知道的) 数据集S中哪些特征最频繁出现 数据集S中哪些特征有相互关系本章介绍K均值聚类算法,其可以高效的对数据集进行分类。包含以下内容:K均值算法 局部收敛的问题分析 二分K均值算法原创 2020-12-31 15:24:13 · 360 阅读 · 0 评论 -
机器学习-树回归
在前面文章机器学习-回归中,我们讨论了一般的线性回归,这里面有一些强大的方法,而且也非常实用。但这些方法有一些不足,需要拟合所有的样本点(局部加权线性回归除外),计算量较大 现实生活中很多问题是非线性的,不能使用线性模型这篇文章会介绍一种非线性回归模型-树回归,通过CART(Claqssification And Regression Tree,分类回归树)来构建模型算法。该算法可用于分类(找出类别),也可用于回归(预测)。CART有可能出现过拟合的问题,通过树剪枝技术,可以解决此问题。本章包含原创 2020-12-25 12:25:22 · 562 阅读 · 5 评论 -
概率论数字特征及Python实现
本节简单讨论概率论数字特征及Python实现,概率论数字特征包括:期望 方差(标准差/均方差) 协方差 相关系数 协方差矩阵期望期望反应的是随机变量X的平均值,是试验中每次可能结果的概率乘以其结果的总和,定义如下,离散型随机变量:连续型随机变量:有以下性质:方差方差用来衡量随机变量或一组数据的离散程度,定义如下,也就是每一个样本和期望的差的平方后取其平均值,方差越小,说明数据越集中,越大说明数据越分散。(例如:学生成绩是否偏科。)标准差也叫均方差原创 2020-11-30 13:46:40 · 603 阅读 · 0 评论 -
机器学习-回归
这里的回归是指线性回归,也存在非线性回归,不在这篇文章的范围内。回归与分类一样,最终目的都是预测目标值。回归用于预测连续型变量,而分类用于预测离散型变量。回归是统计学中最有力的工具之一。先解释几个容易混淆的概念:拟合:根据离散的数据点找到一个近似函数,该函数能够大致的反应出原数据点的分布规律(不一定通过原数据点),通过该函数能够预测原数据点区间外的未知数据。找到该函数的过程称为拟合。插值:根据离散的数据点找到一个最佳的函数,该函数能够反应出原数据点在此区间的分布规律(需要通过原数据点)。通过原创 2020-11-27 12:22:16 · 480 阅读 · 0 评论 -
机器学习-曲线拟合
这篇文章介绍在Python中如何做曲线拟合。曲线拟合的目的是根据给定的数据找到某种函数关系,再通过该函数来预测未知数据。包含以下内容,简单的多项式拟合 高阶多项式拟合复杂曲线 基于scipy拟合复杂曲线 可化为线性函数的非线性拟合简单的多项式拟合我们知道,一般的函数都可以做泰勒展开,展开后可以通过多项式函数来近似计算。同时,我们可以基于最小二乘法对给定的数据点做多项式拟合,请参考我下面的两篇文章:数学 - 泰勒公式,常见麦克劳林公式及Maple函数拟合最小二乘法多项式拟合的Java实原创 2020-11-26 21:32:42 · 13829 阅读 · 6 评论 -
机器学习-支持向量机
支持向量机的全称是Support Vector Machine (SVM),它是一种用于二分类的监督学习算法。问题提出假设我们有以下二维平面上的数据点,现在要求使用一条直线分割不同颜色的小球,我们可以这样分割,但如果再增加更多的小球,上面的分割方法可能会出现问题。如下图所示,其中一个红球被分割到了左边,那怎样的分割才是最好的分割呢?SVM的思想就是在某个最好的位置进行分割,使得在该位置上的分割线的两边有尽可能大的间隙。下图中黄色区域就是间隔区域,按此分割,在一定程原创 2020-11-11 15:21:25 · 938 阅读 · 0 评论 -
机器学习-逻辑回归
机器学习-逻辑回归本节简单介绍逻辑回归(Logistic Regression)的原理以及Python实现,包含以下内容,概念 Sigmoid函数 梯度上升算法 Python实现 随机梯度上升算法概念逻辑回归(Logistic Regression)是一种用于解决二分类问题的机器学习算法,用于估计某种事物的可能性。比如某病人患有某种疾病的可能性,某个员工是否离职的可能性,今天是否下雨的可能性等等。 注意,这里用的是“可能性”不是数学上的“概率”,逻辑回归的结果并非数学定义中的概率值,不原创 2020-09-29 09:18:43 · 787 阅读 · 0 评论 -
机器学习-朴素贝叶斯
机器学习-朴素贝叶斯本节介绍基于概率论的分类方法:朴素贝叶斯(Naive Bayes),包含以下内容,原理 条件概率 从文本中构造词向量 计算词向量的条件概率 测试分类器 实例-过滤垃圾邮件原理很多时候我们很难让分类器给出类似“某个数据属于哪个分类”的明确答案,即便分类器给出了,但结果也有可能是错误的。这时,我们可以让分类器给出一个最有可能的猜测结果,同时给出相应的概率。假设数据集有两个分类,C1和C2,给定某个元素a,如果a在C1中的概率大于a在C2中的概率,即 p(a|c1)原创 2020-09-17 09:26:14 · 397 阅读 · 1 评论 -
机器学习-决策树
机器学习-决策树本章介绍机器学习中一个非常重要的监督学习算法思想,决策树,决策树有很多种算法,例如CART,C4.5,ID3等,这里介绍ID3。包括以下内容:决策树的原理 信息,熵,信息增益的概念 如何划分数据集 如何选择最好的数据划分 构建决策树 图形化查看决策树 测试决策树 存储和加载决策树 ID3的优缺点 案例 - 使用决策树预测隐形眼镜类型决策树的原理问题:假定某个数据集S包含M个元素,每个元素都有属性E1,E2,...,En,且已知每个元素的分类为C1,C2原创 2020-09-11 21:59:38 · 854 阅读 · 1 评论 -
机器学习-kNN
机器学习-kNN本节介绍机器学习中比较简单的一种监督学习算法,kNN算法,以及其Python实现。概述监督学习明确知道想要得到什么。例如判断某辆机动车的类型(小车,卡车,公交车),预测明天是下雨,天晴还是多云,对某个曲线做拟合等等。如果目标变量是离散型,则使用分类算法,如果目标变量是连续型,则可以使用回归算法。无监督学习不需要预测目标变量的值。如果需要将数据划分为离散的组,可以使用聚类算法。如果还需要估计数据与每个分组的相似程度,则需要使用密度估计算法。kNN简介kNN(k原创 2020-09-08 16:11:55 · 481 阅读 · 0 评论 -
Python基础之random
Python基础之random本节将介绍Python中的内置模块random,用于随机数相关的操作。random模块支持生成随机浮点数,随机整数,从list,tuple,str 中随机选择某一个或多个元素,混淆某个list。例如:import randomimport string# float_n is a float number in [0,1)float_n = random.random()print(float_n)# int_n is a int number in原创 2020-09-03 18:55:21 · 259 阅读 · 0 评论 -
Python基础之JSON
Python基础之JSONJSON是一种高效的数据交换格式,Python中提供了非常方便的支持。json模块内置模块json提供了JSON相关的操作。在Python中,可以将一个JSON字符串转换成JSON对象(其实就是dict),也可以将JSON对象(dict)转换为JSON字符串。例如:import json# Convert a dict to JSON stringdic1 = {'name': 'xiaoming', 'age': 20, 'sex': 'm'}str =原创 2020-09-03 18:08:08 · 145 阅读 · 0 评论 -
Python基础之时间日期
Python基础之时间日期本节介绍Python中的时间模块time和日期模块datetime,这两个模块非常重要。datetime提供了更高级的用法,因此在大多数场景下都可以选择用datetime,而不是time。timeimport time# Get current timestampprint(time.time())# Construct a struct_time objectt = time.localtime(1599094704.0659297)print(t)原创 2020-09-03 17:41:30 · 119 阅读 · 0 评论 -
Python基础之正则表达式
Python基础之正则表达式本节将介绍Python中正则表达式最基本的用法,正则表达式本身不做太多介绍。Python中正则表达式的内置模块是re,最基本的用法是判断某个字符串是否符合某个表达式,分组,找出一个字符串中所有符合某个表达式的列表。判断字符串是否符合某个表达式可通过search()函数和match()函数来实现,不同之处是match函数是从字符串的起始字符开始判断,而search函数是从任意位置开始判断。例如:search:import re# Check if a原创 2020-09-02 13:59:10 · 157 阅读 · 0 评论 -
Python基础之迭代器
Python基础之迭代器本节将介绍Python中的迭代器以及如何为自己的类添加迭代功能。我们知道,在Python中有 for...in...的语法,通过该语法可以方便的遍历某个容器中的所有元素。之所以能够这样操作,是因为这些容器都实现了迭代器功能,例如列表,元组,字符串,字典等。遍历容器下面这个例子将介绍通过迭代器遍历列表,元组,字符串和字典。例如:my_list = [1, 2, 3, 4, 5]my_iter = iter(my_list)while True: tr.原创 2020-09-02 09:24:18 · 108 阅读 · 0 评论 -
Python基础之多线程
Python基础之多线程本节将介绍Python中的多线程技术以及线程同步相关的内容。继承 threading.Thread最正式的一种方式是写一个多线程类,并继承threading.Thread,重写run方法。例如:import threadingimport timeclass MyThread(threading.Thread): def __init__(self, id, delay): self.__id = id self._.原创 2020-09-01 17:51:43 · 142 阅读 · 0 评论 -
Python基础之模块和包
Python基础之模块和包本节将介绍Python中的模块和包的概念及基本用法。模块简单来说模块就是一个python文件,我们可以将一些常量、函数、类等封装到一个模块中,然后在程序中使用该模块。模块类似Java中的包(package),目的是组织代码结构,重用代码等。命名模块的命名应该采用小驼峰方式,即只包含数字,小写字母和下划线等字符,首字母不能是数字,单词与单词之间用下划线分割。因为在导入模块时模块名会作为程序的一部分,因此模块名必须按规范命名。导入模块import 模块名原创 2020-08-31 12:27:42 · 364 阅读 · 0 评论 -
Python基础之异常
Python基础之异常本节将介绍异常的基本概念,语法,异常类结构,自定义异常以及主动抛出异常等内容。异常是指程序遇到错误导致无法继续执行时突然中止的一种现象。比如,两个数相除,如果除数为0,程序将无法继续执行,如果此时没有显示的指定如果处理,那么程序将强制退出。Python中的异常相对Java的要简单一些,没有运行时异常和非运行时异常之分。语法异常的语法通过try,except,else,finally 等关键字来定义。例如:try: passexcept ZeroDivi.原创 2020-08-28 15:42:46 · 750 阅读 · 1 评论 -
Python基础之面向对象
Python基础之面向对象本节将介绍面向对象的基本概念,包括类,对象,继承,多态,类属性,类方法,单例模式等,并介绍在Python中的相关语法。概念面向对象是一种程序设计思维,相对于传统的面向过程而言,面向对象使得我们可以以更加抽象的方式来认识业务逻辑,并将业务逻辑拆分成不同的对象和与之交互的关系。在面向对象程序设计中最重要的是弄清楚系统中有哪些类,这些类有哪些属性和行为,类与类之间的关系是继承还是依赖等等。类和对象类是具有相似属性和行为的一类物体的总称,在Python中通过clas原创 2020-08-28 13:33:39 · 358 阅读 · 0 评论 -
Python基础之流程控制
Python基础之流程控制本节将介绍Python中的流程控制,包括顺序,判断,循环。任何编程语言都有三种程序执行流程,顺序,判断和循环。概念都是一样,唯一不同的只是语法。关于三种流程的概念这里不做太多介绍,记住语法即可。顺序顺序是最简单的一种流程,程序从上到下按行依次执行,例如:a = 1print(a)b = a + 1print(b)print("Hello world!")运行结果:D:\work\python_workspace\python_study\原创 2020-08-27 16:34:53 · 156 阅读 · 0 评论 -
Python基础之函数
Python基础之函数本节将介绍函数的基本概念,定义,调用,多返回值,默认参数,可变参数,拆包,递归,lambda等内容。概念在任何一门编程语言中,函数都是非常重要的内容。函数的功能有以下几点:拆分业务逻辑。函数可以将一个复杂的业务逻辑拆分成若干个小的逻辑,每一个逻辑中只做一件事情。好处是结构清晰,便于重构,易于维护。 代码复用。有了函数就可以不用写太多重复的代码,调用函数即可。不管是自己复用自己的代码,还是将自己的代码发布给其他人,以函数为单位都是可以的。设计代码结构时需要注意,函数应原创 2020-08-27 12:29:13 · 442 阅读 · 0 评论 -
Python基础之变量
Python基础之变量本小节将介绍Python中的变量,包括变量命名,格式化输出,多变量赋值,变量和引用等内容。变量命名Python中的变量区分大小写,只能以大小写字母,下划线和数字组成,首字母不能是数字。例如:this_is_a_variable。Guido推荐的变量、函数、类、模块命名规则:模块名和包名采用小写字母并且以下划线分隔单词的形式,如:regex_syntax,py_compile,_winreg 类名或异常名采用每个单词首字母大写的方式,如:MyObject,MyErr原创 2020-08-26 16:47:34 · 184 阅读 · 0 评论 -
Python基础之运算符
Python基础-运算符本节会介绍Python中的七大运算符,算术运算符,逻辑运算符,比较运算符,赋值运算符,成员运算符,身份运算符,位运算符。算术运算符运算符 名称 示例 + 加 print(2.4 + 3.4) =>5.8 - 减 print(3.4 + 2.1) =>1.3 * 乘 print(2 *3) =>6 / 除原创 2020-08-25 09:51:46 · 192 阅读 · 0 评论 -
Python基础之数据类型
Python基础-数据类型本节会介绍Python中最基本的内置数据类型,包括数值类型和非数值类型。数据类型分类数值类型:整型(int),浮点型(float),布尔类型(bool),复数类型(complex)非数值类型:字符串(str),列表(list),元祖(tuple),字典(dict)要点Python中定义一个变量不用指定类型,直接赋值即可 数值类型可以相互计算,不用类型转换 内置函数type()可以用于查看某个变量的类型 布尔类型有两个值,True,False,在Pyth原创 2020-08-24 14:31:47 · 565 阅读 · 0 评论 -
Python基础之IO操作
Python常见IO操作总结包括读取文件,写文件,copy目录所有内容,列举目录,删除目录所有内容,修改文件名,修改目录等常见IO操作。import osdef read_all(file_path): """ Read all content of a file :param file_path: file path :return: All content of a file """ with open(file_path, "r") as原创 2020-06-14 11:12:09 · 360 阅读 · 0 评论 -
Python小爬虫
Python小爬虫该脚本可以分析HTML并抓取网络图片,对学习网络爬虫有一定帮助。该脚本基于python3以及其第三方库requests和BeautifulSoup。主要原理是使用requests库下载网页内容,再使用BeautifulSoup分析网页内容,获取指定的图片标签及其连接,最后使用requests下载图片。准备环境基于Python3和Ubuntu,在windows及其它平台同样支持,正确下载相关的第三方库即可。Install pipsudo apt-get install p原创 2020-06-12 15:18:53 · 256 阅读 · 0 评论 -
用Python计算某个目录下所有文件的hash
This script can calculate all files' hash value on a folder,import hashlibimport osdef cal_file_sha256(filt_path): with open(filt_path, "rb") as f: file_hash = hashlib.sha256() while chunk := f.read(1024 * 1024): fil.原创 2020-06-12 15:07:18 · 1153 阅读 · 0 评论