一、机器学习算法简介. F. B. }: j' q0 U
机器学习算法是一种基于数据和经验的算法,通过对大量数据的学习和分析,自动发现数据中的模式、规律和关联,并利用这些模式和规律来进行预测、分类或优化等任务。机器学习算法的目标是从数据中提取有用的信息和知识,并将其应用于新的未知数据中。" r; S8 g; c) e' ?& t
2 A; Y: n0 R8 T9 \# ]' _4 V9 A* B4 ~) ?3 M1 a6 D
1.1 机器学习算法包含的两个步骤# q( w$ Y! g8 k/ l0 r% |1 }
机器学习算法通常包括两个主要步骤:训练和预测。在训练阶段,算法使用一部分已知数据(训练数据集)来学习模型或函数的参数,以使其能够对未知数据做出准确的预测或分类。在预测阶段,算法将学习到的模型应用于新的数据,通过模型对数据进行预测、分类或其他任务。0 k' y3 h- f! c5 e) r; {, V8 _
8 v: w+ X j0 C( c
1.2 机器学习算法的分类8 a2 B2 D& g7 d+ u: t: {
机器学习算法可以是基于统计学原理、优化方法、神经网络等等。根据学习的方式不同,机器学习算法可以分为监督学习、无监督学习和强化学习等几种类型。不同的机器学习算法适用于不同的问题和数据类型,选择合适的算法可以提高机器学习的任务效果。$ S2 H. [& z# o! f9 }5 w/ N9 f, L1 f
2 z; _; @$ h( |* b8 I
监督学习算法:监督学习算法需要训练数据集中包含输入和对应的输出(或标签)信息。常用的监督学习算法包括:线性回归、逻辑回归、决策树、支持向量机、朴素贝叶斯、人工神经网络等。 [$ \1 C% v/ `1 p5 H5 n0 `
6 ^. K: c; X+ J* _2 n( q& i; G: ~$ g5 K
无监督学习算法:无监督学习算法不需要训练数据集中的输出信息,主要用于数据的聚类和降维等问题。常用的无监督学习算法包括:K均值聚类、层次聚类、主成分分析、关联规则挖掘等。 $ S& ~* q" G- y9 U% A) m, t) `. `, q9 g( y6 @# c
强化学习算法:强化学习算法通过与环境进行交互,试图找到最优策略来最大化奖励。常用的强化学习算法包括:Q学习、深度强化学习算法等。. j5 \- H9 m3 w
1 F/ x) J# r; V9 |: C
此外,还有一些常用的机器学习算法和技术,如集成学习、降维方法、深度学习、迁移学习、半监督学习等,它们通过不同的方式和建模方法来解决不同的问题。选择合适的机器学习算法需要考虑问题的性质、数据的特点、算法的可解释性和计算效率等因素。 ) l U7 X" I4 F, C3 L; G4 S5 f 2 b' L. W1 y9 W( h) k二、决策树 " u2 n9 s/ h! t. s3 u6 ^8 d决策树是一种用于分类和回归任务的机器学习算法。它们是决策的强大工具,可用于对变量之间的复杂关系进行建模。 ' d, ^/ |; ]1 J7 v $ H) B; E2 L) @2 X$ X4 B决策树是一种树状结构,每个内部节点代表一个决策点,每个叶节点代表最终结果或预测。该树是通过根据输入特征的值递归地将数据分割成子集来构建的。目标是找到最大化不同类别或目标值之间分离的分割。 & p+ p# X& I0 z5 ]. @) [ - }2 G1 Q1 S1 \* i& {3 U7 I) @+ U* u5 P0 `9 r" f
5 c4 Z) _: U+ o2 g
决策树的主要优点之一是它们易于理解和解释。树形结构可以清晰地可视化决策过程,并且可以轻松评估每个特征的重要性。构建决策树的过程从选择根节点开始,根节点是最好地将数据分为不同类别或目标值的特征。然后根据该特征的值将数据分成子集,并对每个子集重复该过程,直到满足停止标准。停止标准可以基于子集中的样本数量、子集的纯度或树的深度。 # [! F) H/ P/ E2 w( v" G" A8 S! Z( p, v1 e- P' l) Q, C
- K; u5 ^" H6 e' M% G" j' S: d
决策树的主要缺点之一是它们很容易过度拟合数据,特别是当树很深并且有很多叶子时。当树过于复杂并且适合数据中的噪声而不是底层模式时,就会发生过度拟合。这可能会导致对新的、未见过的数据的泛化性能较差。为了防止过度拟合,可以使用剪枝、正则化和交叉验证等技术。决策树的另一个问题是它们对输入特征的顺序敏感。不同的特征顺序会导致不同的树结构,最终的树可能不是最优的。为了克服这个问题,可以使用随机森林和梯度提升等技术。 0 S' l" R# k4 G 2 m6 d5 o* A( l) t5 j |9 i2.1 优点+ Y9 O4 {2 V; k1 Z. Y
易于理解和解释:树形结构可以清晰地可视化决策过程,并且可以轻松评估每个特征的重要性。 * L- I; M1 O, P. h ( T y, t$ M; c: w处理数值和分类数据:决策树可以处理数值和分类数据,使其成为适用于各种应用的多功能工具。 - I6 [4 ]5 P. X 0 n2 d9 Z" e% N/ E) a e, }' ^高精度:决策树可以在很多数据集上实现高精度,特别是当树不深时。3 r* E. c/ X4 u" u
8 [# p9 H+ ?4 |6 T* j, R
对异常值具有鲁棒性:决策树不受异常值的影响,这使得它们适合有噪声的数据集。( h7 t" l. d R1 r9 Y3 z2 V
0 o3 M# O. E/ I7 }9 l8 B. L既可用于分类任务,又可用于回归任务。 7 d% N; }4 n$ c' c' L8 y % ] t, ?" j1 x2.2 缺点 # Q- X- |1 [6 G! ^过度拟合:决策树很容易对数据过度拟合,特别是当树很深并且有很多叶子时。 $ E( @6 f; O$ @8 Y6 H0 t6 L* B1 x- h" k5 f$ k2 i' n
对输入特征的顺序敏感:不同的特征顺序会导致不同的树结构,最终的树可能不是最优的。- R6 {( B3 x2 B* W" T
0 L7 }2 X* B3 D
不稳定:决策树对数据的微小变化很敏感,这会导致不同的树结构和不同的预测。 % b% Q& n. @) j$ P 8 i7 \* f8 R4 t$ ]! O: Y偏差:决策树可能会偏向于具有更多级别的特征或具有多个级别的分类变量,这可能导致预测不准确。2 a- q( ?. F3 X: t: _ _( Q; J
% e" Y& M1 M& R$ c& n3 V不适合连续变量:决策树不适合连续变量,如果变量是连续的,则可能导致将变量分成许多级别,这将使树变得复杂并导致过度拟合。 ! \. J1 C8 z3 ]! Y/ B( m* T& s/ Z( h- O8 t
三、随机森林# x" T6 I0 U8 F. u) K" N
随机森林是一种集成机器学习算法,可用于分类和回归任务。它是多个决策树的组合,其中每棵树都是使用数据的随机子集和特征的随机子集来生长的。最终的预测是通过对森林中所有树木的预测进行平均来做出的。6 M/ C8 r. t6 N& k
! p3 U# B% G M4 D; e- a
使用多个决策树背后的想法是,虽然单个决策树可能容易过度拟合,但决策树的集合或森林可以降低过度拟合的风险并提高模型的整体准确性。构建随机森林的过程首先使用一种称为引导的技术创建多个决策树。Bootstrapping 是一种统计方法,涉及从原始数据集中随机选择数据点并进行替换。这会创建多个数据集,每个数据集都有一组不同的数据点,然后用于训练单个决策树。随机森林的另一个重要方面是为每棵树使用随机的特征子集。这称为随机子空间方法。这减少了森林中树木之间的相关性,进而提高了模型的整体性能。. t r$ f0 b! l! ]9 U1 X