python内置函数

简介: python内置函数

reduce()


reduce(function, iterable)


def add(x, y) :            # 两数相加
    return x + y
sum1 = reduce(add, [1,2,3,4,5])   # 计算列表和:1+2+3+4+5
sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5])  # 使用 lambda 匿名函数
print(sum1)
print(sum2)


input(),raw_input()


raw_input( ) 将所有输入作为字符串看待,返回字符串类型。

input( ) 只能接收"数字"的输入


>>>a = input("input:")
input:123 
>>>a = raw_input("input:")
input:123


np.power(x,y)


计算x 的y 次方


三维数组切片取数


对象是三维数组,则切片应当是x[::],里面有两个冒号,分割出三个间隔,三个间隔的前、中和后分别表示对象的第0、1、2个维度


python错误和异常


1.try/except


2.try/except…else


3.try/except…else/finally


1单变量线性回归


模型表示:


代价函数,平方误差函数:

梯度下降求解代价函数:


2多变量线性回归


与单变量同理

代价函数python代码:


def computeCost(x,y,theta):
  inner=np.power(((x*theta.T)-y),2)
  return np.sum(inner)/(2*len(x))


1.梯度下降法:特征缩放

实际情况:特征值之间尺度差异太大,比如:房屋的尺寸和房间的数量,尺寸的值为 0-2000平方英尺,而房间数量的值则是0-5,

方法:将所有特征尺度尽量缩放在-1到1之间。


公式:


2.特征和多项式回归

20210420150001159.png

20210420150059505.png

3逻辑回归


模型

2021042015091175.png

import numpy as np
def sigmoid(z):
   return 1/(1+np.exp(-z))


代价函数

20210420151457889.png

20210420151611810.png

import numpy as np
def cost(theta,x,y):
   theta=np.matrix(theta)
   x=np.matrix(x)
   y=np.matrix(y)
   first=np.multiply(-y,np.log(sigmoid(x*theta.T)))
   second=np.multiply((1-y),np.log(1-sigmoid(x*theta.T)))
   return np.sum((first-second)/len(x))


流程建立模型,找到代价函数,用梯度下降求代价函数

还有其他令代价函数最小的算法:共轭梯度,局部优化法,有限内存局部优化法。


多类别分类:一对多

原理,比如有三类,三角形,正方形,x形,先从三角形代表类别1开始,实际上我们创建一个,新的“伪”训练集,类型2和类型3定位负类,将正方形,x形看成是圆形,依次类推。


4正则化


4.1 过拟合的问题

处理方法:

1.丢弃一些不能帮助我们正确预测的特征,人工选择一些特征,或者通过一些模型PCA的算法来帮助选取

2.正则化,保留所有特征,减少参数大小。

20210420155524613.png


我们可以通过对高次项的系数,接近于0的话,就能很好拟合。


5神经网络


计算代价函数偏导数方法一一一反向传播算法


6应用机器学习的建议


当我们运用训练好了的模型来预测未知数据的时候发现有较大的误差下一步做什么。


1.获取更多的训练实例,通常是有效的,但代价较大–解决高方差

2.尝试减少特征的数量–解决高方差

3.尝试获得更多的特征–解决高偏差

4.尝试增加多项式特征–解决高偏差

5.尝试减少正则化程度入–解决高偏差

6.尝试增加正则化程度入–解决高方差


6.1模型选择和交叉验证集


模型选择的方法:

情景:使用60%的数据作为训练集。使用20%的数据作为交叉验证集,使用20%的数据作为测试集

1.使用训练集训练出10个模型

2.用10个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值)

3.选取代价函数最小的模型

4.用步骤3选择的模型对测试集计算得出推广误差(代价函数的值)


6.2诊断偏差和方差


原理:算法表现不理想,一般是偏差较大,或者方差较大,换句话说,出现的情况要么是欠拟合,要么是过拟合,判断是与偏差有关还是方差有关。

训练集与交叉验证集代价函数误差与多项式的次数关系:

20210420164409592.png


由上图可知:训练误差和交叉验证集误差近似时:偏差/欠拟合

交叉验证集误差远大于训练误差时:方差/过拟合

通常我们使用正则化来防止过拟合,我们选择一系列测试的入值,通常是0-10之间的呈现2倍关系的值(如:0,0.01,0.02,0.04,0.08,0.015等12个),将数据分为训练集、交叉验证集、测试集


选择方法:

1.使用训练集训练出12个不同程度正则化的模型

2.用12个模型分别对交叉验证集计算出交叉验证误差

3.选择交叉验证误差最小的模型

4.运用步骤3选出模型,对测试机计算推广误差


构建一个学习算法的推荐方法


1.从一个简单的能快速实现的算法开始,实现该算法并用交叉验证集测试这个算法

2.绘制学习曲线,决定是增加更多数据,或者添加更多特征,还是其他选择

3.进行误差分析,人工检查交叉验证集中我们算法中产生预测误差的实例,看这些实例是否有系统化的趋势


分类算法误差度量评估


1.查准率

2.查全率

3.查准率与查全率之间的权衡

F1值 计算公式

相关文章
|
1月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
169 2
|
1月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
259 1
|
1月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
155 0
|
2月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
269 101
|
2月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
210 99
|
2月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
186 98
|
2月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
3月前
|
Python
Python 函数定义
Python 函数定义
491 155
|
4月前
|
PHP Python
Python format()函数高级字符串格式化详解
在 Python 中,字符串格式化是一个重要的主题,format() 函数作为一种灵活且强大的字符串格式化方法,被广泛应用。format() 函数不仅能实现基本的插入变量,还支持更多高级的格式化功能,包括数字格式、对齐、填充、日期时间格式、嵌套字段等。 今天我们将深入解析 format() 函数的高级用法,帮助你在实际编程中更高效地处理字符串格式化。
541 0
|
2月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
620 0

推荐镜像

更多