3415-陈漫漫-人工智能学科-数据挖掘方向-就业:是 扫二维码继续学习 二维码时效为半小时

(0评价)
价格: 免费

三、剪枝参数:正确剪枝是优化决策树算法的核心

注:剪枝后准确度不下降,保留剪枝参数,避免重复计算;准确度下降,注掉参数

1、max_depth:限制树的最大参数

高维度、低样本量非常有效,从=3开始尝试,看拟合效果再增加深度

2、min_sample_leaf

1)一个节点在分枝后,每个节点至少包含min_sample_leaf个训练样本samples

2)一般和max_depth搭配使用

3)太小:过拟合,太大:阻止模型学习数据

4)从=5开始使用;

训练集测试集划分不平衡:输入浮点数(含义为样本总量*小数);

类别不多,=1通常最好

3、min_sample_split

1)一个节点至少min_sample_split个样本才被允许分枝

 

 

[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

控制随机性的两个参数

1、random_state:控制随机模式,使每次结果一致,默认为None

决策树高维随机性明显,低维度数据集随机性不会显现

2、splitter:控制随机性,可以与random_state同时设置,如果设置了反而准确度降低则不写

1)="best",默认,分枝随机,但会优先选更重要特征进行分枝

2)="random",更随机,决策树会更深,拟合程度更低(防止过拟合)

 

[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

决策树重要参数

1、criterion:决定不纯度计算方法

entropy信息熵,gini基尼系数

  • 通常使用gini(默认)
  • 维度低、数据清晰:没区别(信息熵慢一点)
  • 高维、噪音多的数据:gini(信息熵容易过拟合)
  • 决策树欠拟合:信息熵

不纯度:

  • 衡量最佳(决策树要找最佳节点和最佳分支方法),越低,决策树对训练集的拟合越好
  • 每个节点一个不纯度,子节点低于父节点(同一决策树,叶子节点的不纯度最低)
[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

数据标准化:数据按照均值中心化后,再按标准差缩放,数据就会变成均值为0方差为1的正态分布

API:from sklearn.preprocessing import StandardScaler

[展开全文]

特征工程:

去中心化:让所有记录减去一个固定值。

数据归一化:把数据按照最小值中心化后再按极差缩放,然后被收敛到0-1之间

preprocessing.minmax

[展开全文]

浅拷贝 copy :不拷贝子对象的内容,只拷贝子对象的引用。

 

深拷贝 deepcopy :连子对象的内存也全部拷贝一份,对子对象的修改不会影响源对象。

[展开全文]
lincyjiang · 2022-06-15 · 自由式学习 0

int float 字符串 元组 布尔值

传递参数是不可变对象时,实际也是传递的对对象的引用,但是因为不可变对象不可修改,所以系统创建新的对象。

[展开全文]
lincyjiang · 2022-06-15 · 自由式学习 0

可变对象:字典、列表、集合、自定义的对象

不可变对象:数字、字符串、元组、function等

可变对象进行更改时,不创建对象拷贝,直接修改这个对象。

[展开全文]
lincyjiang · 2022-06-15 · 自由式学习 0

函数内的局部变量可以和全局变量重名,只要不进行global申明,就是局部变量。

打印输出全部的局部变量 print(locals())

打印输出全部的全局变量 print(globals())

[展开全文]
lincyjiang · 2022-06-15 · 自由式学习 0

推导式

1、列表推导式

>>>[x for x in range(1,5)]

[1,2,3,4]

>>>[x for x in range(1,20) if(x%5==0)]

2、字典推导式

{key:value for 表达式 in 迭代对象}

3、集合推导式

{key  for 表达式 in 迭代对象}

4、生成器推导式 生成元组

一个生成器只能运行一次。

[展开全文]
lincyjiang · 2022-06-14 · 自由式学习 0

集合添加元素

a.add()

set()变成集合

remove()删除

[展开全文]
lincyjiang · 2022-06-14 · 自由式学习 0

字典是散列表  稀疏数组总有空白元素

数组每个单元就是一个bucket:2个部分 键对象引用和值对象引用

[展开全文]
lincyjiang · 2022-06-14 · 自由式学习 0

字典元素的增加

键已经存在,覆盖旧的,不存在就增新的

直接添加a['address']='haidian'

2、updata()直接将新字典中的所有键值对全部添加到旧字典对象上  a.update(b)

3、元素删除 del(a[name])

pop()删除指定键值对 b=pop()

[展开全文]
lincyjiang · 2022-06-14 · 自由式学习 0

字典:包含键和值

可以直接访问键获取值 a['name']

可以通过get获得

a,get('name')

获取所有键值对 a.items()

列出所有的键 a.keys()

列出所有的值 a.values()

键值对的个数 len()

检测一个键是否在字典中 "name" in a

 

[展开全文]
lincyjiang · 2022-06-14 · 自由式学习 0

1、a={'name':'gaoqi','age','18'}

a['name']=gaoqi

键不可可变 不可重复

2、a=dict(name='gaoqi',age='18')

a=dict([("name","gaoqi"),("age","18")])

3、zip()

k=['name','age']

v=['gaoqi','18']

d=dict(zip(k,v))

[展开全文]
lincyjiang · 2022-06-14 · 自由式学习 0

a=[

       ["高小一",18,3000,“北京”]

       ["高小二",18,3000,“上海”]

     ]

[展开全文]
lincyjiang · 2022-06-13 · 自由式学习 0

a.sort()

id(a)

import random

a.random.shuffle

max(a)

min(a)

sum(a)

[展开全文]
lincyjiang · 2022-06-13 · 自由式学习 0

a=[10,20,30,40,50,60]

a[1:3:1] 

>>>[20,30]

a[1::2]

>>>[20,40,60]

a[1:]

>>>[20,30,40,50,60]

a[:2]

>>>[10,20]

包头不包尾

a[::-1]

>>>[60,50,40,30,20,10]

[展开全文]
lincyjiang · 2022-06-13 · 自由式学习 0