标识符:用于表示变量/函数/类/模块等名称
1.区分大小写
2.第一个字符必须是字母,下划线,其后的字符只能是字母/数字和下划线,其他的不行
3.不能使用关键字(这个太重要了,以前就犯过这样的错)
4.以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法
标识符:用于表示变量/函数/类/模块等名称
1.区分大小写
2.第一个字符必须是字母,下划线,其后的字符只能是字母/数字和下划线,其他的不行
3.不能使用关键字(这个太重要了,以前就犯过这样的错)
4.以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法
用del删除变量
对象无变量引用时会被清出内存
变量即对象的引用
变量在栈内,对象在堆内
python变量不需声明,调用对象即可
对象即内存块
对象3要素:内存地址即ID/数据类型即type/数据值即value
赋值即时对象地址传递给变量
nonlocal
声明外层的局部变量
global
### 对于LightGBM:又轻又快
在不降低准确率的前提下,速度提升了10倍左右,占用内存下降了3倍左右。因为它是基于决策树算法的,它采用最优的==叶明智==策略分裂叶子节点,然而它的提升算法分裂树一般采用的是深度方向或者水平明智。因此,当增长到相同的叶子节点,叶明智算法比水平-wise算法减少更多得损失。因此导致更高的精度。
J_\theta=-l(\theta)
### logistic函数:通过回归进行分类
### logistic回归的过程
- 1) 找到一个合适的预测函数,一般表示为h函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程是非常关键的,需要对数据有一定的了解和分析,知道或者猜测预测函数的大概形式,比如是线性函数还是非线性函数。
- 2)构造一个loss损失函数,该函数表示预测的输出与训练数据类别之间的偏差。可以是二者之间的差或者是其他的形式。综合考虑所有训练数据的损失,将loss求和或者求平均,记为J(theta)函数,表示所有训练数据预测值与实际类别的偏差。
- 3)显然,J函数的值越小表示预测函数越准确。所以这一步需要做的是找到J函数的最小值。找到最小值有不同的方法。如梯度下降法。
# 线性回归
## 方程y=Ax
## 最小二乘法(平方)Least Squares Method
\sum_(n=1)^N(y-y_i)^2
w\hat=(\pmb{X^T}\pmb{X})^-1\pmb{X^T}y
> 让平方误差最小
集成算法
- bagging:套袋法
- boosting:提升算法:增大错误样本的权重同时减小正确样本的权重。与bagging对比boosting可以同时降低偏差和方差,而bagging只能降低模型的方差。但boosting更加容易过拟合。
- 随机森林:应用bagging和多颗决策树
- 梯度提升树
- adaboost:
> adaboost算法与boost算法不同,它是使用整个训练集来训练弱学习器,其中训练样本在每次迭代的过程中都会重新被赋予一个权重,在上一个弱学习器错误的基础熵进行学习来构建一个更加强大的分类器。
import io
sio=io.StringIO(s)
sio.getvalue()
sio.seek(7)
sio.write(''h'')
import turtle
import math
x1,y1=100,100
x2,y2=100,-100
x3,y3=-100,-100
x4,y4=-100,100
turtle.penup()
turtle.goto(x1,x1)
turtle.pendown()
.....
.....
.....
distance=math.sqrt((x1-x4)**2+(yi-y4)**2)
turtle.write(distance)
堆放对象
栈放变量
对象:标识 类型 值
对象的本质:内存块
import turtle
turtle.width(5)
turtle.color("blue")
turtle。circle(50)
turtle。penup()
turtle。goto(120,0)
turtle.pendown()
turtle。circle(50)
turtle。goto(240,0)
turtle。circle(50)
turtle。goto(60,-50)
turtle。circle(50)
turtle。goto(180,-50)
turtle。circle(50)
1.注意缩进
每个缩进层使用单个制表符或者四个空格
Python用缩进表示程序块
2python区分大小写
3行注释#
段注释'''
ctrl+c 中断程序
# sklearn学习
## 介绍
- 数据分析和数据挖掘
- 用python进行机器学习
> 数据分析和数据挖掘==机器学习==人工智能
## 分类
- classification
- regression
- clustring
- dimensionality reduction
- model selection
- preprocessing
时间表达(从1970年计算的unix时间点,毫秒1/1000进行计算)
import time(加载时间模块)
time.time() 获得当前时刻返回值
整数表示:
.0b/B 二进制
.0o/O 八进制
.0x/X 十六进制