决策树之用信息增益选择最优特征

2023-11-19

决策树之用信息增益选择最优特征


熵的定义: 熵(shāng),热力学中表征物质状态的参量之一,用符号S表示,其物理意义是体系混乱程度的度量。

在决策树中,信息增益是由熵构建而成,表示的是[随机变量的不确定性],不确定性越大,代表着熵越大。随机变量的取值等概率分布时,相应的熵最大,换句话说,特征的所有取值概率相同时,包含的信息是最多的,就是不确定性最大的情况。

熵和随机变量的分布相关,所以写成:
H ( p ) = − ∑ i = 1 n p i log ⁡ p i H(p)=-\sum_{i=1}^{n} p_{i} \log p_{i}\\ H(p)=i=1npilogpi
随机变量取值等概率分布时,相应的熵最大,熵的取值范围为:
0 ≤ H ( p ) ≤ log ⁡ n 0 \leq H(p) \leq \log n 0H(p)logn
例如:
X = { 0 , 概率 = p 1 ,  概率=  1 − p X= \begin{cases}0, & \text {概率}=p \\ 1, & \text { 概率= }1-p\end{cases} X={0,1,概率=p 概率1p
熵就是:
H ( p ) = − ∑ i = 1 n p i log ⁡ p i = − p log ⁡ 2 p − ( 1 − p ) log ⁡ 2 ( 1 − p ) H(p)=-\sum_{i=1}^{n} p_{i} \log p_{i}\\=-p \log _{2} p-(1-p) \log _{2}(1-p) H(p)=i=1npilogpi=plog2p(1p)log2(1p)
对p求导:
∂ H ( p ) ∂ p = − log ⁡ 2 p − 1 ln ⁡ 2 + log ⁡ 2 ( 1 − p ) + 1 ln ⁡ 2 = log ⁡ 2 1 − p p \begin{aligned} \frac{\partial H(p)}{\partial p} &=-\log _{2} p-\frac{1}{\ln 2}+\log _{2}(1-p)+\frac{1}{\ln 2} \\ &=\log _{2} \frac{1-p}{p} \end{aligned} pH(p)=log2pln21+log2(1p)+ln21=log2p1p
找到熵的极值点:
log ⁡ 2 1 − p p = 0 1 − p p = 1 p = 1 2 \log _{2} \frac{1-p}{p}=0\\ \frac{1-p}{p}=1\\ p=\frac{1}{2} log2p1p=0p1p=1p=21
即当 p = 1 2 p=\frac{1}{2} p=21时,熵取最大值

信息增益

信息增益:得知特征X而使类Y的信息的不确定性减少的程度。
​ 公式为: g(D,A)=H(D)-H(D A)

当熵和条件熵中的概率有数据估计得到时,则为经验熵和经验条件嫡。

计算信息增益步骤:

输入:训练数据集D和特征A
​ 输出:特征A对D的信息增益g(D,A)

  1. 计算经验熵公式:
    H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ log ⁡ 2 ∣ C k ∣ ∣ D ∣ H(D)=-\sum_{k=1}^{K} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|} H(D)=k=1KDCklog2DCk

  2. 计算经验条件熵公式
    H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ∑ k = 1 K ∣ D i k ∣ ∣ D i ∣ log ⁡ 2 ∣ D i k ∣ ∣ D i ∣ H(D \mid A)=\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} H\left(D_{i}\right)=-\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} \sum_{k=1}^{K} \frac{\left|D_{i k}\right|}{\left|D_{i}\right|} \log _{2} \frac{\left|D_{i k}\right|}{\left|D_{i}\right|} H(DA)=i=1nDDiH(Di)=i=1nDDik=1KDiDiklog2DiDik

    H ( D ∣ A 1 ) = w 1 H ( D 1 ) + w 2 H ( D 2 ) + w 3 H ( D 3 ) H\left(D \mid A_{1}\right)=w_{1} H\left(D_{1}\right)+w_{2} H\left(D_{2}\right)+w_{3} H\left(D_{3}\right) H(DA1)=w1H(D1)+w2H(D2)+w3H(D3)

    这里的嫡和条件熵中的概率由数据估计得到的,为经验熵和经验条件熵。在特征A 下每个子集所占的权重为 w i = ∣ D i ∣ ∣ D ∣ w_{i}=\frac{\left|D_{i}\right|}{|D|} wi=DDi

  3. 计算信息增益公式:
    g ( D , A ) = H ( D ) − H ( D A ) g(D,A)=H(D)-H(D A) g(D,A)=H(D)H(DA)

    信息增益例题:

在这里插入图片描述

  1. 计算经验熵公式

    1. 样本15个,按是否贷款分为两类,同意贷款个数=9,不同意贷款个数=6

      代入计算:
      H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ log ⁡ 2 ∣ C k ∣ ∣ D ∣ = − 6 15 log ⁡ 2 6 15 − 9 15 log ⁡ 2 9 15 = 0.971 \begin{aligned} H(D) &=-\sum_{k=1}^{K} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|} \\ &=-\frac{6}{15} \log _{2} \frac{6}{15}-\frac{9}{15} \log _{2} \frac{9}{15} \\ &=0.971 \end{aligned} H(D)=k=1KDCklog2DCk=156log2156159log2159=0.971

  2. 计算经验条件熵公式

    1. A 1 、 A 2 、 A 3 、 A 4 A_1、A_2、A_3、A_4 A1A2A3A4表示年龄、工作、房子、信贷情况4个特征

    在这里插入图片描述
    特征:年龄 A 1 A_1 A1:取 i i i=1青年、 i i i=2中年、 i i i=3老年

    青年:
    w 1 = ∣ D 1 ∣ ∣ D ∣ = 5 15 H ( D 1 ) = − ∑ k = 1 2 ∣ D 1 k ∣ ∣ D 1 ∣ log ⁡ 2 ∣ D 1 k ∣ ∣ D 1 ∣ = − 3 5 log ⁡ 2 3 5 − 2 5 log ⁡ 2 2 5 = 0.972 \begin{aligned} &w_{1}=\frac{\left|D_{1}\right|}{|D|}=\frac{5}{15} \\ &H\left(D_{1}\right)=-\sum_{k=1}^{2} \frac{\left|D_{1 k}\right|}{\left|D_{1}\right|} \log _{2} \frac{\left|D_{1 k}\right|}{\left|D_{1}\right|}=-\frac{3}{5} \log _{2} \frac{3}{5}-\frac{2}{5} \log _{2} \frac{2}{5}=0.972 \end{aligned} w1=DD1=155H(D1)=k=12D1D1klog2D1D1k=53log25352log252=0.972
    中年:
    w 2 = ∣ D 2 ∣ ∣ D ∣ = 5 15 H ( D 2 ) = − ∑ k = 1 2 ∣ D 2 k ∣ ∣ D 2 ∣ log ⁡ 2 ∣ D 2 k ∣ ∣ D 2 ∣ = − 2 5 log ⁡ 2 2 5 − 3 5 log ⁡ 2 3 5 = 0.972 \begin{aligned} &w_{2}=\frac{\left|D_{2}\right|}{|D|}=\frac{5}{15} \\ &H\left(D_{2}\right)=-\sum_{k=1}^{2} \frac{\left|D_{2 k}\right|}{\left|D_{2}\right|} \log _{2} \frac{\left|D_{2 k}\right|}{\left|D_{2}\right|}=-\frac{2}{5} \log _{2} \frac{2}{5}-\frac{3}{5} \log _{2} \frac{3}{5}=0.972 \end{aligned} w2=DD2=155H(D2)=k=12D2D2klog2D2D2k=52log25253log253=0.972
    老年:
    w 3 = ∣ D 3 ∣ ∣ D ∣ = 5 15 H ( D 3 ) = − ∑ k = 1 2 ∣ D 3 k ∣ ∣ D 3 ∣ log ⁡ 2 ∣ D 3 k ∣ ∣ D 3 ∣ = − 1 5 log ⁡ 2 1 5 − 4 5 log ⁡ 2 4 5 = 0.720 \begin{aligned} &w_{3}=\frac{\left|D_{3}\right|}{|D|}=\frac{5}{15} \\ &H\left(D_{3}\right)=-\sum_{k=1}^{2} \frac{\left|D_{3 k}\right|}{\left|D_{3}\right|} \log _{2} \frac{\left|D_{3 k}\right|}{\left|D_{3}\right|}=-\frac{1}{5} \log _{2} \frac{1}{5}-\frac{4}{5} \log _{2} \frac{4}{5}=0.720 \end{aligned} w3=DD3=155H(D3)=k=12D3D3klog2D3D3k=51log25154log254=0.720
    综合计算经验条件熵 H ( D ∣ A 1 ) H\left(D \mid A_{1}\right) H(DA1):
    H ( D ∣ A 1 ) = w 1 H ( D 1 ) + w 2 H ( D 2 ) + w 3 H ( D 3 ) = 0.324 + 0.324 + 0.24 = 0.888 \begin{aligned} H\left(D \mid A_{1}\right) &=w_{1} H\left(D_{1}\right)+w_{2} H\left(D_{2}\right)+w_{3} H\left(D_{3}\right) \\ &=0.324+0.324+0.24 \\ &=0.888 \end{aligned} H(DA1)=w1H(D1)+w2H(D2)+w3H(D3)=0.324+0.324+0.24=0.888

  3. 计算信息增益公式
    g ( D , A 1 ) = H ( D ) − H ( D ∣ A 1 ) = 0.971 − 0.888 = 0.083 \begin{aligned} g\left(D, A_{1}\right) &=H(D)-H\left(D \mid A_{1}\right) \\ &=0.971-0.888=0.083 \end{aligned} g(D,A1)=H(D)H(DA1)=0.9710.888=0.083
    同理

特征:房子


有工作:
w 1 = ∣ D 1 ∣ ∣ D ∣ = 5 15 H ( D 1 ) = − ∑ k = 1 2 ∣ D 1 k ∣ ∣ D 1 ∣ log ⁡ 2 ∣ D 1 k ∣ ∣ D 1 ∣ = − 0 5 log ⁡ 2 0 5 − 5 5 log ⁡ 2 5 5 = 0 \begin{aligned} &w_{1}=\frac{\left|D_{1}\right|}{|D|}=\frac{5}{15} \\ &H\left(D_{1}\right)=-\sum_{k=1}^{2} \frac{\left|D_{1 k}\right|}{\left|D_{1}\right|} \log _{2} \frac{\left|D_{1 k}\right|}{\left|D_{1}\right|}=-\frac{0}{5} \log _{2} \frac{0}{5}-\frac{5}{5} \log _{2} \frac{5}{5}=0 \end{aligned} w1=DD1=155H(D1)=k=12D1D1klog2D1D1k=50log25055log255=0
没有工作:
w 2 = ∣ D 2 ∣ ∣ D ∣ = 10 15 H ( D 2 ) = − ∑ k = 1 2 ∣ D 2 k ∣ ∣ D 2 ∣ log ⁡ 2 ∣ D 2 k ∣ ∣ D 2 ∣ = − 6 10 log ⁡ 2 6 10 − 4 10 log ⁡ 2 4 10 \begin{aligned} &w_{2}=\frac{\left|D_{2}\right|}{|D|}=\frac{10}{15} \\ &H\left(D_{2}\right)=-\sum_{k=1}^{2} \frac{\left|D_{2 k}\right|}{\left|D_{2}\right|} \log _{2} \frac{\left|D_{2 k}\right|}{\left|D_{2}\right|}=-\frac{6}{10} \log _{2} \frac{6}{10}-\frac{4}{10} \log _{2} \frac{4}{10} \end{aligned} w2=DD2=1510H(D2)=k=12D2D2klog2D2D2k=106log2106104log2104
综合计算经验条件熵 H ( D ∣ A 2 ) H\left(D \mid A_{2}\right) H(DA2):
H ( D ∣ A 2 ) = w 1 H ( D 1 ) + w 2 H ( D 2 ) ) = 0.647 \begin{aligned} H\left(D \mid A_{2}\right) &=w_{1} H\left(D_{1}\right)+w_{2} H\left(D_{2}\right)) =0.647 \end{aligned} H(DA2)=w1H(D1)+w2H(D2))=0.647
计算信息增益公式
g ( D , A 2 ) = H ( D ) − H ( D ∣ A 1 ) = 0.971 − 0.647 = 0.324 \begin{aligned} g\left(D, A_{2}\right) &=H(D)-H\left(D \mid A_{1}\right) \\ &=0.971-0.647=0.324 \end{aligned} g(D,A2)=H(D)H(DA1)=0.9710.647=0.324
特征:房子


有房子:
w 1 = ∣ D 1 ∣ ∣ D ∣ = 6 15 H ( D 1 ) = − ∑ k = 1 2 ∣ D 1 k ∣ ∣ D 1 ∣ log ⁡ 2 ∣ D 1 k ∣ ∣ D 1 ∣ = − 0 6 log ⁡ 2 0 6 − 6 6 log ⁡ 2 6 6 = 0 \begin{aligned} &w_{1}=\frac{\left|D_{1}\right|}{|D|}=\frac{6}{15} \\ &H\left(D_{1}\right)=-\sum_{k=1}^{2} \frac{\left|D_{1 k}\right|}{\left|D_{1}\right|} \log _{2} \frac{\left|D_{1 k}\right|}{\left|D_{1}\right|}=-\frac{0}{6} \log _{2} \frac{0}{6}-\frac{6}{6} \log _{2} \frac{6}{6}=0 \end{aligned} w1=DD1=156H(D1)=k=12D1D1klog2D1D1k=60log26066log266=0
没有房子:
w 2 = ∣ D 2 ∣ ∣ D ∣ = 9 15 H ( D 2 ) = − ∑ k = 1 2 ∣ D 2 k ∣ ∣ D 2 ∣ log ⁡ 2 ∣ D 2 k ∣ ∣ D 2 ∣ = − 3 9 log ⁡ 2 3 9 − 6 9 log ⁡ 2 6 9 \begin{aligned} &w_{2}=\frac{\left|D_{2}\right|}{|D|}=\frac{9}{15} \\ &H\left(D_{2}\right)=-\sum_{k=1}^{2} \frac{\left|D_{2 k}\right|}{\left|D_{2}\right|} \log _{2} \frac{\left|D_{2 k}\right|}{\left|D_{2}\right|}=-\frac{3}{9} \log _{2} \frac{3}{9}-\frac{6}{9} \log _{2} \frac{6}{9} \end{aligned} w2=DD2=159H(D2)=k=12D2D2klog2D2D2k=93log29396log296
综合计算经验条件熵 H ( D ∣ A 3 ) H\left(D \mid A_{3}\right) H(DA3):
H ( D ∣ A 3 ) = w 1 H ( D 1 ) + w 2 H ( D 2 ) ) = 0.551 \begin{aligned} H\left(D \mid A_{3}\right) &=w_{1} H\left(D_{1}\right)+w_{2} H\left(D_{2}\right)) =0.551 \end{aligned} H(DA3)=w1H(D1)+w2H(D2))=0.551
计算信息增益公式
g ( D , A 3 ) = H ( D ) − H ( D ∣ A 1 ) = 0.971 − 0.551 = 0.420 \begin{aligned} g\left(D, A_{3}\right) &=H(D)-H\left(D \mid A_{1}\right) \\ &=0.971-0.551=0.420 \end{aligned} g(D,A3)=H(D)H(DA1)=0.9710.551=0.420
特征:信贷情况

  1. 非常好:
    w 1 = ∣ D 1 ∣ ∣ D ∣ = 4 15 H ( D 1 ) = − ∑ k = 1 2 ∣ D 1 k ∣ ∣ D 1 ∣ log ⁡ 2 ∣ D 1 k ∣ ∣ D 1 ∣ = − 0 4 log ⁡ 2 0 4 − 4 4 log ⁡ 2 4 4 = 0 \begin{aligned} &w_{1}=\frac{\left|D_{1}\right|}{|D|}=\frac{4}{15} \\ &H\left(D_{1}\right)=-\sum_{k=1}^{2} \frac{\left|D_{1 k}\right|}{\left|D_{1}\right|} \log _{2} \frac{\left|D_{1 k}\right|}{\left|D_{1}\right|}=-\frac{0}{4} \log _{2} \frac{0}{4}-\frac{4}{4} \log _{2} \frac{4}{4}=0 \end{aligned} w1=DD1=154H(D1)=k=12D1D1klog2D1D1k=40log24044log244=0
    好:
    w 2 = ∣ D 2 ∣ ∣ D ∣ = 6 15 H ( D 2 ) = − ∑ k = 1 2 ∣ D 2 k ∣ ∣ D 2 ∣ log ⁡ 2 ∣ D 2 k ∣ ∣ D 2 ∣ = − 2 6 log ⁡ 2 2 6 − 4 6 log ⁡ 2 4 6 \begin{aligned} &w_{2}=\frac{\left|D_{2}\right|}{|D|}=\frac{6}{15} \\ &H\left(D_{2}\right)=-\sum_{k=1}^{2} \frac{\left|D_{2 k}\right|}{\left|D_{2}\right|} \log _{2} \frac{\left|D_{2 k}\right|}{\left|D_{2}\right|}=-\frac{2}{6} \log _{2} \frac{2}{6}-\frac{4}{6} \log _{2} \frac{4}{6} \end{aligned} w2=DD2=156H(D2)=k=12D2D2klog2D2D2k=62log26264log264
    一般:
    w 3 = ∣ D 3 ∣ ∣ D ∣ = 5 15 H ( D 3 ) = − ∑ k = 1 2 ∣ D 3 k ∣ ∣ D 3 ∣ log ⁡ 2 ∣ D 3 k ∣ ∣ D 3 ∣ = − 4 5 log ⁡ 2 4 5 − 1 5 log ⁡ 2 1 5 \begin{aligned} &w_{3}=\frac{\left|D_{3}\right|}{|D|}=\frac{5}{15} \\ &H\left(D_{3}\right)=-\sum_{k=1}^{2} \frac{\left|D_{3 k}\right|}{\left|D_{3}\right|} \log _{2} \frac{\left|D_{3 k}\right|}{\left|D_{3}\right|}=-\frac{4}{5} \log _{2} \frac{4}{5}-\frac{1}{5} \log _{2} \frac{1}{5} \end{aligned} w3=DD3=155H(D3)=k=12D3D3klog2D3D3k=54log25451log251
    综合计算经验条件熵 H ( D ∣ A 4 ) H\left(D \mid A_{4}\right) H(DA4):
    H ( D ∣ A 1 ) = w 1 H ( D 1 ) + w 2 H ( D 2 ) + w 3 H ( D 3 ) = 0.608 \begin{aligned} H\left(D \mid A_{1}\right) &=w_{1} H\left(D_{1}\right)+w_{2} H\left(D_{2}\right)+w_{3} H\left(D_{3}\right)=0.608 \end{aligned} H(DA1)=w1H(D1)+w2H(D2)+w3H(D3)=0.608
    计算信息增益公式
    g ( D , A 4 ) = H ( D ) − H ( D ∣ A 4 ) = 0.971 − 0.608 = 0.363 \begin{aligned} g\left(D, A_{4}\right) &=H(D)-H\left(D \mid A_{4}\right) \\ &=0.971-0.608=0.363 \end{aligned} g(D,A4)=H(D)H(DA4)=0.9710.608=0.363
    汇总如下:

    特征:房子对应的经验熵最小0.551,信息增益 0.420最大,选择这个特征的话,对应的不确定性最小,分类选择最为明确,可以设为最优特征。

注意:不同特征内的分类个数不同,有的是3个,比如年龄(青年、中年、老年),有的是2个,比如工作(有工作、无工作),取值个数较多时,可能计算出的信息增益会更大,从图中可以看出信息增益会更倾向于取值较多的特征。

信息增益更倾向于具有更多选择的那个特征 会造成信息增益比更少选择的特征大

例如: 信贷情况信息增益0.363大于有工作的信息增益0.324,有可能是因为信贷取值较多而带来的影响。怎么将这个影响降下去,引入信息增益比(在信息增益的情况下,增加一个惩罚项,训练数据集D关于特征A的熵的倒数)。特征A单位取值个数下的信息收益
特 征 A 单 位 取 值 个 数 下 的 信 息 收 益 g ( D , A ) / H A ( D ) 特征A单位取值个数下的信息收益g(D,A)/H_A(D) Ag(D,A)/HA(D)

选择信息增益比最大值为最优特征

怎么计算 H A ( D ) H_A(D) HA(D): 只要找到每个特征对应的子集的样本个数个数;

年 龄 所 对 应 的 熵 : H A 1 ( D ) = − 5 15 l o g 2 5 15 − 5 15 l o g 2 5 15 − 5 15 l o g 2 5 15 = 1.585 年龄所对应的熵:H_{A1}(D)=-\frac{5}{15}log_2\frac{5}{15}-\frac{5}{15}log_2\frac{5}{15}-\frac{5}{15}log_2\frac{5}{15}=1.585 HA1(D)=155log2155155log2155155log2155=1.585

工 作 所 对 应 的 熵 : H A 2 ( D ) = − 5 15 l o g 2 5 15 − 10 15 l o g 2 10 15 = 0.918 工作所对应的熵:H_{A2}(D)=-\frac{5}{15}log_2\frac{5}{15}-\frac{10}{15}log_2\frac{10}{15}=0.918 HA2(D)=155log21551510log21510=0.918

房 子 的 熵 : H A 3 ( D ) = − 6 15 l o g 2 6 15 − 9 15 l o g 2 9 15 = 0.971 房子的熵:H_{A3}(D)=-\frac{6}{15}log_2\frac{6}{15}-\frac{9}{15}log_2\frac{9}{15}=0.971 HA3(D)=156log2156159log2159=0.971

信 贷 的 熵 : H A 4 ( D ) = − 4 15 l o g 2 4 15 − 6 15 l o g 2 6 15 − 5 15 l o g 2 5 15 = 1.566 信贷的熵:H_{A4}(D)=-\frac{4}{15}log_2\frac{4}{15}-\frac{6}{15}log_2\frac{6}{15}-\frac{5}{15}log_2\frac{5}{15}=1.566 HA4(D)=154log2154156log2156155log2155=1.566


选了有自己的房子特征之后,怎么选下一个特征?

如果按信息增益选择特征: 有工作0.324小于信贷情况0.363 ,应该选择信贷情况,因为信息增益的值大代表着更多的确定性。

如果消除特征个数所带来的影响的话,通过信息增益比来选择特征,则得到相反的结果,此时的0.353大于0.232.

信息增益倾向于取值较多的特征,信息增益比倾向于选择取值较少的特征。选择哪一个,根据具体情况选择。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

决策树之用信息增益选择最优特征 的相关文章

  • FISCO BCOS 2.0新特性解读

    FISCO BCOS是完全开源的联盟区块链底层技术平台 由金融区块链合作联盟 深圳 简称金链盟 成立开源工作组通力打造 开源工作组成员包括博彦科技 华为 深证通 神州数码 四方精创 腾讯 微众银行 亦笔科技和越秀金科等金链盟成员机构 代码仓

随机推荐

  • Nacos、ZooKeeper和Dubbo的区别

    Nacos ZooKeeper和Dubbo是三个不同的分布式系统组件 它们之间有以下几点区别 功能定位 Nacos主要提供服务发现 配置管理和服务治理等功能 而ZooKeeper主要是分布式协调服务 提供了分布式锁 分布式队列等原语 Dub
  • 本地部署LLaMA-中文LoRA部署详细说明

    在Ubuntu18 04 部署中文LLaMA模型 环境准备 硬件环境 AMD 5950X 128GB RAM RTX 3090 24G VRAM 操作系统 Ubuntu 18 04 编译环境 可选 llama cpp 编译 cd llama
  • GoJS学习

    简介 GoJS是一个可视化JavaScript库 用于浏览器中创建交互图形 比如流程图 树图 关系图 力导图等等 GoJS不依赖于任何JS库或框架 例如bootstrap jquery等 可与任何HTML或JS框架配合工作 甚至可以不用框架
  • Cuda 代码中的 函数前缀 device global host 使用

    众所周知 CUDA并行可以使代码加速很多倍 其文件类型为 cu 结尾 在编写cu 文件时 常用的函数前缀关键字有 device global host host C或者C 中相同 是由CPU调用 由CPU执行的函数 global 表示一个内
  • 为啥国内互联网公司都用centos而不是ubuntu?

    一直以来都很好奇ubuntu和centos有啥区别 上学时接触的都是ubuntu 自己每次装virtual box的时候都会下个ubuntu 但是公司的服务器上装的都是centos 今天查了下知乎网友的精彩回答 呵呵 简单总结下主要有几个原
  • 解释执行与编译执行语言有什么区别?

    一 主体不同 1 编译执行 由编译程序将目标代码一次性编译成目标程序 再由机器运行目标程序 2 解释执行 将源语言直接作为源程序输入 解释执行 解释一句后就提交计算机执行一句 并不形成目标程序 二 优势不同 1 编译执行 相比解释执行编译执
  • 常用的偏微分方程

    偏微分方程通常包含两个以上的自变量 若自变量同时间相关 或者无关 称其为发展型 或者稳态 的 下面 我们罗列出一些典型的偏微分方程 如 热传导方程 一阶双曲守恒律方程 二阶波动方程 椭圆型偏微分方程等 抛物型偏微分方程通常刻画 个物理系统的
  • 前端学科面试题大全

    作用域和值类型引用类型的传递 变量作用域 作用域变量访问区域 变量值存在栈中 变量赋值相当于值赋值 值传递与引用传递有哪些区别 函数内部 变量会先声明 形式参数变量声明提升 整个函数体有var声明的变量 如果没有访问全局定义的num2 函数
  • 服务器环境初始化配置

    工程实践经验积累 服务器环境初始化配置 1 新建环境 新建环境 是为了使自己的程序在一个相对独立的环境中运行 不影响服务器上其他用户 并不受其他用户影响 新建环境的语句为 conda create n your env name pytho
  • 【Unity Shader】屏幕后处理1.0:调整亮度/饱和度/对比度

    1 Unity中实现屏幕特效的基本步骤 什么叫屏幕后处理 Screen post processing effects 渲染完整个场景得到屏幕图像后对图像进行一系列操作 实现各种屏幕特效 这一步我们可以添加很多例如景深 Depth of F
  • session销毁

    session invalidate session invalidate的销毁是把这个session所带的用户彻底的销毁 这个session跟用户已经紧密联合在一起 所以就一起销毁了 这样就算换了个session 也是登陆不了的 以前我的
  • 设计模式之享元模式

    享元模式 就是共享技术 对于系统中存在大量相同的对象 把他们抽取成一个对象放在缓存中进行使用 这样可以大大节省系统资源 例如 围棋棋盘上有两种棋子 一个是黑子 一个是白子 如果在下棋的时候每下一个棋子就要new一个棋子对象 那么就会有大量的
  • C#比较两个list集合,两集合同时存在或A集合存在B集合中无

    using System using System Collections Generic using System Linq using System Text using System Threading using System Th
  • iOS灵动岛【电商秒杀】开发实践

    一 基本概述 名词基础知识 苹果在 iPhone 14 Pro 系列中增加一个灵动岛 主要目的是隐藏挖孔造型的高端 感叹号屏 通过动画的视觉差异 用户找不到原来的挖孔屏 灵动岛是一种巧妙的设计 模糊了软件和硬件之间的界限 它可以在锁屏的情况
  • Python: 转换文本编码

    最近在做周报的时候 需要把csv文本中的数据提取出来制作表格后生产图表 在获取csv文本内容的时候 基本上都是用with open filename encoding UTF 8 as f 来打开csv文本 但是实际使用过程中发现有些csv
  • python网络爬虫实战——实时抓取西刺免费代理ip

    参考网上高手示例程序 利用了多线程技术 Python版本为2 7 coding utf8 import urllib2 import re import threading import time rawProxyList checkedP
  • Git切换分支报错:error: you need to resolve your current index first 以及needs merge

    当想从子分支切换到dev分支时git checkout dev 报错 error you need to resolve your current index first xxx java needs merge xxx xml needs
  • c#:ThreadPool实现并行分析,并实现线程同步结束

    背景 一般情况下 经常会遇到一个单线程程序时执行对CPU MEMORY IO利用率上不来 且速度慢下问题 那么 怎么解决这些问题呢 据我个人经验来说有以下两种方式 1 并行 多线程 Parallel Task ThreadPool 2 多进
  • phpstrom、laradock、xdebug 进行断点调试

    phpstrom laradock xdebug 进行断点调试 背景 laravel 框架封装太完善 经常搞不明白究竟用的是哪个类 复杂一点的算法 使用 dd方法调试时 需要疯狂dd 显得过于鸡肋 调试流程 发请求 跑调试代码 安装 xde
  • 决策树之用信息增益选择最优特征

    决策树之用信息增益选择最优特征 熵 熵的定义 熵 sh ng 热力学中表征物质状态的参量之一 用符号S表示 其物理意义是体系混乱程度的度量 在决策树中 信息增益是由熵构建而成 表示的是 随机变量的不确定性 不确定性越大 代表着熵越大 随机变