**## 决策树
决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树。

物理学上,熵 Entropy 是“混乱”程度的量度。
在这里插入图片描述
系统越有序,熵值越低;系统越混乱或者分散,熵值越高。

  • 信息理论:
    1、从信息的完整性上进行的描述:
    当系统的有序状态一致时,数据越集中的地方熵值越小,数据越分散的地方熵值越大。
    2、从信息的有序性上进行的描述:
    当数据量一致时,系统越有序,熵值越低;系统越混乱或者分散,熵值越高。

1948年香农提出了信息熵(Entropy)的概念。
假如事件A的分类划分是(A1,A2,…,An),每部分发生的概率是(p1,p2,…,pn),那信息熵定义为公式如下:(log是以2为底,lg是以10为底)
在这里插入图片描述

决策树的划分依据一------信息增益

信息增益:以某特征划分数据集前后的熵的差值。熵可以表示样本集合的不确定性,熵越大,样本的不确定性就越大。因此可以使用划分前后集合熵的差值来衡量使用当前特征对于样本集合D划分效果的好坏。
信息增益 = entroy(前) - entroy(后)

定义与公式

特征A对训练数据集D的信息增益g(D,A),定义为集合D的信息熵H(D)与特征A给定条件下D的信息条件熵H(D|A)之差,即公式为:
在这里插入图片描述
公式的详细解释:
在这里插入图片描述
注:信息增益表示得知特征X的信息而使得类Y的信息熵减少的程度

案例

如下左图,第一列为论坛号码,第二列为性别,第三列为活跃度,最后一列用户是否流失。
解决一个问题:性别和活跃度两个特征,哪个对用户流失影响更大?
在这里插入图片描述
通过计算信息增益可以解决这个问题,统计上右表信息
其中Positive为正样本(已流失),Negative为负样本(未流失),下面的数值为不同划分下对应的人数。
可得到三个熵:
整体熵:
在这里插入图片描述
性别熵:
在这里插入图片描述
性别信息增益:
在这里插入图片描述
活跃度熵:
在这里插入图片描述
活跃度信息增益:
在这里插入图片描述
活跃度的信息增益比性别的信息增益大,也就是说,活跃度对用户流失的影响比性别大。

决策树的划分依据二----信息增益率

增益率:增益比率度量是用前面的增益度量Gain(S,A)和所分离信息度量SplitInformation(如上例的性别,活跃度等)的比值来共同定义的。
在这里插入图片描述
详细解释

决策树的划分依据三——基尼值和基尼指数

基尼值Gini(D):从数据集D中随机抽取两个样本,其类别标记不一致的概率。故,Gini(D)值越小,数据集D的纯度越高。
在这里插入图片描述
基尼指数Gini_index(D):一般,选择使划分后基尼系数最小的属性作为最优化分属性。
在这里插入图片描述

案例

请根据下图列表,按照基尼指数的划分依据,做出决策树。
在这里插入图片描述

  • 对数据集非类标号属性{是否有房,婚姻状况,年收入}分别计算它们的Gini系数增益,取Gini系数增益值最大的属性作为决策树的根节点属性。
    在这里插入图片描述
  • 根节点的Gini系数为:
    在这里插入图片描述
  • 当根据是否有房来进行划分时,Gini系数增益计算过程为:
    在这里插入图片描述
    若按婚姻状况属性来划分,属性婚姻状况有三个可能的取值{married,single,divorced},分别计算划分后的Gini系数增益。
    ​ {married} | {single,divorced}
    ​ {single} | {married,divorced}
    ​ {divorced} | {single,married}
    分组为{married} | {single,divorced}时:
    在这里插入图片描述
    当分组为{single} | {married,divorced}时:
    在这里插入图片描述
    当分组为{divorced} | {single,married}时:
    在这里插入图片描述
    对比计算结果,根据婚姻状况属性来划分根节点时取Gini系数增益最大的分组作为划分结果,即:{married} | {single,divorced}

同理可得年收入Gini:
对于年收入属性为数值型属性,首先需要对数据按升序排序,然后从小到大依次用相邻值的中间值作为分隔将样本划分为两组。例如当面对年收入为60和70这两个值时,我们算得其中间值为65。以中间值65作为分割点求出Gini系数增益。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最大化增益等价于最小化子女结点的不纯性度量(Gini系数)的加权平均值,现在我们希望最大化Gini系数的增益。根据计算知道,三个属性划分根节点的增益最大的有两个:年收入属性和婚姻状况,他们的增益都为0.12。此时,选取首先出现的属性作为第一次划分。

接下来,采用同样的方法,分别计算剩下属性,其中根节点的Gini系数为(此时是否拖欠贷款的各有3个records)
在这里插入图片描述
对于是否有房属性,可得:
在这里插入图片描述
对于年收入属性则有:
在这里插入图片描述
在这里插入图片描述
决策树的变量可以有两种:

  • 数字型(Numeric):变量类型是整数或浮点数,如前面例子中的“年收入”。用“>=”,“>”,“<”或“<=”作为分割条件(排序后,利用已有的分割情况,可以优化分割算法的时间复杂度)。
  • 名称型(Nominal):类似编程语言中的枚举类型,变量只能从有限的选项中选取,比如前面例子中的“婚姻情况”,只能是“单身”,“已婚”或“离婚”,使用“=”来分割。

​ 如果一个分割点可以将当前的所有节点分为两类,使得每一类都很“纯”,也就是同一类的记录较多,那么就是一个好分割点。
​ 比如上面的例子,“拥有房产”,可以将记录分成了两类,“是”的节点全部都可以偿还债务,非常“纯”;“否”的节点,可以偿还贷款和无法偿还贷款的人都有,不是很“纯”,但是两个节点加起来的纯度之和与原始节点的纯度之差最大,所以按照这种方法分割。构建决策树采用贪心算法,只考虑当前纯度差最大的情况作为分割点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

D3 算法

存在的缺点
​ (1) ID3算法在选择根节点和各内部节点中的分支属性时,采用信息增益作为评价标准。信息增益的缺点是倾向于选择取值较多的属性,在有些情况下这类属性可能不会提供太多有价值的信息.
​ (2) ID3算法只能对描述属性为离散型属性的数据集构造决策树。

C4.5算法

​ (1) 用信息增益率来选择属性
​ (2) 可以处理连续数值型属性
​ (3)采用了一种后剪枝方法
​ (4)对于缺失值的处理
C4.5算法的优缺点

  • 优点:
    • 产生的分类规则易于理解,准确率较高。
  • 缺点:​
    • 在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。

​ 此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。

CART算法

CART算法相比C4.5算法的分类方法,采用了简化的二叉树模型,同时特征选择采用了近似的基尼系数来简化计算。
C4.5不一定是二叉树,但CART一定是二叉树。
同时,无论是ID3, C4.5还是CART,在做特征选择的时候都是选择最优的一个特征来做分类决策,但是大多数,分类决策不应该是由某一个特征决定的,而是应该由一组特征决定的。这样决策得到的决策树更加准确。这个决策树叫做多变量决策树(multi-variate decision tree)。在选择最优特征的时候,多变量决策树不是选择某一个最优特征,而是选择最优的一个特征线性组合来做决策。这个算法的代表是OC1

如果样本发生一点点的改动,就会导致树结构的剧烈改变。这个可以通过集成学习里面的随机森林之类的方法解决。

cart剪枝

在这里插入图片描述

  • 横轴表示在决策树创建过程中树的结点总数,纵轴表示决策树的预测精度。
  • 实线显示的是决策树在训练集上的精度,虚线显示的则是在一个独立的测试集上测量出来的精度。
  • 随着树的增长,在训练样集上的精度是单调上升的, 然而在独立的测试样例上测出的精度先上升后下降。决策树复杂度较大,容易产生过拟合,因此需要剪枝

出现这种情况的原因:

  • 原因1:噪声、样本冲突,即错误的样本数据。
  • 原因2:特征即属性不能完全作为分类标准。
  • 原因3:巧合的规律性,数据量不够大。

常用的减枝方法

预剪枝

  • 每一个结点所包含的最小样本数目,例如10,则该结点总样本数小于10时,则不再分;
  • 指定树的高度或者深度,例如树的最大深度为4;
  • 指定结点的熵小于某个值,不再划分。随着树的增长, 在训练样集上的精度是单调上升的, 然而在独立的测试样例上测出的精度先上升后下降。

后剪枝:

  • 后剪枝,在已生成过拟合决策树上进行剪枝,可以得到简化版的剪枝决策树。

特征工程-特征提取

在这里插入图片描述

特征提取

将任意数据(如文本或图像)转换为可用于机器学习的数字特征
注:特征值化是为了计算机更好的去理解数据

特征提取分类:

  • 字典特征提取(特征离散化)
  • 文本特征提取
  • 图像特征提取

特征提取API

sklearn.feature_extraction

字典特征提取

作用:对字典数据进行特征值化
sklearn.feature_extraction.DictVectorizer(sparse=True,…)

  • DictVectorizer.fit_transform(X)
    • X:字典或者包含字典的迭代器返回值
    • 返回sparse矩阵
  • DictVectorizer.get_feature_names() 返回类别名称
[{'city': '北京','temperature':100},
{'city': '上海','temperature':60},
{'city': '深圳','temperature':30}]

在这里插入图片描述

from sklearn.feature_extraction import DictVectorizerdata = [{'city':'北京','temperature':100},{'city':'上海','temperature':60},{'city':'深圳','temperature':30}
]# 实例化转换器  DictVectorizer(sparse = 是否转换为稀疏矩阵)
transform = DictVectorizer(sparse=False)
# 转化数据即提取特征
res = transform.fit_transform(data)
res # 自动将离散特征作one-hot编码,转换为哑变量矩阵

在这里插入图片描述

# 获取每列对应字段名
transform.get_feature_names()

在这里插入图片描述

# 稀疏矩阵 - 若0元素个数少于非0元素个数,且分布无规律则为稀疏矩阵
transfer = DictVectorizer(sparse=True)
res = transfer.fit_transform(data)
res

在这里插入图片描述

print(res)  # (x,y) value ,对应哑变量矩阵中每个非零元素的值和索引

在这里插入图片描述

# 稀疏矩阵转ndarry
res.toarray()

在这里插入图片描述

one-hot 编码

pandas 实现one-hot编码方式

pandas.get_dummies(data, prefix=None)

在这里插入图片描述
转化为:
在这里插入图片描述
对于特征当中存在类别信息的我们都会做one-hot编码处理

文本特征提取

作用:对文本数据进行特征值化

  • sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
    返回词频矩阵
    • CountVectorizer.fit_transform(X)
      • X:文本或者包含文本字符串的可迭代对象
      • 返回值:返回sparse矩阵
    • CountVectorizer.get_feature_names() 返回值:单词列表
  • sklearn.feature_extraction.text.TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer  
data = ['life is to short,i like python','life is too long, i dislike python']
# 实例化转换器
transform = CountVectorizer()
# 进行提取
res = transform.fit_transform(data)  # 返回一个稀疏矩阵
res.toarray()  # 将稀疏矩阵转换为ndarry
# 结果为每个字段在第n个(行代表一个字符串)字符串中出现的次数

在这里插入图片描述

# 获取列名
transform.get_feature_names()

在这里插入图片描述

# 若采用中文
# CountVectorizer只支持英文,使用中文需要事先将每个词用blank分割
# 即data = ['人生 苦短,我 用 python','人生 太长,不用 python']
data = ['人生苦短,我用python','人生太长,不用python']transform = CountVectorizer()
res = transform.fit_transform(data)
res.toarray()

在这里插入图片描述

transform.get_feature_names()  

在这里插入图片描述

jieba分词处理

pip install jieba

jieba.cut()
返回词语组成的生成器

import jieba
# 中文分词
res = list(jieba.cut('人生苦短,我用python')) # jieba 返回为一个迭代器,采用list 转换
res

在这里插入图片描述

# 采用特征提取,每个字符串需要以空格进行连接
' '.join(res)

在这里插入图片描述

def cut_words(s):return ' '.join(list(jieba.cut(s)))
cut_words('人生苦短,我用python')

在这里插入图片描述

# 将data进行中文分词
data = ['人生苦短,我用python','人生太长,不用python']
temp = list()
for i in data:temp.append(cut_words(i))
temp

在这里插入图片描述

# 进行文本特征提取
transform = CountVectorizer()
res = transform.fit_transform(temp)
print(res)

在这里插入图片描述

# 转换为ndarry
res.toarray()

在这里插入图片描述

# 获取字段名
transform.get_feature_names()

在这里插入图片描述

from sklearn.feature_extraction.text import CountVectorizer
import jiebadef cut_word(text):"""对中文进行分词"我爱北京天安门"————>"我 爱 北京 天安门":param text::return: text"""# 用结巴对中文字符串进行分词text = " ".join(list(jieba.cut(text)))return textdef text_chinese_count_demo2():"""对中文进行特征抽取:return: None"""data = ["一种还是一种今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。","我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。","如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。"]# 将原始数据转换成分好词的形式text_list = []for sent in data:text_list.append(cut_word(sent))print(text_list)# 1、实例化一个转换器类# transfer = CountVectorizer(sparse=False)transfer = CountVectorizer()# 2、调用fit_transformdata = transfer.fit_transform(text_list)print("文本特征抽取的结果:\n", data.toarray())print("返回特征名字:\n", transfer.get_feature_names())return None
Building prefix dict from the default dictionary ...
Dumping model to file cache /var/folders/mz/tzf2l3sx4rgg6qpglfb035_r0000gn/T/jieba.cache
Loading model cost 1.032 seconds.
['一种 还是 一种 今天 很 残酷 , 明天 更 残酷 , 后天 很 美好 , 但 绝对 大部分 是 死 在 明天 晚上 , 所以 每个 人 不要 放弃 今天 。', '我们 看到 的 从 很 远 星系 来 的 光是在 几百万年 之前 发出 的 , 这样 当 我们 看到 宇宙 时 , 我们 是 在 看 它 的 过去 。', '如果 只用 一种 方式 了解 某样 事物 , 你 就 不会 真正 了解 它 。 了解 事物 真正 含义 的 秘密 取决于 如何 将 其 与 我们 所 了解 的 事物 相 联系 。']
Prefix dict has been built succesfully.
文本特征抽取的结果:[[2 0 1 0 0 0 2 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 2 0 1 0 2 1 0 0 0 1 1 0 0 1 0][0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 1 3 0 0 0 0 1 0 0 0 0 2 0 0 0 0 0 1 0 1][1 1 0 0 4 3 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 2 1 0 0 1 0 0 0]]
返回特征名字:['一种', '不会', '不要', '之前', '了解', '事物', '今天', '光是在', '几百万年', '发出', '取决于', '只用', '后天', '含义', '大部分', '如何', '如果', '宇宙', '我们', '所以', '放弃', '方式', '明天', '星系', '晚上', '某样', '残酷', '每个', '看到', '真正', '秘密', '绝对', '美好', '联系', '过去', '还是', '这样']

在这里插入图片描述

Tf-idf文本特征提取

  • TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
  • TF-IDF作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。

公式

  • 词频(term frequency,tf)指的是某一个给定的词语在该文件中出现的频率
  • 逆向文档频率(inverse document frequency,idf)是一个词语普遍重要性的度量。某一特定词语的idf,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取以10为底的对数得到
    在这里插入图片描述
举例:
假如一篇文章的总词语数是100个,而词语"非常"出现了5次,那么"非常"一词在该文件中的词频就是5/100=0.05。
而计算文件频率(IDF)的方法是以文件集的文件总数,除以出现"非常"一词的文件数。
所以,如果"非常"一词在1,0000份文件出现过,而文件总数是10,000,000份的话,
其逆向文件频率就是lg(10,000,000 / 1,0000)=3。
最后"非常"对于这篇文档的tf-idf的分数为0.05 * 3=0.15
from sklearn.feature_extraction.text import TfidfVectorizer
data = ['人生苦短,我用python','人生太长,不用python']def cut_words(s):return ' '.join(list(jieba.cut(s)))temp = list()
for i in data:temp.append(cut_words(i))# 实例化转换器
transform = TfidfVectorizer()
# 特征提取
res = transform.fit_transform(temp)# 稀疏矩阵转为ndarry
res.toarray() # TF*IDF

在这里插入图片描述

# 获取字段信息
transform.get_feature_names()

在这里插入图片描述

from sklearn.feature_extraction.text import TfidfVectorizer
import jiebadef cut_word(text):"""对中文进行分词"我爱北京天安门"————>"我 爱 北京 天安门":param text::return: text"""# 用结巴对中文字符串进行分词text = " ".join(list(jieba.cut(text)))return textdef text_chinese_tfidf_demo():"""对中文进行特征抽取:return: None"""data = ["一种还是一种今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。","我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。","如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。"]# 将原始数据转换成分好词的形式text_list = []for sent in data:text_list.append(cut_word(sent))print(text_list)# 1、实例化一个转换器类# transfer = CountVectorizer(sparse=False)transfer = TfidfVectorizer(stop_words=['一种', '不会', '不要'])# 2、调用fit_transformdata = transfer.fit_transform(text_list)print("文本特征抽取的结果:\n", data.toarray())print("返回特征名字:\n", transfer.get_feature_names())return None
Building prefix dict from the default dictionary ...
Loading model from cache /var/folders/mz/tzf2l3sx4rgg6qpglfb035_r0000gn/T/jieba.cache
Loading model cost 0.856 seconds.
Prefix dict has been built succesfully.
['一种 还是 一种 今天 很 残酷 , 明天 更 残酷 , 后天 很 美好 , 但 绝对 大部分 是 死 在 明天 晚上 , 所以 每个 人 不要 放弃 今天 。', '我们 看到 的 从 很 远 星系 来 的 光是在 几百万年 之前 发出 的 , 这样 当 我们 看到 宇宙 时 , 我们 是 在 看 它 的 过去 。', '如果 只用 一种 方式 了解 某样 事物 , 你 就 不会 真正 了解 它 。 了解 事物 真正 含义 的 秘密 取决于 如何 将 其 与 我们 所 了解 的 事物 相 联系 。']
文本特征抽取的结果:[[ 0.          0.          0.          0.43643578  0.          0.          0.0.          0.          0.21821789  0.          0.21821789  0.          0.0.          0.          0.21821789  0.21821789  0.          0.436435780.          0.21821789  0.          0.43643578  0.21821789  0.          0.0.          0.21821789  0.21821789  0.          0.          0.218217890.        ][ 0.2410822   0.          0.          0.          0.2410822   0.24108220.2410822   0.          0.          0.          0.          0.          0.0.          0.2410822   0.55004769  0.          0.          0.          0.0.2410822   0.          0.          0.          0.          0.482164410.          0.          0.          0.          0.          0.24108220.          0.2410822 ][ 0.          0.644003    0.48300225  0.          0.          0.          0.0.16100075  0.16100075  0.          0.16100075  0.          0.161000750.16100075  0.          0.12244522  0.          0.          0.161000750.          0.          0.          0.16100075  0.          0.          0.0.3220015   0.16100075  0.          0.          0.16100075  0.          0.0.        ]]
返回特征名字:['之前', '了解', '事物', '今天', '光是在', '几百万年', '发出', '取决于', '只用', '后天', '含义', '大部分', '如何', '如果', '宇宙', '我们', '所以', '放弃', '方式', '明天', '星系', '晚上', '某样', '残酷', '每个', '看到', '真正', '秘密', '绝对', '美好', '联系', '过去', '还是', '这样']

在这里插入图片描述

决策树算法api

class sklearn.tree.DecisionTreeClassifier(criterion=’gini’, max_depth=None,random_state=None)

  • criterion
    • 特征选择标准
    • “gini"或者"entropy”,前者代表基尼系数,后者代表信息增益。一默认"gini",即CART算法。
  • min_samples_split
    • 内部节点再划分所需最小样本数
    • 这个值限制了子树继续划分的条件,如果某节点的样本数少于min_samples_split,则不会继续再尝试选择最优特征来进行划分。 默认是2.如果样本量不大,不需要管这个值。如果样本量数量级非常大,则推荐增大这个值。例如,10万样本,建立决策树时,选择 min_samples_split=10,可以作为参考。
  • min_samples_leaf
    • 叶子节点最少样本数
    • 这个值限制了叶子节点最少的样本数,如果某叶子节点数目小于样本数,则会和兄弟节点一起被剪枝。 默认是1,可以输入最少的样本数的整数,或者最少样本数占样本总数的百分比。如果样本量不大,不需要管这个值。如果样本量数量级非常大,则推荐增大这个值。10万样本使用min_samples_leaf的值为5,供参考。
  • max_depth
    • 决策树最大深度
    • 决策树的最大深度,默认可以不输入,如果不输入的话,决策树在建立子树的时候不会限制子树的深度。一般来说,数据少或者特征少的时候可以不管这个值。如果模型样本量多,特征也多的情况下,推荐限制这个最大深度,具体的取值取决于数据的分布。常用的可以取值10-100之间
  • random_state
    • 随机数种子

案例:泰坦尼克号乘客生存预测

  • 数据集
    在泰坦尼克号和titanic2数据帧描述泰坦尼克号上的个别乘客的生存状态。这里使用的数据集是由各种研究人员开始的。其中包括许多研究人员创建的旅客名单,由Michael A. Findlay编辑。我们提取的数据集中的特征是票的类别,存活,乘坐班,年龄,登陆,home.dest,房间,票,船和性别。
    数据集
    • 乘坐班是指乘客班(1,2,3),是社会经济阶层的代表。
    • 其中age数据存在缺失。
import pandas as pd 
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction import DictVectorizer
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report,roc_auc_scoredata = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt')
data.head()

在这里插入图片描述

# 2.数据基本处理-异常,缺失,数据集划分
# 获取特征和目标值
x = data[['pclass','age','sex']] # 取该3列作为特征值
y = data['survived'] # 目标值
# 处理缺失值 -age列,用平均值代替 inplace=是否生成新列替换原来列,True即原地修改
x['age'].fillna(x['age'].mean(),inplace = True)
# 划分数据集
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=10)
# 3.特征工程
# one-hot编码,采用字典特征提取
# 实例化转换器
trans_dict = DictVectorizer(sparse=False)# DictVectorizer 转换的变量类型为dict,x_train类型为ndarry,orient指定字典的类型,records为{'列':'值'}
x_train = trans_dict.fit_transform(x_train.to_dict(orient='records')) 
x_test = trans_dict.transform(x_test.to_dict(orient='records'))
# 4.决策树
# 构建模型
# 实例化估计器
estimator = DecisionTreeClassifier(criterion='gini',max_depth=5)
# 训练模型
estimator.fit(x_train,y_train)

在这里插入图片描述

# 5.模型评估
print('准确率为:\n',estimator.score(x_test,y_test))
# 5.模型评估
print('准确率为:\n',estimator.score(x_test,y_test))
# 准确率为:
# 0.8288973384030418

决策树可视化

保存树的结构到dot文件

  • sklearn.tree.export_graphviz() 该函数能够导出DOT格式
    • tree.export_graphviz(estimator,out_file='tree.dot’,feature_names=[‘’,’’])
from sklearn.tree import export_graphviz
# 获取特征值名字
trans_dict.get_feature_names()

在这里插入图片描述

export_graphviz(estimator,out_file='./tree.dot',feature_names=trans_dict.get_feature_names())

dot文件当中的内容如下

digraph Tree {
node [shape=box] ;
0 [label="petal length (cm) <= 2.45\nentropy = 1.584\nsamples = 112\nvalue = [39, 37, 36]"] ;
1 [label="entropy = 0.0\nsamples = 39\nvalue = [39, 0, 0]"] ;
0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;
2 [label="petal width (cm) <= 1.75\nentropy = 1.0\nsamples = 73\nvalue = [0, 37, 36]"] ;
0 -> 2 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;
3 [label="petal length (cm) <= 5.05\nentropy = 0.391\nsamples = 39\nvalue = [0, 36, 3]"] ;
2 -> 3 ;
4 [label="sepal length (cm) <= 4.95\nentropy = 0.183\nsamples = 36\nvalue = [0, 35, 1]"] ;
3 -> 4 ;
5 [label="petal length (cm) <= 3.9\nentropy = 1.0\nsamples = 2\nvalue = [0, 1, 1]"] ;
4 -> 5 ;
6 [label="entropy = 0.0\nsamples = 1\nvalue = [0, 1, 0]"] ;
5 -> 6 ;
7 [label="entropy = 0.0\nsamples = 1\nvalue = [0, 0, 1]"] ;
5 -> 7 ;
8 [label="entropy = 0.0\nsamples = 34\nvalue = [0, 34, 0]"] ;
4 -> 8 ;
9 [label="petal width (cm) <= 1.55\nentropy = 0.918\nsamples = 3\nvalue = [0, 1, 2]"] ;
3 -> 9 ;
10 [label="entropy = 0.0\nsamples = 2\nvalue = [0, 0, 2]"] ;
9 -> 10 ;
11 [label="entropy = 0.0\nsamples = 1\nvalue = [0, 1, 0]"] ;
9 -> 11 ;
12 [label="petal length (cm) <= 4.85\nentropy = 0.191\nsamples = 34\nvalue = [0, 1, 33]"] ;
2 -> 12 ;
13 [label="entropy = 0.0\nsamples = 1\nvalue = [0, 1, 0]"] ;
12 -> 13 ;
14 [label="entropy = 0.0\nsamples = 33\nvalue = [0, 0, 33]"] ;
12 -> 14 ;
}

决策树.dot在线显示
决策树优点:
* 简单的理解和解释,树木可视化。

决策树缺点:
* 决策树学习者可以创建不能很好地推广数据的过于复杂的树,容易发生过拟合。

改进:

  • 减枝cart算法
  • 随机森林(集成学习的一种)

集成学习

在这里插入图片描述
集成学习通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测。
在这里插入图片描述

集成学习中boosting和Bagging

在这里插入图片描述
只要单分类器的表现不太差,集成学习的结果总是要好于单分类器的

Bagging集成原理

目标:把下面的圈和方块进行分类
在这里插入图片描述
实现过程:
采样不同数据集
在这里插入图片描述
训练分类器
在这里插入图片描述
平权投票,获取最终结果
在这里插入图片描述
主要实现过程
在这里插入图片描述
在这里插入图片描述

随机森林构造过程

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。
随机森林 = Bagging + 决策树
在这里插入图片描述
随机森林够造过程中的关键步骤(用N来表示训练用例(样本)的个数,M表示特征数目):

  • 一次随机选出一个样本,有放回的抽样,重复N次(有可能出现重复的样本)
  • ​随机去选出m个特征, m <<M,建立决策树

随机森林api介绍

  • sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’, max_depth=None, bootstrap=True, random_state=None, min_samples_split=2)
    • n_estimators:integer,optional(default = 10)森林里的树木数量120,200,300,500,800,1200
    • Criterion:string,可选(default =“gini”)分割特征的测量方法
    • max_depth:integer或None,可选(默认=无)树的最大深度 5,8,15,25,30
    • max_features="auto”,每个决策树的最大特征数量
      • If “auto”, then max_features=sqrt(n_features).
      • If “sqrt”, then max_features=sqrt(n_features)(same as “auto”).
      • If “log2”, then max_features=log2(n_features).
      • If None, then max_features=n_features.
    • bootstrap:boolean,optional(default = True)是否在构建树时使用放回抽样
    • min_samples_split:节点划分最少样本数
    • min_samples_leaf:叶子节点的最小样本数
  • 超参数:n_estimator, max_depth, min_samples_split,min_samples_leaf

案例:随机森林实现泰坦尼克号生存预测

import pandas as pd 
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction import DictVectorizer
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score
from sklearn.metrics import classification_report
from sklearn.model_selection import GridSearchCV# 1.获取数据
data = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt')
data.head()

在这里插入图片描述

# 2.数据处理-缺失值,数据集划分
# 获取特征值 
x = data[['pclass','age','sex']]
# 获取目标值
y = data['survived']
# 缺失值处理
x['age'].fillna(x['age'].mean(),inplace = True)
# 数据集划分
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=10)# 3.特征工程-特征字典
trans_dict = DictVectorizer(sparse=False)
x_train = trans_dict.fit_transform(x_train.to_dict(orient = 'records'))
x_test = trans_dict.fit_transform(x_test.to_dict(orient = 'records'))# 4.机器学习-随机森林
# 建立模型
estimator = RandomForestClassifier(n_estimators=100,criterion='gini',max_depth=5)
# 训练模型
estimator.fit(x_train,y_train)# 5.评估模型 - 准确率率
score = estimator.score(x_test,y_test)
print('准确率为',score)
# 精确率,召回率,f1-score
y_predict = estimator.predict(x_test)
res = classification_report(y_pred=y_predict,y_true=y_test)
print(res)
# AUC
roc_auc_score(y_true=y_test,y_score=y_predict)

网格搜索确定最优超参数

# 构建参数字典
params = {'n_estimators':[100,200,300],'max_depth':[5,8,10,15]
}
# 实例化随机森林估计器
estimator = RandomForestClassifier()
# 网格搜索
gc = GridSearchCV(estimator,param_grid=params,cv=2)
# 训练模型
gc.fit(x_train,y_train)
# 获得最优超参数
gc.best_params_

在这里插入图片描述

# 获得最优模型
gc.best_estimator_

在这里插入图片描述
bagging集成优点
​Bagging + 决策树/线性回归/逻辑回归/深度学习… = bagging集成学习方法
经过上面方式组成的集成学习方法:

  • 均可在原有算法上提高约2%左右的泛化正确率
  • 简单, 方便, 通用

Boosting集成原理

随着学习的积累从弱到强
简而言之:每新加入一个弱学习器,整体能力就会得到提升
代表算法:Adaboost,GBDT,XGBoost
串行建立N个模型,后建立的模型受之前建立模型的影响
实现过程:
训练第一个学习器
在这里插入图片描述
调整数据分布
在这里插入图片描述
训练第二个学习器
在这里插入图片描述
再次调整数据分布
在这里插入图片描述
依次训练学习器,调整数据分布
在这里插入图片描述
整体过程实现
在这里插入图片描述
关键点:
如何确认投票权重?
如何调整数据分布?

在这里插入图片描述
在这里插入图片描述

AdaBoost的构造过程小结

在这里插入图片描述
bagging集成与boosting集成的区别:

  • 区别一:数据方面
    Bagging:对数据进行采样训练;
    Boosting:根据前一轮学习结果调整数据的重要性。
  • 区别二:投票方面
    Bagging:所有学习器平权投票;
    Boosting:对学习器进行加权投票。
  • 区别三:学习顺序
    Bagging的学习是并行的,每个学习器没有依赖关系;
    Boosting学习是串行,学习有先后顺序。
  • 区别四:主要作用
    Bagging主要用于提高泛化性能(解决过拟合,也可以说降低方差)
    Boosting主要用于提高训练精度 (解决欠拟合,也可以说降低偏差)

API

from sklearn.ensemble import AdaBoostClassifier

GBDT

梯度提升决策树(GBDT Gradient Boosting Decision Tree) 是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就被认为是泛化能力(generalization)较强的算法。
GBDT = 梯度下降 + Boosting + 决策树
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
GBDT执行流程
在这里插入图片描述
如果上式中的hi(x)=决策树模型,则上式就变为:
GBDT = 梯度下降 + Boosting + 决策树

案例
预测编号5的身高:
在这里插入图片描述
第一步:计算损失函数,并求出第一个预测值:
在这里插入图片描述
第二步:求解划分点
在这里插入图片描述
得出:年龄21为划分点的方差=0.01+0.0025=0.0125
第三步:通过调整后目标值,求解得出h1(x)
在这里插入图片描述
第四步:求解h2(x)
在这里插入图片描述
得出结果:
在这里插入图片描述
编号5身高 = 1.475 + 0.03 + 0.275 = 1.78
GBDT主要执行思想

  • 使用梯度下降法优化代价函数;
  • 使用一层决策树作为弱学习器,负梯度作为目标值;
  • 利用boosting思想进行集成。
XGBoost

XGBoost= 二阶泰勒展开+boosting+决策树+正则化

  • Boosting:XGBoost使用Boosting提升思想对多个弱学习器进行迭代式学习
  • 二阶泰勒展开:每一轮学习中,XGBoost对损失函数进行二阶泰勒展开,使用一阶和二阶梯度进行优化。
  • 决策树:在每一轮学习中,XGBoost使用决策树算法作为弱学习进行优化。
  • 正则化:在优化过程中XGBoost为防止过拟合,在损失函数中加入惩罚项,限制决策树的叶子节点个数以及决策树叶子节点的值。

在这里插入图片描述
泰勒展开越多,计算结果越精确

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Video banking 帮助银行扩展服务范围,国内市场和海外市场冰火两重天

    在中国市场,视频银行服务已经过了被热捧、吸人眼球的营销噱头。随着中国人民银行《关于落实个人银行账户分类管理制度的通知》新规于2016年12月1日开始实施,视频银行业务快速下滑。大部分银行的VTM(Video Teller Machine)上取消了开户/发卡等业务,仅保留一些签约、转账等业…...

    2024/4/24 9:55:47
  2. Kali Linux渗透测试——免杀基础

    笔记内容参考安全牛课堂苑房弘老师的Kali Linux渗透测试教程文章目录一、基础概念(一)恶意软件(二)防护手段(三)免杀技术二、工具介绍(一)Msfvenom(二)Veil-evasion(三)Backdoor-factory 一、基础概念 (一)恶意软件 在用户非自愿情况下执行安装,具有控制、窃取、…...

    2024/4/24 9:55:46
  3. 对不起navicat我投入了DataGrid的怀抱

    一 前言 今天的内容是知识追寻者想给大家安利一个软件为DataGrid, 没错,他就是idea,pycharm们的兄弟,都是属于jetbrains家族,知识追寻者放弃navicat的使用了,对不起navicat , 因为 datagrid 华丽的黑色背景我放弃了你,因为datagrid的高效的查询性能和自动化的功能键,放弃…...

    2024/4/24 9:55:45
  4. 北邮学渣大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

    点赞再看,养成习惯,微信搜索【敖丙】关注这个互联网苟且偷生的工具人。 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点、资料以及我的系列文章。##前言 在大学的时候我们有大量的业余时间,我们可以拿出一部分时间去自学,也可以自学你感兴趣的…...

    2024/5/6 18:53:07
  5. WebSocket的故事(五)—— Springboot中,实现网页聊天室之自定义消息代理

    前言最近,偶然在掘金上发现了一个大牛写的这篇文章,感觉作者写的非常好,防止以后找不到了,这里转载记录一下,方便以后使用。概述WebSocket的故事系列计划分五大篇六章,旨在由浅入深的介绍WebSocket以及在Springboot中如何快速构建和使用WebSocket提供的能力。本系列计划包…...

    2024/4/28 23:07:12
  6. WebSocket的故事(六)—— Springboot中,实现更灵活的WebSocket

    前言最近,偶然在掘金上发现了一个大牛写的这篇文章,感觉作者写的非常好,防止以后找不到了,这里转载记录一下,方便以后使用。概述WebSocket的故事系列计划分五大篇六章,旨在由浅入深的介绍WebSocket以及在Springboot中如何快速构建和使用WebSocket提供的能力。本系列计划包…...

    2024/4/28 10:37:34
  7. Redis要点总结

    文章目录1. 缓存穿透1.1 带来的问题1.2 解决办法1.2.1 缓存空值1.2.2 BloomFilter1.2.3 如何选择2. 缓存击穿2.1 带来的问题2.2 解决办法3. 缓存雪崩3.1 解决办法3.1.1 事前:使用集群缓存,保证缓存服务的高可用3.1.2 事中:使用 ehcache 本地缓存 + Hystrix 限流&降级 ,避…...

    2024/4/24 9:55:41
  8. 混沌变换及Logistic映射

    引言 : 混沌算法? 如果一个系统的演变过程对初始的状态十分敏感,就把这个系统称为是混沌系统。 在1972年12月29日,美国麻省理工教授、混沌学开创人之一E.N.洛仑兹在美国科学发展学会第139次会议上发表了题为《蝴蝶效应》的论文,提出一个貌似荒谬的论 断:在巴西一只蝴蝶翅…...

    2024/4/24 9:55:40
  9. 2020年疫情过后 上班问题积累

    🐴🐴🐴Spring Boot 数据库连接池 HikariCP https://www.cnblogs.com/michael-xiang/p/10747934.html 🐴🐴🐴和druid的区别 https://tech.souyunku.com/?p=10931 🐴🐴🐴java的基本数据类型占据的内存大小 https://www.cnblogs.com/frankielf0921/p/9305335.h…...

    2024/4/24 9:55:40
  10. Hive知识点(三)--基本命令

    Hive常用命令1.基本命令2.Hive中数据库存放在HDFS的位置3.Hive中数据库切换4.Hive中数据库控制台显示设置4.1全局的修改4.2局部的修改5.Hive中指定数据库建表6.Linux界面执行Hive语句7.Hive的日志存放8.问题点 1.基本命令 #首先启动Hadoop su - hadoop app/hadoop/sbin/start-a…...

    2024/4/24 9:55:38
  11. 听说你的大疆Snail不能运动起来???

    在准备RoboMaster对抗赛的过程中,遇到了一些奇奇怪怪的问题,所以将其总结并记录下来,用来警戒后学者重蹈覆辙。 最近在倒腾大疆的电机6020、6623、3508、Snail等,发现最难并且遇到最多的问题的是大疆Snail这款电机,所以将一些心得记录下来。 大疆的这款Snail的电机,开初设…...

    2024/4/24 9:55:37
  12. STACKOVERFLOW 创始人关于如何高效编程的清单

    前言“无我编程”发生在开发阶段,表现为技术团队经常通过同级评审的方式来发现软件中的缺陷。目的是让所有人(包括作者)都参与寻找缺陷,而不是证明软件产品里没有缺陷。人们会交换各自手上的代码,相互进行评审,并且大家都有这样的共识:代码的原始作者会犯错误,而作为评…...

    2024/4/24 9:55:36
  13. @Before和@After的使用

    @before的作用就是在一个类中最先执行的方法 @after的作用就是在一个类中最后执行的方法 这样就可以把一些重复执行的代码抽取出来 , 这样我们就不用书写这些的重复的部分了 例如下面的这段代码 , 这是进行查询 ,当我们书写增删改时候还得全部写很麻烦@Testpublic void testFin…...

    2024/4/16 9:11:13
  14. 类的加载过程

    类的加载阶段 此时jvm会选用不用的类加载器(ClassLoader)进行加载我们的类,通常将class文件以二进制流的方式读入到内存当中,生成Class对象 类的连接阶段 此阶段又分为3个小阶段 1)验证:启动项目时,遇到的java版本不匹配的的问题都是在此过程出现的;还会检验二进制流是…...

    2024/4/16 9:11:13
  15. Eclipse将整个项目的HTML文件编码改为UTF-8

    Eclipse的Window -->preference-->General-->ContentTypes 选择Text下的HTML项,在Default encoding栏位输入 UTF-8并且update下,一定要记得update!!!!...

    2024/4/16 9:10:48
  16. 链栈练习题——括号合法性

    括号合法性题目: 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: (1)左括号必须用相同类型的右括号闭合。 (2)左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 代码如下: #define _CRT_…...

    2024/4/15 5:57:50
  17. IOC的底层原理

    控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理 使用 IOC 目的:为了耦合度降低 IOC的底层原理:xml解析,工厂模式,反射 IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂 Spring提供IOC容器实现两种方式:(两个接口)BeanFactory:IOC容器基本实现,…...

    2024/4/24 9:55:35
  18. Android 10 获取相册图片遇到 open failed: EACCES (Permission denied)解决办法

    本文转载自:Android 10 open failed: EACCES (Permission denied) 概述 简而言之就是Android 10及以后对权限管理更严苛了,访问别的应用的数据的限制更多。我直接用了第一个方法暂时解决问题了,第二个后面要用再看吧。 Recently for one of the apps that I was working on,…...

    2024/4/24 9:55:35
  19. JavaEE企业级分布式高级架构师(完整视频教程)

    下载地址:百度网盘 提取码:u3yd...

    2024/4/24 9:55:33
  20. mini2440裸板程序-c语言点亮led

    1、开发C语言程序的时候,一般都是使用main函数作为入口,而main函数仅仅只是一个函数而已,那么他一定需要被别人来调用,同时将返回值返回给调用者。那么在我们在开发的时候LED点亮的时候,没有人来调用我们的函数,所以我么需要自己来做这些工作。2、硬件方面的初始化:关闭…...

    2024/4/24 9:55:32

最新文章

  1. 抖音开通蓝V前还有几百播放,开通后就没有流量了,原因在哪里?

    作为抖音用户&#xff0c;你是否曾经认证过蓝V&#xff1f;你是否发现认证蓝V后&#xff0c;并没有增加更多的流量&#xff1f; 抖音认证蓝V是一种身份认证&#xff0c;是对内容创作者的一种肯定和认可。它代表了你的账号具备了一定的影响力和专业性&#xff0c;也能够给你带来…...

    2024/5/7 3:18:02
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/6 9:38:23
  3. 前端 js 经典:字符编码详解

    前言&#xff1a;计算机只能识别二进制&#xff0c;开发语言中数据类型还有数字&#xff0c;字母&#xff0c;中文&#xff0c;特殊符号等&#xff0c;都需要转化成二进制编码才能让技术机识别。 一. 编码方式 ACSLL、Unicode、utf-8、URL 编码、base64 等。 1. ACSLL 对英语…...

    2024/5/4 10:30:35
  4. 蓝桥杯第十五届抱佛脚(十)贪心算法

    蓝桥杯第十五届抱佛脚&#xff08;十&#xff09;贪心算法 贪心算法基本概念 贪心算法是一种在算法设计中常用的方法&#xff0c;它在每一步选择中都采取在当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是最好或最优的算法。 贪…...

    2024/5/5 8:38:28
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/4 23:54:56
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/6 9:21:00
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/4 23:55:06
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57