随机森林算法

2023-11-09

转载自:http://www.zilhua.com/629.html

 

 

1. 随机森林使用背景

1.1 随机森林定义

随机森林是一种比较新的机器学习模型。经典的机器学习模型是神经网络,有半个多世纪的历史了。神经网络预测精确,但是计算量很大。上世纪八十年代Breiman等人发明分类树的算法(Breiman et al. 1984),通过反复二分数据进行分类或回归,计算量大大降低。2001年Breiman把分类树组合成随机森林(Breiman 2001a),即在变量(列)的使用和数据(行)的使用上进行随机化,生成很多分类树,再汇总分类树的结果。随机森林在运算量没有显著提高的前提下提高了预测精度。随机森林对多元公线性不敏感,结果对缺失数据和非平衡的数据比较稳健,可以很好地预测多达几千个解释变量的作用(Breiman 2001b),被誉为当前最好的算法之一(Iverson et al. 2008)。

随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。

1.2 随机森林优点

随机森林是一个最近比较火的算法,它有很多的优点:

a. 在数据集上表现良好,两个随机性的引入,使得随机森林不容易陷入过拟合

b. 在当前的很多数据集上,相对其他算法有着很大的优势,两个随机性的引入,使得随机森林具有很好的抗噪声能力

c. 它能够处理很高维度(feature很多)的数据,并且不用做特征选择,对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化

d. 可生成一个Proximities=(pij)矩阵,用于度量样本之间的相似性: pij=aij/N, aij表示样本i和j出现在随机森林中同一个叶子结点的次数,N随机森林中树的颗数

e. 在创建随机森林的时候,对generlization error使用的是无偏估计

f. 训练速度快,可以得到变量重要性排序(两种:基于OOB误分率的增加量和基于分裂时的GINI下降量

g. 在训练过程中,能够检测到feature间的互相影响

h. 容易做成并行化方法

i. 实现比较简单

1.3 随机森林应用范围

随机森林主要应用于回归和分类。本文主要探讨基于随机森林的分类问题。随机森林和使用决策树作为基本分类器的(bagging)有些类似。以决策树为基本模型的bagging在每次bootstrap放回抽样之后,产生一棵决策树,抽多少样本就生成多少棵树,在生成这些树的时候没有进行更多的干预。而随机森林也是进行bootstrap抽样,但它与bagging的区别是:在生成每棵树的时候,每个节点变量都仅仅在随机选出的少数变量中产生。因此,不但样本是随机的,连每个节点变量(Features)的产生都是随机的。

许多研究表明, 组合分类器比单一分类器的分类效果好,随机森林(random forest)是一种利用多个分类树对数据进行判别与分类的方法,它在对数据进行分类的同时,还可以给出各个变量(基因)的重要性评分,评估各个变量在分类中所起的作用。

2. 随机森林方法理论介绍

2.1 随机森林基本原理

随机森林由LeoBreiman(2001)提出,它通过自助法(bootstrap)重采样技术,从原始训练样本集N中有放回地重复随机抽取k个样本生成新的训练样本集合,然后根据自助样本集生成k个分类树组成随机森林,新数据的分类结果按分类树投票多少形成的分数而定。其实质是对决策树算法的一种改进,将多个决策树合并在一起,每棵树的建立依赖于一个独立抽取的样品,森林中的每棵树具有相同的分布,分类误差取决于每一棵树的分类能力和它们之间的相关性。特征选择采用随机的方法去分裂每一个节点,然后比较不同情况下产生的误差。能够检测到的内在估计误差、分类能力和相关性决定选择特征的数目。单棵树的分

类能力可能很小,但在随机产生大量的决策树后,一个测试样品可以通过每一棵树的分类结果经统计后选择最可能的分类。

2.2 随机森林算法

2.2.1 决策树

决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

随机森林是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类,然后看看哪一类被选择最多,就预测这个样本为那一类。

在建立每一棵决策树的过程中,有两点需要注意采样与完全分裂。首先是两个随机采样的过程,random forest对输入的数据要进行行、列的采样。对于行采样,采用有放回的方式,也就是在采样得到的样本集合中,可能有重复的样本。假设输入样本为N个,那么采样的样本也为N个。这样使得在训练的时候,每一棵树的输入样本都不是全部的样本,使得相对不容易出现over-fitting。然后进行列采样,从M个feature中,选择m个(m << M)。之后就是对采样之后的数据使用完全分裂的方式建立出决策树,这样决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本的都是指向的同一个分类。一般很多的决策树算法都一个重要的步骤——剪枝,但是这里不这样干,由于之前的两个随机采样的过程保证了随机性,所以就算不剪枝,也不会出现over-fitting。

决策树中分裂属性的两个选择度量:

1)信息增益

随机森林模型任意样本分类的期望信息:

a) I(s1,s2,……,sm)=

∑Pi log2(pi)(i=1..m)

其中,数据集为S,m为S的分类数目,Pi≈|Si/|S|,Ci为某分类标号,Pi为任意样本属于Ci的概率,si为分类Ci上的样本数

b) I(s1,s2,……,sm)越小,s1,s2,……,sm就越有序(越纯),分类效果就越好。

c) 由属性A划分为子集的熵:

A为属性,具有V个不同的取值, S被A 划分为V 个子集s1,s2,……,sv,sij是子集sj中类Ci的样本数。E(A)= ∑(s1j+ ……+smj)/s * I(s1j,……,smj)

d) 信息增益:Gain(A)= I(s1,s2,……,sm)

 E(A)

e) 分裂属性选择规则:选择具有最大信息增益的属性为分裂属性

2)基尼指数

    a) 集合T包含N个类别的记录,那么其Gini指标就是pj 类别j出现的频率

     b) 如果集合T分成m部分 N1 , N2 ,…, Nm 。那么这个分割的Gini就是

c)分裂属性选择规则:选择具有最小Ginisplit的属性为分裂属性(对于每个属性都要遍历所有可能的分割方法)。

2.2.3 随机森林模型的注意点

设有N个样本,每个样本有M个features,决策树们其实都是随机地接受n个样本(对行随机取样)的m个feature(对列进行随机取样),每颗决策树的m个feature相同。每颗决策树其实都是对特定的数据进行学习归纳出分类方法,而随机取样可以保证有重复样本被不同决策树分类,这样就可以对不同决策树的分类能力做个评价。

2.2.4随机森林实现过程

随机森林中的每一棵分类树为二叉树,其生成遵循自顶向下的递归分裂原则,即从根节点开始依次对训练集进行划分;在二叉树中,根节点包含全部训练数据, 按照节点

纯度最小原则,分裂为左节点和右节点,它们分别包含训练数据的一个子集,按照同样的规则节点继续分裂,直到满足分支停止规则而停止生长。若节点n上的分类数据全部来自于同一类别,则此节点的

纯度I(n)=0,

纯度度量方法是Gini准则,即假设P(Xj)是节点n上属于Xj 类样本个数占训练。

具体实现过程如下:

(1)原始训练集为N,应用bootstrap法有放回地随机抽取k个新的自助样本集,并由此构建k棵分类树,每次未被抽到的样本组成了k个袋外数据;

(2)设有mall个变量,则在每一棵树的每个节点处随机抽取mtry个变量(mtry n mall),然后在mtry中选择一个最具有分类能力的变量,变量分类的阈值通过检查每一个分类点确定;

(3)每棵树最大限度地生长, 不做任何修剪;

(4)将生成的多棵分类树组成随机森林,用随机森林分类器对新的数据进行判别与分类,分类结果按树分类器的投票多少而定。

3. 随机森林应用

由于R中早就出现randomForest包了,本文主要讨论R中随机森林的应用。两个主要函数比较重要:randomForest用来构建随机森林模型,predict()使用训练后的随机森林对新数据进行预测。

3.1目标

通过随机森林的算法,根据一些特征,例如花瓣的长,宽,花萼的长宽。来预测植株的种类。

3.2 准备的数据集

iris数据集,是R语言自带的数据集。

  1. Sepal.Length Sepal.Width Petal.Length Petal.Width    Species   
  2. 1            5.1         3.5          1.4         0.2     setosa   
  3. 2            4.9         3.0          1.4         0.2     setosa   
  4. 3            4.7         3.2          1.3         0.2     setosa   
  5. 4            4.6         3.1          1.5         0.2     setosa   
  6. 5            5.0         3.6          1.4         0.2     setosa   
  7. 6            5.4         3.9          1.7         0.4     setosa   
  8. 7            4.6         3.4          1.4         0.3     setosa   
  9. 8            5.0         3.4          1.5         0.2     setosa   
  10. 9            4.4         2.9          1.4         0.2     setosa   
  11. 10           4.9         3.1          1.5         0.1     setosa   
  12. 11           5.4         3.7          1.5         0.2     setosa   
  13. 12           4.8         3.4          1.6         0.2     setosa   
  14. 13           4.8         3.0          1.4         0.1     setosa   
  15. 14           4.3         3.0          1.1         0.1     setosa   
  16. 15           5.8         4.0          1.2         0.2     setosa   
  17. 16           5.7         4.4          1.5         0.4     setosa   
  18. 17           5.4         3.9          1.3         0.4     setosa   
  19. 18           5.1         3.5          1.4         0.3     setosa   
  20. 19           5.7         3.8          1.7         0.3     setosa   
  21. 20           5.1         3.8          1.5         0.3     setosa   
  22. 21           5.4         3.4          1.7         0.2     setosa   
  23. 22           5.1         3.7          1.5         0.4     setosa   
  24. 23           4.6         3.6          1.0         0.2     setosa   
  25. 24           5.1         3.3          1.7         0.5     setosa   
  26. 25           4.8         3.4          1.9         0.2     setosa   
  27. 26           5.0         3.0          1.6         0.2     setosa   
  28. 27           5.0         3.4          1.6         0.4     setosa   
  29. 28           5.2         3.5          1.5         0.2     setosa   
  30. 29           5.2         3.4          1.4         0.2     setosa   
  31. 30           4.7         3.2          1.6         0.2     setosa   
  32. 31           4.8         3.1          1.6         0.2     setosa   
  33. 32           5.4         3.4          1.5         0.4     setosa   
  34. 33           5.2         4.1          1.5         0.1     setosa   
  35. 34           5.5         4.2          1.4         0.2     setosa   
  36. 35           4.9         3.1          1.5         0.2     setosa   
  37. 36           5.0         3.2          1.2         0.2     setosa   
  38. 37           5.5         3.5          1.3         0.2     setosa   
  39. 38           4.9         3.6          1.4         0.1     setosa   
  40. 39           4.4         3.0          1.3         0.2     setosa   
  41. 40           5.1         3.4          1.5         0.2     setosa   
  42. 41           5.0         3.5          1.3         0.3     setosa   
  43. 42           4.5         2.3          1.3         0.3     setosa   
  44. 43           4.4         3.2          1.3         0.2     setosa   
  45. 44           5.0         3.5          1.6         0.6     setosa   
  46. 45           5.1         3.8          1.9         0.4     setosa   
  47. 46           4.8         3.0          1.4         0.3     setosa   
  48. 47           5.1         3.8          1.6         0.2     setosa   
  49. 48           4.6         3.2          1.4         0.2     setosa   
  50. 49           5.3         3.7          1.5         0.2     setosa   
  51. 50           5.0         3.3          1.4         0.2     setosa   
  52. 51           7.0         3.2          4.7         1.4 versicolor   
  53. 52           6.4         3.2          4.5         1.5 versicolor   
  54. 53           6.9         3.1          4.9         1.5 versicolor   
  55. 54           5.5         2.3          4.0         1.3 versicolor   
  56. 55           6.5         2.8          4.6         1.5 versicolor   
  57. 56           5.7         2.8          4.5         1.3 versicolor   
  58. 57           6.3         3.3          4.7         1.6 versicolor   
  59. 58           4.9         2.4          3.3         1.0 versicolor   
  60. 59           6.6         2.9          4.6         1.3 versicolor   
  61. 60           5.2         2.7          3.9         1.4 versicolor   
  62. 61           5.0         2.0          3.5         1.0 versicolor   
  63. 62           5.9         3.0          4.2         1.5 versicolor   
  64. 63           6.0         2.2          4.0         1.0 versicolor   
  65. 64           6.1         2.9          4.7         1.4 versicolor   
  66. 65           5.6         2.9          3.6         1.3 versicolor   
  67. 66           6.7         3.1          4.4         1.4 versicolor   
  68. 67           5.6         3.0          4.5         1.5 versicolor   
  69. 68           5.8         2.7          4.1         1.0 versicolor   
  70. 69           6.2         2.2          4.5         1.5 versicolor   
  71. 70           5.6         2.5          3.9         1.1 versicolor   
  72. 71           5.9         3.2          4.8         1.8 versicolor   
  73. 72           6.1         2.8          4.0         1.3 versicolor   
  74. 73           6.3         2.5          4.9         1.5 versicolor   
  75. 74           6.1         2.8          4.7         1.2 versicolor   
  76. 75           6.4         2.9          4.3         1.3 versicolor   
  77. 76           6.6         3.0          4.4         1.4 versicolor   
  78. 77           6.8         2.8          4.8         1.4 versicolor   
  79. 78           6.7         3.0          5.0         1.7 versicolor   
  80. 79           6.0         2.9          4.5         1.5 versicolor   
  81. 80           5.7         2.6          3.5         1.0 versicolor   
  82. 81           5.5         2.4          3.8         1.1 versicolor   
  83. 82           5.5         2.4          3.7         1.0 versicolor   
  84. 83           5.8         2.7          3.9         1.2 versicolor   
  85. 84           6.0         2.7          5.1         1.6 versicolor   
  86. 85           5.4         3.0          4.5         1.5 versicolor   
  87. 86           6.0         3.4          4.5         1.6 versicolor   
  88. 87           6.7         3.1          4.7         1.5 versicolor   
  89. 88           6.3         2.3          4.4         1.3 versicolor   
  90. 89           5.6         3.0          4.1         1.3 versicolor   
  91. 90           5.5         2.5          4.0         1.3 versicolor   
  92. 91           5.5         2.6          4.4         1.2 versicolor   
  93. 92           6.1         3.0          4.6         1.4 versicolor   
  94. 93           5.8         2.6          4.0         1.2 versicolor   
  95. 94           5.0         2.3          3.3         1.0 versicolor   
  96. 95           5.6         2.7          4.2         1.3 versicolor   
  97. 96           5.7         3.0          4.2         1.2 versicolor   
  98. 97           5.7         2.9          4.2         1.3 versicolor   
  99. 98           6.2         2.9          4.3         1.3 versicolor   
  100. 99           5.1         2.5          3.0         1.1 versicolor   
  101. 100          5.7         2.8          4.1         1.3 versicolor   
  102. 101          6.3         3.3          6.0         2.5  virginica   
  103. 102          5.8         2.7          5.1         1.9  virginica   
  104. 103          7.1         3.0          5.9         2.1  virginica   
  105. 104          6.3         2.9          5.6         1.8  virginica   
  106. 105          6.5         3.0          5.8         2.2  virginica   
  107. 106          7.6         3.0          6.6         2.1  virginica   
  108. 107          4.9         2.5          4.5         1.7  virginica   
  109. 108          7.3         2.9          6.3         1.8  virginica   
  110. 109          6.7         2.5          5.8         1.8  virginica   
  111. 110          7.2         3.6          6.1         2.5  virginica   
  112. 111          6.5         3.2          5.1         2.0  virginica   
  113. 112          6.4         2.7          5.3         1.9  virginica   
  114. 113          6.8         3.0          5.5         2.1  virginica   
  115. 114          5.7         2.5          5.0         2.0  virginica   
  116. 115          5.8         2.8          5.1         2.4  virginica   
  117. 116          6.4         3.2          5.3         2.3  virginica   
  118. 117          6.5         3.0          5.5         1.8  virginica   
  119. 118          7.7         3.8          6.7         2.2  virginica   
  120. 119          7.7         2.6          6.9         2.3  virginica   
  121. 120          6.0         2.2          5.0         1.5  virginica   
  122. 121          6.9         3.2          5.7         2.3  virginica   
  123. 122          5.6         2.8          4.9         2.0  virginica   
  124. 123          7.7         2.8          6.7         2.0  virginica   
  125. 124          6.3         2.7          4.9         1.8  virginica   
  126. 125          6.7         3.3          5.7         2.1  virginica   
  127. 126          7.2         3.2          6.0         1.8  virginica   
  128. 127          6.2         2.8          4.8         1.8  virginica   
  129. 128          6.1         3.0          4.9         1.8  virginica   
  130. 129          6.4         2.8          5.6         2.1  virginica   
  131. 130          7.2         3.0          5.8         1.6  virginica   
  132. 131          7.4         2.8          6.1         1.9  virginica   
  133. 132          7.9         3.8          6.4         2.0  virginica   
  134. 133          6.4         2.8          5.6         2.2  virginica   
  135. 134          6.3         2.8          5.1         1.5  virginica   
  136. 135          6.1         2.6          5.6         1.4  virginica   
  137. 136          7.7         3.0          6.1         2.3  virginica   
  138. 137          6.3         3.4          5.6         2.4  virginica   
  139. 138          6.4         3.1          5.5         1.8  virginica   
  140. 139          6.0         3.0          4.8         1.8  virginica   
  141. 140          6.9         3.1          5.4         2.1  virginica   
  142. 141          6.7         3.1          5.6         2.4  virginica   
  143. 142          6.9         3.1          5.1         2.3  virginica   
  144. 143          5.8         2.7          5.1         1.9  virginica   
  145. 144          6.8         3.2          5.9         2.3  virginica   
  146. 145          6.7         3.3          5.7         2.5  virginica   
  147. 146          6.7         3.0          5.2         2.3  virginica   
  148. 147          6.3         2.5          5.0         1.9  virginica   
  149. 148          6.5         3.0          5.2         2.0  virginica   
  150. 149          6.2         3.4          5.4         2.3  virginica   
  151. 150          5.9         3.0          5.1         1.8  virginica   

R 源代码:

  1. library( ”randomForest” )   
  2. data(iris)   
  3. set.seed(100)   
  4. ind=sample(2,nrow(iris),replace=TRUE,prob=c(0.8,0.2))   
  5. iris.rf=randomForest(Species~.,iris[ind==1,],ntree=50,nPerm=10,mtry=3,proximity=TRUE,importance=TRUE)   
  6. print(iris.rf)   
  7. iris.pred=predict( iris.rf,iris[ind==2,] )   
  8. table(observed=iris[ind==2,"Species"],predicted=iris.pred )   

3.4 一些重要参数说明

randomForest()对训练集的数据进行处理,生成决策树

iris.rf=randomForest(Species~.,iris[ind==1,],ntree=50,nPerm=10,mtry=3,proximity=TRUE,importance=TRUE)

Species~.:代表需要预测的列,species是列的名称。

iris[ind==1,]:生成决策树的训练集

ntree:生成决策树的数目

nperm:计算importance时的重复次数

mtry:选择的分裂属性的个数

proximity=TRUE:表示生成临近矩阵

importance=TRUE:输出分裂属性的重要性

predict()

iris.pred=predict( iris.rf,iris[ind==2,] )

iris.rf:表示生成的随机森林模型

iris[ind==2,] :进行预测的测试集

3.5预测结果



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

随机森林算法 的相关文章

  • tiny-cnn执行过程分析(MNIST)

    在http blog csdn net fengbingchun article details 50573841中以MNIST为例对tiny cnn的使用进行了介绍 下面对其执行过程进行分析 支持两种损失函数 1 mean squared
  • JWT介绍

    JWT介绍 1 1 jwt原则 最简单理解 jwt本质就是 把用户信息通过加密后生成的一个字符串 JWT的原则是在服务器身份验证之后 将生成一个JSON对象并将其发送回用户 UserName Chongchong Role Admin Ex
  • Ubuntu安装scrapy

    先检查是否安装过lxml openSSL 没有的话 得安装依赖包了 安装lxml 参考官网安装 http lxml de installation html 如果python是2 x的 用以下命令 sudo apt get install
  • unity 动画控制

    播放控制 Animator animator animator speed 0 停止播放 animator speed 1 倒放 animator Play stateName 0 0 播放指定状态 stateName是Animator窗口
  • 使用opencv画一些几何形状:cv2.line(),cv2.circle(),cv2.rectangle(),cv2.putText()

    1 cv2 line 划线 cv2 line img 10 10 510 510 0 255 0 5 img 图像 起点坐标 终点坐标 颜色 线的宽度 2 cv2 circle 画圆 cv2 circle img 50 50 10 0 0
  • css自学框架之图片懒加载

    首先解释一下什么叫图片懒加载 图片懒加载是一种在页面加载时 延迟加载图片资源的技术 也就是说图片资源在需要的时候才会加载 就是在屏幕显示范围内加载图片 屏幕显示范围外图片不加载 一 关键函数 用到的关键函数 globalThis Inter
  • 我是废物...

    我是废物
  • 【数据手册】CH340G芯片使用介绍

    1 概述 CH340是一系列USB总线适配器 它通过USB总线提供串行 并行或IrDA接口 CH340G集成电路提供通用的MODEM信号 允许将UART添加到计算机上 或将现有的UART设备转换为USB接口 2 特征 全速USB接口 兼容U
  • Bugku-CTF (web 持续更新) ——新手ctf记录

    目录 1 滑稽 2 计算器 3 GET 4 POST GET和POST的区别 5 矛盾 6 alert 7 你必须让他停下 8 game1 9 网站被黑 10 本地管理员 X Forwarded For 11 eval 12 变量1 13
  • Linux下的bochs安装

    强烈建议使用ubuntu系统 apt get指令太好用了 安装各种依赖相当简单 1 首先到bochs网站上下载一个linux版本bochs 在安装之前需要安装一些依赖 sudo apt get install build essential
  • JavaScript原生实现事件监听及手动触发

    事件监听 标签中的onxxx 比如
  • AOM联盟:AV1完成1.0版定稿

    在2018年第一季度结束前 AOM联盟完成了AV1 1 0版定稿 这是这一新兴生态的最新胜利 文 包研 图 AOM官网发布消息 今天 AV1的规格 参考代码和绑定格式向开发者开放 来源 AOM官网 北京时间3月28日晚间消息 AOM联盟宣布
  • Docker存储卷(一)详解

    目录 什么是存储卷 为什么要用存储卷 Docker存储卷的特性 Docker为容器提供了两种存放数据的资源 storage driver Data Volume bind mount 实例 docker managed volume 实例
  • getevent/sendevent 使用说明

    这两天准备写一下input子系统的分析 过程中发现了两个好工具 呵呵 就是本文介绍的主角 getevent用于获取当前系统input设备的一些参数和实时事件的数据 sendevent用于发送input事件 这样在调试的时候遇到有的样机按键坏
  • Tensorflow分布式训练原理

    以下文章摘录自 机器学习观止 核心原理与实践 京东 https item jd com 13166960 html 当当 http product dangdang com 29218274 html 由于博客系统问题 部分公式 图片和格式
  • python中imread用法_Python matplotlib.pyplot.imread()用法及代码示例

    Matplotlib是Python中的一个库 它是数字的 NumPy库的数学扩展 Pyplot是Matplotlib模块的基于状态的接口 该模块提供了MATLAB like接口 matplotlib pyplot imread 功能 mat
  • Android 11 设置开机默认系统横屏显示

    实现 默认横屏有两套方案 第一种方式 目录 device rockchip rk356x BoardConfig mk SF PRIMARY DISPLAY ORIENTATION 90 第二种方式 Android系统默认是竖屏显示的 想要
  • Git fetch、pull以及merge之间的区别

    笔者当时学习git的时候对fetch以及pull命令之间的区别疑惑不解 被困扰了许久 其实还是对git的原理理解不深才会有这种情况 git对每次提交都会生成一个cmmit id 我们工作区间版本改变其实就是HEAD指针指向的commit i
  • [Git & GitHub] Windows下安装git,从0开始搭建git环境(配置环境变量+设置git-ssh key...配置)(超全版)

    目录 前提准备 安装Git Git配置 配置环境变量 git配置 ssh认证配置过程 配置邮箱和用户名 个人身份 文本换行符配置 前提准备 下载地址 点击此处 点击Windows进行下载 若下载比较慢 点击此处 安装Git 下载之后 双击G
  • Android安全检测-Intent Scheme URLs攻击风险

    一 漏洞原理 利用intent scheme URLs 意图协议URL 可以通过web页面发送intent来启动App应用 攻击者可构造特殊格式的URL直接向系统发送意图 启动App应用的Activity组件或者发送异常数据 导致应用的敏感

随机推荐

  • python3.7添加dlib模块

    1 下载dlib安装包 安装dlib真是费劲 dlib下载地址 http dlib net files 我下载的是dlib 19 14 zip 然后解压安装dlib 在安装dlib前需要安装Boost和Cmake dlib19之后你需要安装
  • Windows DWrite 组件 RCE 漏洞 (CVE-2021-24093) 分析

    聚焦源代码安全 网罗国内外最新资讯 概述 Windows图形组件DWrite库存在数组越界写漏洞 CVE 2021 24093 可导致远程代码执行 当DWrite库解析恶意构造的字体文件时 计算内存分配长度时出现错误 触发越界写 而且字体文
  • simulink电力电子仿真(2)单相桥式半控整流电路实验

    simulink电力电子仿真 2 单相桥式半控整流电路实验 返回目录 主要是赶上了疫情 然后期末要疯狂补实验报告 就索性写一下吧 万一以后再做电力电路仿真 可能会有用的 也希望可以帮助别人 器件的选择及位置 MATLAB的版本 2018a
  • <Linux开发>系统移植 -之- linux构建BusyBox根文件系统及移植过程详细记录

    Linux开发 系统移植 之 linux构建BusyBox根文件系统及移植过程详细记录 前言 本章节讲解的是构建移植BusyBox根文件系统到linux开发板 主要是基于正点原子Linux开发板操作 接下来讲解具体过程记录 BusyBox源
  • sql概念模型和逻辑模型

    一 概念模式和E R图 概念模型的表示方法很多 目前比较常用的是实体联系模型 简称E R模型 E R模型主要用E R图来表示 实体间的联系有 一对一联系 一对多联系 多对多联系 E R模型用矩形框表示现实世界中的实体 用菱形框表示实体间的联
  • Linux开发(七):多线程通信与同步

    线程间无需特别的手段进行通信 因为线程间可以共享数据结构 也就是一个全局变量可以被两个线程同时使用 不过要注意的是线程间需要做好同步 目录 一 互斥锁 1 初始化 1 动态初始化 2 静态初始化 2 加锁 3 解锁 4 销毁互斥锁 5 互斥
  • 为什么bytes32等于uint256

    先说1byte等于8个字节 bytes32则等于8 32 256个字节 接着uint8同样等于8个字节 uint256即8个字节的32倍 256 8 32 因此看到byteX和uintY时 如果X 8 Y 意味着byteX uintY
  • JVM Troubleshooting命令-jinfo

    概述 用来查看正在运行的Java应用程序的扩展参数 支持在运行时 修改部分参数 命令格式 jinfo option pid jinfo option executable core jinfo option servier id remot
  • 代码坏味道与重构之重复代码

    文章目录 1 重复代码的特征 2 重复代码的影响 3 重复代码的重构技巧 1 重复代码的特征 重复代码是代码坏味道的典型代表 重复代码是指相同或相似的代码在一个以上的地方出现 通常有以下几种情形 同一个类 多个方法间重复 子类之间代码重复
  • ChatGPT API 中文版(google翻譯)

    https platform openai com docs api reference introduction 介紹 您可以通過任何語言的 HTTP 請求 我們的官方 Python 綁定 我們的官方 Node js 庫或社區維護的庫與
  • 1566 重复至少 K 次且长度为 M 的模式(模拟)

    1 问题描述 给你一个正整数数组 arr 请你找出一个长度为 m 且在数组中至少重复 k 次的模式 模式 是由一个或多个值组成的子数组 连续的子序列 连续 重复多次但 不重叠 模式由其长度和重复次数定义 如果数组中存在至少重复 k 次且长度
  • 微信小程序的事件绑定、接收参数、示例

    1 微信小程序的事件类别 tap 点击事件 input 输入事件 longtap 长按事件 touchstart 触摸开始 touchend 触摸结束 touchcansce 取消触摸 注1 小程序中请求处理方法是不能传递参数 正确方式 通
  • node js 文件,文件夹,文件流操作

    引入模块 const fs require fs const path require path 读取文件 同步读取 var data fs readFileSync read txt utf 8 console log 同步读取 data
  • LogisticRegression - 参数说明

    LogisticRegression 逻辑回归参数详细说明 参数说明如下 penalty 惩罚项 str类型 可选参数为l1和l2 默认为l2 用于指定惩罚项中使用的规范 newton cg sag和lbfgs求解算法只支持L2规范 L1G
  • SCAU 18724 二叉树的遍历运算

    18724 二叉树的遍历运算 Description 二叉树的三种遍历都可以通过递归实现 如果我们知道一棵二叉树的先序和中序序列 可以用递归的方法求后序遍历序列 输入格式 两行 第一行一个字符串 表示树的先序遍历 第二行一个字符串 表示树的
  • PC机(笔记本)安装Linux系统

    五年前买的联想ThinkPad E531 配置非常低非常低 实在是卡的不行 做个word都想砸了它的冲动 最近想开始学习Linux 发现好多建议初学者在Windows下装虚拟机 这样虽好 但感觉好麻烦 简单粗暴点 直接装个Linux系统 1
  • 管理端-角色设置

    本文是关于无纸化会议系统管理端角色设置的操作 本界面使用html css js进行开发 使用Vue框架和ElementUI进行辅助开发 管理员上传完文件之后 进入到角色设置界面 角色设置界面主要是给参加会议的每个角色设置文件权限以及分配会议
  • 人工智能环境搭建

    前言 2016年 人工智能自AlphaGo战胜世界著名围棋九段选手李世石后大火 人类首次感受到人工智能的强大和前所未有的危机 各大IT企业纷纷布局人工智能 准备开启新一轮的产业革命 本文就来讲一讲人工智能开发环境的搭建 即Ubuntu的Li
  • Object.hasOwn 低版本浏览器兼容性问题解决

    使用 hasOwn 去测试属性是否存在 报错如下 原因 hasOwn是es2022新语法 旧浏览器不支持 解决方案 使用Object hasOwnProperty 代替 Object prototype hasOwnProperty cal
  • 随机森林算法

    转载自 http www zilhua com 629 html 1 随机森林使用背景 1 1 随机森林定义 随机森林是一种比较新的机器学习模型 经典的机器学习模型是神经网络 有半个多世纪的历史了 神经网络预测精确 但是计算量很大 上世纪八