
python学习笔记
大牛李
这个作者很懒,什么都没留下…
展开
-
机器学习算法进阶(数据清洗和特征选择)
一、数据降维降维就是一种对高维度特征数据预处理方法。降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为应用非常广泛的数据预处理方法。降维优点: 使得数据集更易使用、降低算法的计算开销、去除噪声、使得结果容易理解。二、主成分分析(PCA)2.1 PCA的作用主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间原创 2020-11-05 10:17:59 · 773 阅读 · 0 评论 -
机器学习算法基础第五天
一.回归算法-线性回归分析1.线性模型试图学得一个通过属性的线性组合来进行预测的函数:2.线性回归但是,预测结果与真实值是有一定的误差。单变量:多变量:原创 2020-10-21 10:39:13 · 241 阅读 · 0 评论 -
机器学习算法基础第四天(决策树、随机森林)
一、分类算法-决策树1.1 认识决策树决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法例如:比如:你母亲要给你介绍男朋友,是这么来对话的:女儿:多大年纪了?母亲:26。女儿:长的帅不帅?母亲:挺帅的。女儿:收入高不?母亲:不算很高,中等情况。女儿:是公务员不?母亲:是,在税务局上班呢。女儿:那好,我去见见。银行贷款数据你如何去划分是否能得到贷款?决策树的实际划分1.2 决策树的划分依据原创 2020-10-14 15:05:22 · 873 阅读 · 0 评论 -
机器学习算法基础第三天(K近邻算法、朴素贝叶斯算法)
一.K近邻算法1.1 举例:输出结果:最终结果表明,未知电影属于爱情片,因为他与爱情片的距离最近。1.2 分类算法-k近邻算法(KNN)介绍定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。计算距离公式:两个样本的距离可以通过如下公式计算,又叫欧式距离比如说,a(a1,a2,a3),b(b1,b2,b3)1.3 sklearn k-近邻算法APIsklearn.neighbors.KNeighborsClassifi原创 2020-10-12 20:01:50 · 728 阅读 · 0 评论 -
机器学习算法基础第二天
一.特征选择定义:特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分特征。主要方法:①Filter(过滤式):VarianceThreshold② Embedded(嵌入式):正则化、决策树③ Wrapper(包裹式)sklearn特征选择API: sklearn.feature_selection.VarianceThreshold输出结果:删除低方差的目的:因为原创 2020-10-06 10:20:26 · 404 阅读 · 0 评论 -
机器学习算法基础第一天
一.机器学习的定义机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测二.数据类型①离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所有这些数据全部都是整数,而且不能再细分,也不能进一步提高他们的精确度。②连续型数据:变量可以在某个范围内取任一数,即变量的取值可以是连续的,如,长度、时间、质量值等,这类整数通常是非整数,含有小数部分。三.特征工程特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的模型准确性。意义:直接影原创 2020-09-28 14:37:17 · 2382 阅读 · 0 评论 -
球员能力值
原创 2020-09-14 19:31:38 · 297 阅读 · 0 评论 -
数据科学包学习第五天
一.图形使用1.注释2.文字3.Tex公式原创 2020-09-08 15:40:20 · 110 阅读 · 0 评论 -
数据科学包学习第四天
一.学习matplotlibmatplotlib是基于python语言的开源项目,旨在为python提供一个数据绘图包,用户在熟悉了核心对象之后,可以轻易的定制图像。函数式绘图和面向试绘图:1.函数式绘图,参考了matlab里面的绘图函数法,简单轻易上手。2.面向对象式绘图,更懂matplotlib底层架构,有更多功能。二.简单操作导入matplotlib模块,画出(1,3)(2,2),(3,1)的连线。1.散点图:...原创 2020-09-07 16:22:07 · 328 阅读 · 0 评论 -
数据科学包学习第三天
一.索引与多重索引:1.索引:①.一维数组:首先创建一维数组s,索引为abced。s.index为输出一维数组的索引,s.index.name="alpha"是为索引命名。②.二维数组:创建二维数组,列索引为one,two,three。df.index与df.columns分别为显示行索引与列索引。df.columns.name="col"与df.index.name="row"分别为列索引命名为col,行索引命名为row。最终数出新的df。③.重复索引:首先创建一维数组s,索引为原创 2020-08-10 10:53:31 · 267 阅读 · 0 评论 -
数据科学包学习第二天
一.numpy简介NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。一个用python实现的科学计算,包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实原创 2020-07-28 16:26:42 · 187 阅读 · 0 评论 -
数据科学包学习第一天
一.numpyNumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。二.利用numpy处理矩阵首先在文件开头要导入模块1.创建矩阵:输出结果为2.矩阵类型上图为创建矩阵,并设定为64位的整型上图为输出结果。上图中原创 2020-06-30 21:42:35 · 441 阅读 · 0 评论 -
Python数据结构与算法学习第八天
一.树与树算法1.树的概念:树(tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:·每个节点有零个或多个子节点;·没有父节点的节点称为根节点;·每一个非根节点有且只有一个父节点;·除了根节点外,每个子节点可以分为多个不相交的子树2.树的术语:·节点的度:一个节点含有的子树的个原创 2020-06-18 17:37:06 · 231 阅读 · 0 评论 -
Python数据结构与算法学习第七天
一.归并排序归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。代码实现:**代码执行流程:**当输入li = [54,26,93,17,77,31,44,55,20]进入函数后,先计算n=9,mid=4,则alist[:4]=[54,26,93,17],alist[4:]原创 2020-06-16 23:00:44 · 228 阅读 · 0 评论 -
Python数据结构与算法学习第六天
一.希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序过程: 希尔排序的基本思想是:将数组列在一个表中并对列分别进行插入排序,重复这过程,不过每次用更长的列(步长更长了,列数更少了)来进行。最原创 2020-06-11 16:40:22 · 141 阅读 · 0 评论 -
Python数据结构与算法学习第五天
一.栈结构实现栈可以用顺序表实现,也可以用链表实现。栈的操作1.Stack() 创建一个新的空栈2.push(item) 添加一个新的元素item到栈顶3.pop() 弹出栈顶元素4.peek() 返回栈顶元素5.is_empty() 判断栈是否为空6.size() 返回栈的元素个数代码实现: 利用顺序表上图代码为定义类。上图代码为操作与结果,栈是先进后出,所以先将1、2、3顺序压入栈中,最后弹出结果顺序为3、2、1。二.队列的实现同栈一样,队列也可以用顺序表或者链表实现。队原创 2020-06-09 18:17:05 · 232 阅读 · 0 评论 -
Python数据结构与算法学习第四天
一.单项循环列表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。操作:1.is_empty() 判断链表是否为空2.length() 返回链表的长度3.travel() 遍历4.add(item) 在头部添加一个节点5.append(item) 在尾部添加一个节点6.insert(pos, item) 在指定位置pos添加节点7.remove(item) 删除一个节点8.search(item) 查找节点是否存在代码实现:上图代原创 2020-06-04 11:20:51 · 270 阅读 · 0 评论 -
Python数据结构与算法学习第三天
一.单向链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。1.表元素域elem用来存放具体的数据。2.链接域next用来存放下一个节点的位置(python中的标识)3.变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点。①.节点利用代码实现:②.单链表的操作与代码实现:(1) is_empty() 链表是否为空(2)length() 链表长度原创 2020-05-29 18:27:34 · 198 阅读 · 0 评论 -
Python数据结构与算法学习第二天
一.顺序表的基本形式图a表示的是顺序表的基本形式,如li=[100,110,120,130],数据元素本身连续存储,每个元素所占的存储单元大小固定相同,元素的下标是其逻辑地址,而元素存储的物理地址(实际内存地址)可以通过存储区的起始地址lo (e0)加上逻辑地址(第i个元素)与存储单元大小(c)的乘积计算而得,故,访问指定元素时无需从头遍历,通过计算便可获得对应地址,其时间复杂度为O(1)。如果元素的大小不统一,如li=[100,“abc”,100.1,99.5],则须采用图b的元素外置的形式,将实际原创 2020-05-27 16:32:02 · 126 阅读 · 0 评论 -
Python数据结构与算法学习第一天
一.为什么要学习数据结构与算法?答:如果将最终写好运行的程序比作战场,我们码农便是指挥作战的将军,而我们所写的代码便是士兵和武器。数据结构和算法是一名程序开发人员的必备基本功,不是一朝一夕就能练成绝世高手的。冰冻三尺非一日之寒,需要我们平时不断的主动去学习积累。举例:如果 a+b+c=1000,且a方+b方=c方(a,b,c 为自然数),如何求出所有a、b、c可能的组合?从图中可知,运算时间将近125秒。下图是将原理代码进行改进,减少了一个for循环后,所执行的结果。可以看出,执行时间大大的缩短了原创 2020-05-23 15:30:51 · 245 阅读 · 0 评论 -
python学习第八天笔记
一.方法没有重载在其他语言中,可以定义多个重名的方法,只要保证方法签名唯一即可。方法签名都包含三个部分:方法名、参数数量、参数类型。Python中,方法的参数没有生命类型(调用时确定参数的类型),参数的数量也可以由可变参数控制,因此,pyhton中是没有方法重载的。定义一个方法即可有多种调用方式,相当于实现了其他语言的方法重载。如果我们在类体中定义了多个重名方法,只有最后一个方法有效。建议:不要使用重名的方法!python中方法没有重载。二.方法的动态性python是动态的语言,我们可以动态的为类添原创 2020-05-14 16:46:31 · 215 阅读 · 0 评论 -
python学习第七天笔记
一.面向对象编程面向对象(Object oriented Programming,OOP)编程的思想找事针对大型软件设计而来的。面向对象编程使程序的扩展性更强,可读性更好,使得编程可以像搭积木一样简单。面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率。Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向对象的基本功能,例如:继承、多态、封装等。Pyhton中,一切皆对象,我们学习的数据类型、函数等,都是对象面向对原创 2020-05-08 19:19:59 · 225 阅读 · 0 评论 -
python学习第六天笔记
一.函数也是对象在python中,一切皆对象。时间上,执行def定义函数后,系统创建了相应的函数对象。上面代码执行def时,系统会创建函数对象,并通过ceshi这个变量进行引用。二.变量的作用于(全局变量和局部变量)变量起作用的范围成为变量的作用域,不同作用域内同名变量之间互不影响。变量分为全局变量和局部变量。全局变量:(1)在函数和类定义之外声明的变量。作用域为定义的模块,从定义位...原创 2020-04-27 23:02:33 · 179 阅读 · 0 评论 -
python学习第五天笔记
一.for循环和可迭代对象遍历①.for循环通常用于可迭代对象的遍历。for循环格式如下:for 变量 in 可迭代对象:(缩进)循环体语句②.可迭代对象,python包含以下几种可迭代对象:1.序列。包含:字符串、列表、元组。2.字典3.迭代器对象4.生成器函数5.文件对象③.range对象range对象是一个迭代器对象,用来产生指定范围的数字序列。格式为:rang(st...原创 2020-04-24 18:27:53 · 241 阅读 · 0 评论 -
python学习第四天笔记
一.①字典:字典是“键值对”的无序可变序列,字典中的每一个元素都是一个“键值对”,包含:“键对象”,“值对象”,可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。列表中,我们通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值对象”。“键”是任意的不可变数据,eg:整数、浮点数、字符串、元组。但是,列表、字典、集合这些是可变对象,不能作为“键”,且“键”不可重复。典型定义...原创 2020-04-23 22:36:16 · 187 阅读 · 0 评论 -
python学习第三天笔记
一.可变字符串:python中,不支持修改字符串,如果要修改,则需要创建新的对象。但是,如果经常需要修改的话,可以使用io.StringIO, eg:import ios=‘hello,world’sio=io.StringIO(s)sio< io_StringIO object at 0xx2F46280> #输出对象sio.getvalue()...原创 2020-04-21 00:40:11 · 153 阅读 · 0 评论 -
python学习第二天笔记
一.①链式赋值:链式赋值用于同一个对象赋值给多个变量。eg:x=y=10,相当于x=10;y=10。②系列解包赋值:给对应相同个数的变量赋值。eg: a,b,c=10,20,30二.数据类型及运算1.数据类型:①整型 ②浮点型 ③布尔型(true,false) ④字符串型2.运算:+,-,,/(浮点数除法),//(整数除法),%(模,或“取余”),**幂,divmod() 函数,可以同...原创 2020-04-18 23:57:59 · 571 阅读 · 1 评论 -
python学习第一天笔记
一.python的特点:1.可读性强。2.简介。3.面向对象。4.免费和开源。5.可移植性和跨平台。6.丰富的库(丰富的标准库,多种多样的扩展库)7.可扩展性,可嵌入到c和c++语言。二.python的应用范围:1.科学计算。2.人工智能。3.web服务端和大型网站后端。4.GUI开发(图形界面开发)。5.游戏开发。6.移动设备。7.嵌入式设备。8.系统运维。三.①第一个python源程序...原创 2020-04-17 19:26:40 · 265 阅读 · 0 评论