1、机器学习算法简介 ' J. m$ n: p% X5 U4 ^ ^机器学习算法是一种基于数据和经验的算法,通过对大量数据的学习和分析,自动发现数据中的模式、规律和关联,并利用这些模式和规律来进行预测、分类或优化等任务。机器学习算法的目标是从数据中提取有用的信息和知识,并将其应用于新的未知数据中。. E& D& Y" f; v. b; c
2 n* {9 J, { I% }. o7 r1 j9 Z
; b. _( S4 o+ _% z8 o$ G3 G1.1 机器学习算法包含的两个步骤 5 M" H4 ?, h3 A, B& Y机器学习算法通常包括两个主要步骤:训练和预测。在训练阶段,算法使用一部分已知数据(训练数据集)来学习模型或函数的参数,以使其能够对未知数据做出准确的预测或分类。在预测阶段,算法将学习到的模型应用于新的数据,通过模型对数据进行预测、分类或其他任务。8 t4 O5 Q- Z- M- c
. i. L1 d4 n+ X4 w( t) A7 X1.2 机器学习算法的分类1 _% {' N7 w1 D3 g V$ c
机器学习算法可以是基于统计学原理、优化方法、神经网络等等。根据学习的方式不同,机器学习算法可以分为监督学习、无监督学习和强化学习等几种类型。不同的机器学习算法适用于不同的问题和数据类型,选择合适的算法可以提高机器学习的任务效果。 3 X! ]6 j; V$ l3 N3 d- P/ [" ^9 f, o
监督学习算法:监督学习算法需要训练数据集中包含输入和对应的输出(或标签)信息。常用的监督学习算法包括:线性回归、逻辑回归、决策树、支持向量机、朴素贝叶斯、人工神经网络等。 . u- q2 d) ]0 S+ ~2 Z' f1 Y. p, @% j& i* X9 n) I
无监督学习算法:无监督学习算法不需要训练数据集中的输出信息,主要用于数据的聚类和降维等问题。常用的无监督学习算法包括:K均值聚类、层次聚类、主成分分析、关联规则挖掘等。 ! |+ n0 x* e( B f$ w1 W+ r2 H" a$ m# g
强化学习算法:强化学习算法通过与环境进行交互,试图找到最优策略来最大化奖励。常用的强化学习算法包括:Q学习、深度强化学习算法等。 1 m- e# ~* _' w ( r+ @7 [/ W% p2 [* [5 q; \4 x此外,还有一些常用的机器学习算法和技术,如集成学习、降维方法、深度学习、迁移学习、半监督学习等,它们通过不同的方式和建模方法来解决不同的问题。选择合适的机器学习算法需要考虑问题的性质、数据的特点、算法的可解释性和计算效率等因素。 + U l/ ~2 f4 f" V - B. V" j8 S/ e: d5 }2、线性回归算法, f* j. u8 J- H2 d
线性回归是一种统计方法,用于检查两个连续变量之间的关系:一个自变量和一个因变量。线性回归的目标是通过一组数据点找到最佳拟合线,然后可用于对未来的观察进行预测。; ^ ^# k, |/ }% x- Y
9 r4 y' t3 ]# g! n. S3 p+ |% z ; a/ w8 M2 j1 y简单线性回归模型的方程为:: \& C! `. m8 M1 h2 w- p/ h, J5 T7 ~( q
! z0 v* H5 }: E% Py = b 0 + b 1 ∗ x y = b0 + b1*x $ r8 t. |, k4 ?8 ty=b0+b1∗x. _* D% \( R. t. I. U+ J7 d8 l) \ G8 T0 a
) M! v8 v% }) w' J+ X% N其中 y 是因变量,x 是自变量,b0 是 y 截距(直线与 y 轴的交点),b1 是直线的斜率。斜率表示给定 x 变化时 y 的变化。4 f4 v0 @$ P* `+ R3 s) W
# X/ s* f @: x) K: ]) ~/ {为了确定最佳拟合线,我们使用最小二乘法,该方法找到使预测 y 值与实际 y 值之间的平方差之和最小化的线。线性回归也可以扩展到多个自变量,称为多元线性回归。多元线性回归模型的方程为:y = b 0 + b 1 x 1 + b 2 x 2 + … + b n ∗ x n y = b0 + b1x1 + b2x2 + … + bn*xny=b0+b1x1+b2x2+…+bn∗xn。其中 x1, x2, …, xn 是自变量,b1, b2, …, bn 是相应的系数。 8 W: D; c6 G i! g3 m& j' W3 e* s: Q" P' U7 Z( L# h
线性回归可用于简单线性回归和多元线性回归问题。系数 b0 和 b1, …, bn 使用最小二乘法估计。一旦估计了系数,它们就可以用于对因变量进行预测。线性回归可用于对未来进行预测,例如预测股票的价格或将出售的产品的单位数量。然而,线性回归是一种相对简单的方法,可能并不适合所有问题。它假设自变量和因变量之间的关系是线性的,但情况可能并非总是如此。此外,线性回归对异常值高度敏感,这意味着如果存在任何不遵循数据总体趋势的极值,将会显着影响模型的准确性。3 f. j, H0 o; V) w P A
$ O( r! P5 m/ H同方差性:误差项的方差在自变量的所有水平上都是恒定的。 ! {. t; [9 V+ ^7 R/ w! A$ O, I" U8 V& O% D
正态性:误差项呈正态分布。 + ?1 {6 u0 [1 E8 F. G! M% H' m+ i) g) k/ W2 x# |4 Y
无多重共线性:自变量彼此不高度相关。1 ?; u+ V3 E* D/ V H
" U/ a9 x5 f. r7 |, B0 A
无自相关:误差项与其自身不自相关。5 V% P! ?9 |% B; H6 [1 b
* j) p/ `+ `3 s; x8 J" K2.2 如何确定线性回归模型的拟合优度?4 X5 @2 T$ A. Y) A) I
有多种方法可以确定线性回归模型的拟合优度:* a! O1 p( k a, W/ `" }6 e
2 k" z3 V- F2 @- R9 CR 平方:R 平方是一种统计度量,表示因变量中的方差由模型中的自变量解释的比例。R 平方值为 1 表示模型解释了因变量中的所有方差,值为 0 表示模型没有解释任何方差。 - q% s. s9 N( A; S0 D& U+ g # B( Z; U9 T! r6 t4 o: ~调整 R 平方:调整 R 平方是 R 平方的修改版本,它考虑了模型中自变量的数量。在比较具有不同数量自变量的模型时,它可以更好地指示模型的拟合优度。) N+ j4 ]9 l/ B3 G# D" f
# m, ?& g- S( f2 A% D) Y' c' [均方根误差 (RMSE):RMSE 衡量预测值与实际值之间的差异。RMSE 较低表明模型与数据的拟合效果更好。( o3 P8 Z4 H! @4 P' m6 F
9 M" J! F% L+ l# r4 I# |6 L# x: ]平均绝对误差 (MAE):MAE 测量预测值与实际值之间的平均差异。MAE 越低表明模型与数据的拟合效果越好。! _4 A) {$ X: Y
X* V9 s" [9 I4 t8 I" F+ g. D, K- }7 @& R
3 t# G" J4 K# @+ ^. Y( L, ?2.3 如何处理线性回归中的异常值?: }( |6 ?) {& C; R
线性回归中的异常值可能会对模型的预测产生重大影响,因为它们可能会扭曲回归线。处理线性回归中的异常值有多种方法,包括以下几点:' l; `# n$ W. M' ^ b( ], p
, ?! g; H9 K" v删除异常值:一种选择是在训练模型之前简单地从数据集中删除异常值。然而,这可能会导致重要信息的丢失。 + ]5 r8 }2 r( @7 e0 l4 X% x* @/ L( Q, T2 K/ y0 M
转换数据:应用转换(例如记录数据日志)有助于减少异常值的影响。, ?3 o" Q4 P* B. Y- ^
1 @* U: X$ I0 R
使用稳健回归方法:稳健回归方法(例如 RANSAC 或 Theil-Sen)对异常值的敏感度低于传统线性回归。/ ]- y3 \8 r# ]# v0 R. w
% D3 ~0 y% m5 @; r- P+ W
使用正则化:正则化可以通过在成本函数中添加惩罚项来帮助防止由异常值引起的过度拟合。 / l$ V3 M# n6 O# c( x$ U1 W' C. `% Y. R; L0 ~
总之,采用什么方法将取决于特定的数据集和分析的目标。 : P2 k& z" F1 ^2 A: Q$ d( ^1 ?& x9 Y8 k
3、逻辑回归算法* a3 }& L( V; ]! j6 @
逻辑回归是一种统计方法,用于根据一个或多个自变量预测二元结果,例如成功或失败。它是机器学习中的一种流行技术,通常用于分类任务,例如确定电子邮件是否是垃圾邮件,或预测客户是否会流失。& a& O: C0 s" j' P" Z5 R
" k: _! D5 c6 }7 A) }- {8 ^9 f& @( F3 M0 ?8 d, s5 J1 |
3 Q( j( _+ c# V6 J. ?0 L
逻辑回归模型基于逻辑函数,逻辑函数是一个sigmoid函数,它将输入变量映射到 0 到 1 之间的概率。然后使用该概率对结果进行预测。& ~/ A' b3 I0 O) p9 |1 i
! S. `* \7 u' Q, Z K7 h逻辑回归模型由以下方程表示:/ a- H& c. @, o `2 o6 F
P, O2 P- P& g) Q% Q
P ( y = 1 ∣ x ) = 1 / ( 1 + e − ( b 0 + b 1 x 1 + b 2 x 2 + … + b n ∗ x n ) ) P(y=1|x) = 1/(1+e^-(b0 + b1x1 + b2x2 + … + bn*xn))/ R: t# C+ C" f0 Q
P(y=1∣x)=1/(1+e * S. d) h! k$ U% F5 H4 A- ^
− 9 n" I, \- y' J& v; R (b0+b1x1+b2x2+…+bn∗xn))2 T7 |1 i" f! X4 T, A
0 S0 p* J' Y' o( A. j9 U3 F其中 P(y=1|x) 是给定输入变量 x 时结果 y 为 1 的概率,b0 是截距,b1, b2, …, bn 是输入变量 x1, x2, … 的系数, xn。通过在数据集上训练模型并使用优化算法(例如梯度下降)来最小化成本函数(通常是对数损失)来确定系数。模型训练完成后,就可以通过输入新数据并计算结果为 1 的概率来进行预测。将结果分类为 1 或 0 的阈值通常设置为 0.5,但这可以根据情况进行调整具体任务以及误报和漏报之间所需的权衡。 * P* D' H" d5 w6 r9 m) P$ z% ^) r ! r! @) C' H- n0 A! K t3.1 什么是逻辑函数? + c, @! o( y6 b8 p4 g! U- r逻辑函数,也称为s i g m o i d sigmoidsigmoid函数,是一条 S 形曲线,将任何实数值映射到 0 到 1 之间的值。它的定义为f ( x ) = 1 / ( 1 + e − x ) f(x) = 1 / (1 + e^-x )f(x)=1/(1+e " w2 i S$ l( G5 c- B2 X% K. j
−' {, r' k( s! q4 u
x)其中 e 是自然对数的底。逻辑函数在逻辑回归中用于对二元结果的概率进行建模。 ; a5 D% l% m% L; e; C9 ~, F' q% Z, q, p) R$ P5 Y, }3 @3 l
5 R: i2 h0 |- i1 N9 @: O9 M2 U+ B, r. }& Z2 C+ F
3.2 逻辑回归可以用于多类分类吗?9 L7 m2 P* ]9 R6 B/ p+ l0 l" D
逻辑回归可用于多类分类,方法是为每个类创建单独的二元逻辑回归模型并选择预测概率最高的类。这被称为一对一或一对一的方法。或者,我们可以使用s o f t m a x softmaxsoftmax回归,它是逻辑回归的推广,可以直接处理多个类。6 K' R% e3 ^% o+ Y- m/ q! B% X
7 w+ v4 j/ W' a8 |
3.3 如何解释逻辑回归中的系数? " r% r. k& x$ Y0 D' Y! ]/ D逻辑回归中的系数表示在保持所有其他预测变量不变的情况下,预测变量发生一个单位变化时结果的对数几率的变化。优势比可用于解释系数的大小。优势比大于 1 表示预测变量增加一个单位会增加结果的可能性,而优势比小于 1 表示预测变量增加一个单位会降低结果的可能性。 - d1 v7 p! W" ~' [6 ?* l8 c" q5 W, W1 t" m G5 v
4、支持向量机(SVM)算法 6 ]! Q9 ~) A# f- m支持向量机 (SVM) 是一种监督学习算法,可用于分类或回归问题。SVM 背后的主要思想是通过最大化间隔(边界与每个类最近的数据点之间的距离)来找到分隔数据中不同类的边界。这些最接近的数据点称为支持向量。 ! Y5 |2 w& x$ G1 @7 T1 H$ N: ^$ n |# s3 L7 T' b7 |, P, @ s
9 o) X2 S% g4 s2 o
当数据不可线性分离(这意味着数据不能用直线分离)时,SVM 特别有用。在这些情况下,SVM 可以使用称为核技巧的技术将数据转换为更高维的空间,其中可以找到非线性边界。SVM 中使用的一些常见核函数包括多项式、径向基函数 (RBF) 和s i g m o i d sigmoidsigmoid。 , D6 T8 I X+ K: ?9 E$ r9 G1 Z) a0 o
SVM 的主要优点之一是它们在高维空间中非常有效,并且即使在特征数量大于样本数量时也具有良好的性能。此外,SVM 内存效率高,因为它们只需要存储支持向量,而不是整个数据集。另一方面,SVM 对核函数和算法参数的选择很敏感。还需要注意的是,SVM 不适合大型数据集,因为训练时间可能相当长。总之,支持向量机(SVM)是一种强大的监督学习算法,可用于分类和回归问题,特别是当数据不可线性分离时。该算法以其在高维空间中的良好性能以及发现非线性边界的能力而闻名。然而,它对核函数和参数的选择很敏感,也不适合大型数据集。 ; u; m, ]+ _* O: a4 C5 c7 F J x- l' h/ m2 P" Y, M( @- }
4.1 优点 / B8 Q. l* f5 V2 X. ~在高维空间中有效:即使当特征数量大于样本数量时,SVM 也具有良好的性能。' F- E: f' U! A- G7 N
# i V5 p* {" g# K' y' I& G# P内存效率高:SVM 只需要存储支持向量,而不需要存储整个数据集,因此内存效率高。1 ~, b" g+ e8 `! c0 U6 w) `
: U V. A5 X6 O+ c
通用性:SVM 可用于分类和回归问题,并且可以使用核技巧处理非线性可分离数据。- Z/ `& ^$ Z8 Z' g* f' m
1 ~% x, b; I4 A' @4 a2 d& h
对噪声和异常值具有鲁棒性:SVM 对数据中的噪声和异常值具有鲁棒性,因为它们仅依赖于支持向量。/ ]/ C* [8 J0 Z/ y, e* N" z
" x" F% I# n& R8 {* w1 Z) {
4.2 缺点 ( J8 n$ Z7 B. |% _- q& B2 W对核函数和参数的选择敏感:SVM 的性能高度依赖于核函数的选择和算法参数。 2 B1 m0 w$ j, G& o, U ( Y ?+ a+ e, ^; V D6 d不适合大型数据集:对于大型数据集,SVM 的训练时间可能会相当长。 4 B2 Z$ j: Y5 e. F* p1 K( d5 d9 ^ }5 a6 {9 t* ~
解释结果困难:解释 SVM 的结果可能很困难,特别是在使用非线性核时。 * {/ c. j0 T: N: n4 H0 U 8 N5 s- J* l" A+ ^& k: k3 T, |& d5 |不适用于重叠类:当类有明显重叠时,SVM 可能会遇到困难。 G* E A) o( [+ {9 j) k- R3 ^ q / v* Z( S! n" u) }总之,SVM 是一种强大且通用的机器学习算法,可用于分类和回归问题,特别是当数据不可线性分离时。然而,它们可能对核函数和参数的选择敏感,不适合大型数据集,并且难以解释结果。 7 p5 d8 m, O. k; ?$ ^; I: T& z2 O# l7 p$ ^9 o7 w& w9 j