- 博客(33)
- 收藏
- 关注
原创 35、机器学习kmeans聚类
注:对于每个点i 为已聚类数据中的样本 ,b_i 为i 到其它族群的所有样本的平均。2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类。3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平。4、如果计算得出的新中心点与原中心点一样,那么结束,否则重新进行。如果sc_i 小于0,说明a_i 的平均距离大于最近的其他簇。如果sc_i 越大,说明a_i 的平均距离小于最近的其他簇。1、随机设置K个特征空间内的点作为初始的聚类中心。距离,a_i 为i 到本身簇的距离平均值。
2023-10-20 21:36:55 80
原创 34、机器学习线性回归、岭回归
过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。欠拟合:一个假设在训练数据上不能获得更好的拟合, 但是在训练数据外的数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。表示方向,沿着这个函数下降的方向找,最后就能找到山谷的最低点,然后更新W值面对训练数据规模十分庞大的任务时使用。线性回归可以拟线性的数据也可以拟合非线性的数据,模型复杂的原因是数据目标与特征之间的关系不仅仅是线性关系。
2023-10-18 21:09:11 147
原创 33、机器学习决策树、随机森林
集成学习通过建立模型的组合来解决单一的预测问题,原理是生成多个分类器/模型,每个分类器独立建模和预测,这些预测最后结合成单预测,因此由于单分类做出的预测。g(D, 年龄) = H(D) - H(D’|年龄) =0.971- [1/3H(⻘年)+1/3H(中年)+1/3H(⽼年)]=H(⻘年) = -(2/5log(2/5)+ 3/5log(3/5))H(中年) = -(2/5log(2/5)+ 3/5log(3/5))H(⽼年) = -(4/5log(4/5)+ 1/5log(1/5))
2023-10-08 21:41:45 61
原创 32、机器学习朴素贝叶斯
现有一篇被预测文档:出现了影院,支付宝,云计算,计算属于科技、娱乐的。事件独立可推出p(A1,A2|B)=p(A1|B)p(A2|B)条件概率为在事件B发生的情况下事件A发生的概率p(A|B)α为指定的系数一般为1,m为训练文档中统计出的特征词个数。科技:P(影院,支付宝,云计算 │科技)∗P(科技)=,W为给定的特征值(词频),C为文档类型,可以理解为。精确率:预测结果为正例的样本中实际为正例的比例。联合概率为所有条件均满足的概率p(A,B)召回率:实际结果为正例预测结果为正例的比例。
2023-09-24 16:58:42 81
原创 31、机器学习k近邻
在特征空间中与样本最相似(距离最近)的k个样本中大多数样本归属的类别为该样本归属的类别。缺点:测试集预测时计算的计算量大、k值一定要确定取值不当会影响模型效果。加快搜索速度——基于算法的改进KDTree,API接口里面有实现。优点:易于理解、实现,无须参数估计和训练模型。k值取很大:容易受最近数据太多导致比例变化。k值取很小:容易受异常点影响。适用几千到几万的小样本数据。常用的距离为欧式距离。
2023-09-23 16:54:38 46
原创 30、机器学习数据集与数据转换
sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’):data_home为数据存储的位置,subset: ‘train’或者’test’,‘all’,可选,选择要加载的数据集.1、特征工程中的数据转换:fit_transform()输入数据并转换,fit()输入数据,不进行转换,会计算平均值、方差等,transform()进行转换。()获取小规模数据集,数据包含在datasets里,datasets.load_
2023-09-20 21:04:07 176
原创 29、机器学习特征选择、流程
有监督学习:由特征值+目标值的数据集构建模型,对新输入的特征进行预测。目标值是离散的为分类模型,目标值是连续的为回归模型。2、特征选择是指从提取到的所有特征选择部分特征作为训练特征,筛选前后值可以变也可以不变,但是特征的数量一定是减少的。4、评估模型,模型合格进入下一步,不合格回到2,调整的思路有:更换算法、调参、特征工程。无监督学习:基于仅有特征组成的数据集构建模型,并依此模式推测新的结果。1、目的:需要解决的问题,要构建什么样的模型,根据数据类型划分应用种类。3、构建模型:找到合适的算法。
2023-09-19 20:48:46 51
原创 28、机器学习:数据的特征处理
pandas缺失值处理:fillna、dropna,前提是数据中的缺失值通过np.nan(float类型)表示,通过replace(‘?对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。注:作用于每一列,max为一列的最大值,min为一列的最小值,那么X’’⽬的:是的某⼀个特征对最终结果不会造成更⼤影响,每个特征值是同等的重要。⽬的:是的某⼀个特征对最终结果不会造成更⼤影响,每个特征值是同等的重要。数值型数据:标准缩放 :归一化、标准化、缺失值。
2023-09-17 12:21:20 66
原创 27、机器学习概述
tf-idf:tf为词的频率=指定词数/文档总次数,idf逆文档频率=log(总文档数/出现该词的文档数),tf*idf为该词重要度。主要思想是:如果某个词或短语在一篇文章中出现的概率高,4、特征工程:通过将原始数据转化为更好地代表预测模型潜在问题的特征过程,提高对未知数据预测的准确性。3、机器学习的数据大多数以文件格式,numpy释放GIL锁,实现真正的多线程,数据由特征值和目标值组成。1、什么是机器学习:通数据自动分析获取规律(模型),利用规律进行对未知数据进行预测。
2023-09-15 20:47:31 40
原创 25、机器学习数学基础:概率论
1、随机变量分布cdf累积分布函数F(θ)pdf概率密度函数f(θ)p(θ1≤x≤θ2)=∫θ1θ2f(θ)dθ=F(θ2)−F(θ1)X、Y独立,P(X=x,Y=y)=P(X=x)P(Y=y)P(X∈Ω1,Y∈Ω2)=P(X=x)P(Y=y)X、Y idd:独立同分布cdf累积分布函数F(\theta)\\ pdf概率密度函数f(\theta)\\p(\theta_1\leq x\leq \theta_2)=\int_{\theta_1}^{\theta_2} f(\theta)d\theta=F(
2023-08-27 14:28:38 156
原创 24、机器学习数学基础:线性代数
1、向量、矩阵、张量标量:x向量:(x1,x2,...,xn)∈Rn(x_1,x_2,...,x_n)\in R^n(x1,x2,...,xn)∈Rn,x⃗−i\vec{x}_{-i}x−i表示去掉第i个元素的向量。矩阵:Aij,(x11...x1n......xn1...xnn)A_{ij},\left(\begin{array}{ccc}x_{11}&...&x_{1n}\\...&&...\\x_{n1}&...&x_{nn}\en
2023-08-21 21:16:01 100
原创 23、机器学习数学基础:多元函数微积分
y=f(x1,x2,...,xn),(x1,x2,...,xn)∈Rn,xi∈Ry=f(x_1,x_2,...,x_n),(x_1,x_2,...,x_n) \in R^n,x_i\in Ry=f(x1,x2,...,xn),(x1,x2,...,xn)∈Rn,xi∈R点(x1,x2,...,xn)(x_1,x_2,...,x_n)(x1,x2,...,xn)与点(z1,z2,...,zn)(z_1,z_2,...,z_n)(z1,z2,...,zn)之间的距离为d=((x1−
2023-08-16 20:48:28 90
原创 17、python的pandas时间序列
freq常见的有D日、M月、H小时、B每工作日、T/min分钟、S秒、BM每月最后一个工作日、MS每月第一个日历日、BMS每月第一个工作日。现在我们有2015到2017年25万条911的紧急电话的数据,请统计出出这些数据中不同类型的紧急情况的次数,如果我们还想统计出不同月份不同类型紧急电话的次数的变化情况,应该怎么做呢?3、df.resample(‘M’).mean():df的行索引为时间序列,重抽样为将一个频率的时间转化为另一个转化为另一个频率的时间,一般将高频率转化为低频率。
2023-07-31 20:31:11 228 1
原创 16、python中dataframe的合并行/列、分组与聚合、行索引
df[[col3]].groupby(by=[df[col1],df[col2]]).count()或df.groupby(by=[col1,col2])[[col3]].count():结果为dataframe,col1、col2组成复合索引。df.groupby(by=[df[col1],df[col2]])或df.groupby(by=[col1,col2]):对多列进行分组。合并行:t1.join(t2)相当于t1左关联t2,通过行索引关联,保留t1、t2全部字段,t1、t2列重复会报错。
2023-07-28 09:27:22 4381 2
原创 15、python下pandas的Series、DataFrame使用
1、df[数字1:数字2] 、df[行索引1:行索引2]:选择行,结果为dataframe,单个数字或单个行索引均无法使用,通过数字时结果不包括数字2,通过行索引时包括行索引2。4、df.loc[行索引1:行索引2,列索引1:列索引2]、df.loc[[行索引1,行索引2],[列索引1,列索引2]]:切片包含行索引2,列索引2。5、df.loc[:,列索引1:列索引2]、df.loc[:,列索引1]:选择单列得到Series类型, 切片包含列索引2。series.tolist():将series转成列表。
2023-07-26 20:41:50 144 1
原创 14、python中numpy的使用
2.1、显示数组形状:a.shape,返回元组,(n1,)表示一维数组,(n1,n2)表示二维数组,(n1,n2,n3)表示三维数组,n1表示最外层的元素个数,n2表示次外层的,n3表示最里层的。shape为(4,3,2)的数组:(4,3,1)、(3,2)、(3,1)、(4,1,1)数组可广播计算,(4,3)、(4,2)、(4)数组不可广播计算。多个点:a[[n1,n2],[n3,n4]]表示取点(n1,n3)/(n2,n4)不连续的多行:a[[n1,n2,n3]]、a[[n1,n2,n3],:]
2023-07-23 21:16:07 146
原创 13、python matplotlib绘制折线图、直方图、条形图、散点图
二、绘制散点图:比较不同条件之间的内联关系,观察数据的离散聚合程度。2、绘制横向条形图:网格的作用相当于移动坐标轴,便于比较。1、绘制直方图:没有统计过的数据才可绘制直方图。条形图:常用于离散型变量,比较数据之间的差别。明确问题、选择图像、准备数据、绘图及完善图形。散点图:反映变量间的关系,展示离群点。2、统计数据,不等宽条形图画的直方图。3、统计数据,等宽条形图画的直方图。直方图:显示连续变量分布。折线图:显示趋势变化。
2023-07-22 14:28:06 748 1
原创 12、python数据分析、matplotlib.pyplot绘制折线图
数据分析采取适当的方法对收集的大量数据进行分析,帮助人们做出判断并采取适当的行动。数据分析的流程有:提出问题、准备数据、分析数据、得到结论、成果、可视化(可选)(二) matplotlib.pyplot绘制折线图。2、设置图片大小、刻度。3、设置显示中文字体。
2023-07-19 22:04:51 140
原创 11、python模块与包
2.2、导入的方式有:import 包.模块、from 包 import 模块、from 包.模块 import 方法\类。当模块被其他模块导入时__name__为模块名,当模块作为程序入口运行时,__name__为‘__main__’,通这个特点可以将源代码里面的测试代码独立处理。3.1、import 模块名 as 别名:导入整个模块,创建了一个对象,在一个线程中无论导入多少次都是同一个对象(实际上只有第一次导入了),本质上是使用内置函数__import__(模块名)创建模块对象。包里面包含模块或子包。
2023-07-18 20:02:32 72 1
原创 10、python文件处理
f.tell()显示当前指针所在的位置。shutil.copytree(源文件夹目录,新文件夹目录,ignore=shutil.ignore_patterns(‘*.txt’,‘*.html’)):拷贝文件夹,新文件夹目录不存在才可创建成功,ignore表示不拷贝txt、html文件。pickle.dump(对象,f)序列化将内存的对象转化为串行化数据对象存储到硬盘中,对象=pickle.reload(f)反序列将读取到的串行化数据转化成对象,序列化与反序列化的顺序相同,值相同,但不是同一个对象。
2023-07-16 16:36:14 132 1
原创 9、python异常
执行try中语句,若无报错,则跳过exception子句,执行之后的程序,若报错则跳过try中剩余语句,执行exception中语句,再执行之后的程序。异常类的继承关系:所有异常的父类BaseException-Exception-NameError等。RuntimeWarning 可疑的运行时行为(runtime behavior)的警告。8、trackback模块的函数traceback.print_exc()打印异常信息,OverflowWarning 旧的关于自动提升为长整型(long)的警告。
2023-07-12 21:41:36 69 1
原创 8、python对象的方法、对象的封装、继承、多态、组合、设计模式
子类继承父类除构造方法外的所有成员(属性和方法),在父类的基础上进行扩展或改进,实现代码的重用。1.2、方法也是属性,只不过可以通过()执行,python私有属性并不严格,名字前为__为私有属性(方法),类内部可以直接访问私有属性(方法),外部无法直接访问私有属性(方法),通过 对象._类名__私有属性(方法)名访问。2.2.5、可以通过super().方法() 在子类调用父类的同名方法,super()是父类的定义,不是父类对象。深拷贝:拷贝对象的子对象,源对象和新对象的引用不同的子对象。
2023-07-11 20:28:35 105 1
原创 7、python函数、对象
2.7、类方法(不是必须):对类属性的操作,从属与类的方法,通过装饰器@classmethod 定义,方法的第一个参数必须类对象(cls),调用通过类名.方法(),不能也不需要对cls传值。通过调用__init__定义,类的其他实例方法通过self.属性名 访问,对象创建后通 对象.属性名访问,通过 对象.属性名=属性值 可以新增对象的属性或修改对象的属性。类是对方法和属性的封装,属性是用来描述数据,方法是对数据的操作,对象是类的具体实体,方法代码共享,数据属性不共享。
2023-07-10 14:17:02 114 1
原创 6、python 函数
6、lambda表达式: a=lambda 形参列表: 表达式 ,定义的是一个匿名函数对象,通过a()调用函数,表达式只能含一个,不能含复杂的语句,函数的计算结果为返回值,可以构建以函数为元素的列表。执行def定义函数之后,系统创建了函数对象,函数变量存储了函数对象的地址,赋值操作a=函数变量 传递的是对象的地址。3、浅拷贝:b=copy.copy(a),只对第一层的对象进行拷贝,引用的子对象还是一样的,即只拷贝子对象的地址。4、传递不可变对象时,不可变指的是第一层对象,子对象可以是可变的。
2023-07-08 16:03:05 108 1
原创 5、python:for循环、函数
def括号内的参数为形参,在定义函数时使用,作用范围仅在函数内部,以逗号隔开,无参数时也要保留括号,无需定义类型,实参是调用函数时实际传入的参数,实参与形参的数量一一对应。函数名称要符合标识符的规则,执行def时会生成一个函数对象,将这个对象绑定到函数名变量,函数名变量存储的是函数对象的地址。1、列表推导式:[item表达式 for item in 可迭代对象]或[item表达式 for item in 可迭代对象 if 选择表达式]1.3、break结束整个循环,如果有嵌套循环,结束最近一层的循环。
2023-07-07 21:49:20 324 1
原创 4、python字典、集合、分支结构、循环结构的while
字典的键值必须可散列,自定义对象时要满足:1、支持hash()函数2、支持__eq__()方法检测相等性3、若a==b为真 则 hash(a)==hash(b)为真。1.2.2、dict.items()返回所有键值对dict_items对象[(键1,值1)(,键2:值2),…False、0、0.0、None、空序列(空字符串、空列表、空元组、空字典、空集合)、空range()、空的迭代对象都判断为False。,键值对n=dict.items() 得到 键值对1,…,键值对n,键值对1为元组(键1,值1)
2023-07-06 21:43:36 164 1
原创 3、python可变字符串、操作符、列表、元组
列表是用于存储任意数目任意类型的数据集合,类型可以不一致,是可变的任何元素的序列,是包含多个元素的可变连续内存空间,列表的每个元素对应一个对象,列表使用一段连续的内存空间存储的这些对象的地址,列表变量是对列表地址的引用。range(start,end,步长)生成range对象,start(默认0)、步长(默认1)参数可选,包头不包尾,步长为负数指从负向开始例如range(20,3,-1),list(range())生成整数列表。删除元组del a。序列包括字符串、列表、元组、字典、集合,有相似的操作。
2023-07-05 19:33:28 278 1
原创 2、python赋值与常量、常见数据类型及相关操作
字符串本质就是字符序列,python字符串不可变,支持Unicode,默认16位,ord()获取字符的Unicode编码,chr()获取Unicode编码对应的字符。数字类型包括整型和浮点型,能进行的数值操作包括+、-、*、/、//(整除)、%(模/取余)、**(幂次),divmod(返回商和余数):divmod(13,3)获得元组(4,1)。格式排版:a.center(长度,填充字符)(字符串居中)、ljust(长度,填充字符)(字符串居左)、rjust(长度,填充字符)(字符串居右)
2023-07-04 20:00:52 443
原创 1、python特点、开发环境、程序、对象与变量
python是面向对象、解释性语言、可读性强、简洁、入门简单、由c开发、免费开源、可移植和跨品平台、丰富的库、可扩展性。标识符是模块、类、函数、变量的名称,不能含关键字,以字母或下划线开头,后接字母、数字、下划线,区分大小写。python是动态类型语言,不需要显示声明的类型,根据引用的对象自动确定变量的类型。是强类型语言,需要确定对象的类型,每个类型有每个类型的操作。python中一切皆对象,对象本质是内存块,由标识、类型、值构成。变量是对对象的引用,存储了对象的地址,变量通过地址引用了对象。
2023-07-02 16:16:03 156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人