机器学习算法 20210530

数据清洗和特征选择

  • pandas:Fuzzywuzzy-Levenshtein distance 模糊查询与替换
#素数
#方法一
t=time()
p=[p for p in range(a,b) if 0 not in [p%d for d in range(2,int(math.sqrt(p)+1))]]
print time()-t #运算时间
print p

#方法二:利用filter
t=time()
p=flter(is_prime,range(a,b))
print time()-t #运算时间
print p

def is_prime(x):
	return 0 not in [x%i for i in range(2,int(math.sqrt(x))+1)]

#方法三:利用filter()和lambda函数
t=time()
is_prime2=(lambda x:0 not in [x%i for i in range(2,int(math.sqrt(x))+1)])
p=filter(is_prime2,range(a,b))
print(time()-t)
print p

#方法四:定义
t=time()
p_list=[]
for i in range(2,b):
	flag=True
	for p in p_list:
		if p>math.sqrt(i):
			break
		if i%p==0:
			flag=False
			break
	if flag:
		p_list.append(i)
print(time()-t)
print p_list

#方法五:定义和filter()
p_list2=[]
t=time()
filter(is_prime3,range(2,b))
print(time()-t)
print p_list2

def is_prime3():
	flag=Ture
	for p in p_list2:
		if p>math.sqrt(x):
			break
		if x%p==0:
			flag=False
			break
	if flag:
		p_list2.append(x)
	return flag

回归

线性回归

  • 线性回归:y=ax+b
  • 多变量的情形:请添加图片描述
  • 合理的假设是合理的模型的必要前提,假设具有三个性质:内涵性、简化性、发散性
    1)内涵性:即假设根据常理应该是正确的,假设往往是正确的但不一定总是正确的
    2)简化性:假设只是接近真实,往往需要若干简化
    3)发散性:在某个简化的假设下推导得到的结论,不一定只有在假设成立时结论才能成立
  • 使用极大似然估计解释最小二乘法请添加图片描述
    请添加图片描述
    请添加图片描述
  • 中心极限定理的意义:很多随机现象可以看作众多因素的独立影像的综合反映,往往近似正态分布。<注意:应用前提是多个随机变量之和,当一些问题是乘性误差,则需要鉴别或取对数后使用>
  • sigma的解析式求解过程请添加图片描述
  • 最小二乘意义下的参数最优解
    请添加图片描述
    请添加图片描述
    后面添加一项为正则项
    请添加图片描述
    请添加图片描述
  • Moore-Penrose广义逆矩阵
    请添加图片描述
    请添加图片描述
  • 线性回归可以对样本非线性,只要对参数线性
    请添加图片描述

局部加权线性回归

请添加图片描述
请添加图片描述

Logistic回归

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

多分类softmax回归

请添加图片描述
请添加图片描述

技术点

梯度下降算法

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 最大似然估计
  • 特征选择

回归实践

AUC

请添加图片描述

决策树与随机森林

信息熵

  • 条件熵
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述

决策树的学习算法

请添加图片描述

  • 决策树学习算法的特点:有监督学习,即从一类无序、无规则的事物中推理出决策树表示的分类规则
  • 决策树学习的生成算法:关键是在当前状态下选择哪个属性作为分类依据,根据不同的目标函数,建立决策树主要有三种算法
    1)ID3:iterative dichotomiser,信息增益
    2)C4.5
    3)CART:classification and regression tree

信息增益

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

gini

请添加图片描述
请添加图片描述
请添加图片描述

决策树的评价

请添加图片描述

Bagging与随机森林

  • 决策树的过拟合:决策树对于训练数据具有较好的分类能力,但对于位置测试数据的分类能力较弱,即泛化能力较弱,可能发生过拟合的现象。
  • 解决决策树的过拟合现象:剪枝、随机森林

剪枝

  • 三种决策树的剪枝算法相同,区别在于当前树的评价标准不同
  • 剪枝的总体思路:
    -由完全树T0开始,剪枝部分结点得到T1,剪枝部分结点得到T2…直至仅剩树根的树Tk
    -在验证数据集上对k个树分别评价,选择损失函数最小的树Ta
    请添加图片描述
    请添加图片描述

Bagging

请添加图片描述
请添加图片描述

随机森林

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

提升

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

adaboost 算法

请添加图片描述
请添加图片描述

其他

filter()函数

  • filter()函数:从可迭代对象中筛选一些元素,并生成一个新的迭代器。可通过for循环进行使用
  • 基本语法:filter(function, iterable)
  • filter()不同的用法:
    1)在filter()中使用特殊函数。
    -filter()第一个参数即函数,用来决定第二个参数所引用的可迭代对象中每一项的去留。
    -例如filter()与lambda函数结合使用,filter(lambda item: item[] expression, iterable)
    2)在filter()中使用None:将None作为filter()第一个参数,让过滤器过滤掉布尔值为False的对象。
    3)将filter()用于复杂场景

pipeline()函数

  • sklearn.pipeline()模块中的函数:带有最终评估器的转移管道,运用一系列的转换操作和一个最终的评估器。
  • 管道中转换器可以使用内存参数进行缓存
  • 管道的目的是组装几个步骤,步骤可以设置不同的参数进行交叉验证
  • 输入参数:
    1)参数名:steps
    2)类型:list
    说明:元组(实现fit/transform)的列表,按照被连接的顺序排列,最后一个对象是估计器1)参数名:memory
    2)类型:NONE,str or object with the job lib.Memory interface, optional
    说明:用于缓存管道的被训练的转换器。默认情况下,不执行缓存,如果给定的是一个字符串,那么得到缓存目录的路径。启用缓存可以在拟合之前出发转换器的克隆。因此,管道的转换器实例不能直接转换,使用named_steps或者步骤来检查管道内的估计器
    -name_steps:只读属性,可通过用户给定的名字访问任何步骤。键是步骤名称,值是步骤的参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值