十大分类算法
- 1、引言
 - 2、分类算法总结
 - 2.1 逻辑回归
 - 2.1.1 核心原理
 - 2.1.2 算法公式
 - 2.1.3 代码实例
 
- 2.2 决策树
 - 2.2.1 核心原理
 - 2.2. 代码实例
 
- 2.3 随机森林
 - 2.3.1 核心原理
 - 2.3.2 代码实例
 
- 2.4 支持向量机
 - 2.4.1 核心原理
 - 2.4.2 算法公式
 - 2.4.3 代码实例
 
- 2.5 朴素贝叶斯
 - 2.5.1 核心原理
 - 2.5.2 算法公式
 - 2.5.3 代码实例
 
- 3、总结
 
1、引言
小屌丝:鱼哥,分类算法都有哪些?
 小鱼:也就那几种了
 小屌丝:哪几种啊?
 小鱼:逻辑归回、决策树、随机森林、支持向量机…你问这个干嘛
 小屌丝:我想捋一捋,哪些是分类算法
 小鱼:我在【机器学习&深度学习】专栏已经写过了啊
 小屌丝:那不是一篇只能学习一个技能嘛
 小鱼:那你想咋的?
 小屌丝:我想一篇学习多个技能。
 小鱼:我… 的乖乖, 你真是个…~~
 
小屌丝: 别这么夸,我会不好意思的
 小鱼:… 算了,我还是整理一下思路,写文章吧
 小屌丝:可以可以。
2、分类算法总结
2.1 逻辑回归
2.1.1 核心原理
逻辑回归是用于二分类问题的统计方法,它通过将数据输入的线性组合通过逻辑函数(通常是Sigmoid函数)映射到0和1之间,从而预测概率。
2.1.2 算法公式
逻辑回归的核心公式为  
     
      
       
       
         P 
        
       
         ( 
        
       
         Y 
        
       
         = 
        
       
         1 
        
       
         ) 
        
       
         = 
        
        
        
          1 
         
         
         
           1 
          
         
           + 
          
          
          
            e 
           
           
           
             − 
            
           
             ( 
            
            
            
              β 
             
            
              0 
             
            
           
             + 
            
            
            
              β 
             
            
              1 
             
            
            
            
              X 
             
            
              1 
             
            
           
             + 
            
           
             . 
            
           
             . 
            
           
             . 
            
           
             + 
            
            
            
              β 
             
            
              n 
             
            
            
            
              X 
             
            
              n 
             
            
           
             ) 
            
           
          
         
        
       
      
        P(Y=1) = \frac{1}{1 + e^{-(\beta_0 + \beta_1X_1 + ... + \beta_nX_n)}} 
       
      
    P(Y=1)=1+e−(β0+β1X1+...+βnXn)1,
 其中 
     
      
       
       
         P 
        
       
         ( 
        
       
         Y 
        
       
         = 
        
       
         1 
        
       
         ) 
        
       
      
        P(Y=1) 
       
      
    P(Y=1)是给定X时Y=1的概率。
敲黑板:
详细内容可以参照小鱼的专篇:
- 《【机器学习】有监督学习算法之:逻辑回归》
 - 《【机器学习】一文掌握逻辑回归全部核心点(上)。》
 - 《【机器学习】一文掌握逻辑回归全部核心点(下)。》
 
2.1.3 代码实例
代码实例
# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJ
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 创建逻辑回归模型并训练
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# 进行预测
predictions = model.predict(X_test)
print(predictions)
 

2.2 决策树
2.2.1 核心原理
决策树通过递归地选择最优特征,并根据该特征的不同取值对数据进行分割,每个分割为一个树的分支,直到满足停止条件。
敲黑板:
详细内容可以参照小鱼的专篇:
- 《【机器学习】监督学习算法之:决策树》
 
2.2. 代码实例
代码实例
# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJ
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 创建决策树模型并训练
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
# 进行预测
predictions = model.predict(X_test)
print(predictions)
 

2.3 随机森林
2.3.1 核心原理
随机森林是一种集成学习方法,它构建多个决策树并将它们的预测结果进行投票或平均,以提高预测的准确性和稳定性。
敲黑板:
详细内容可以参照小鱼的专篇:
- 《【机器学习】必会算法之:随机森林》
 
2.3.2 代码实例
代码实例
# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJ
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 创建随机森林模型并训练
model = RandomForestClassifier()
model.fit(X_train, y_train)
# 进行预测
predictions = model.predict(X_test)
print(predictions)
 

2.4 支持向量机
2.4.1 核心原理
SVM通过找到一个超平面来最大化不同类别之间的边界距离,以达到分类目的。
 对于线性不可分的数据,SVM使用核技巧映射到更高维度空间中实现分离。
敲黑板:
详细内容可以参照小鱼的专篇:
- 《【机器学习】有监督学习算法之:支持向量机》
 
2.4.2 算法公式
SVM的目标是最小化 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ξ i ||w||^2 + C\sum_{i=1}^{n}\xi_i ∣∣w∣∣2+C∑i=1nξi,其中C是正则化参数, ξ i \xi_i ξi是松弛变量。
2.4.3 代码实例
代码实例
# -*- coding:utf-8 -*-
# @Time   : 2024-04-03
# @Author : Carl_DJ
from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 创建SVM模型并训练
model = SVC()
model.fit(X_train, y_train)
# 进行预测
predictions = model.predict(X_test)
print(predictions)
 

2.5 朴素贝叶斯
2.5.1 核心原理
朴素贝叶斯基于贝叶斯定理,假设特征之间相互独立。
 它通过计算给定特征下每个类别的条件概率来进行分类。
2.5.2 算法公式
P ( Y ∣ X ) = P ( X ∣ Y ) P ( Y ) P ( X ) P(Y|X) = \frac{P(X|Y)P(Y)}{P(X)} P(Y∣X)=P(X)P(X∣Y)P(Y),其中 P ( Y ∣ X ) P(Y|X) P(Y∣X)是给定特征X下类别Y的条件概率。
2.5.3 代码实例
# -*- coding:utf-8 -*-
# @Time   : 2024-01-21
# @Author : Carl_DJ
from sklearn.naive_bayes import GaussianNB
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 创建朴素贝叶斯模型并训练
model = GaussianNB()
model.fit(X_train, y_train)
# 进行预测
predictions = model.predict(X_test)
print(predictions)
 

3、总结
以上介绍的五种机器学习分类算法各有特点和应用场景,如:
- 逻辑回归和朴素贝叶斯适用于小规模数据集,
 - 决策树和随机森林适用于处理复杂的非线性关系,
 - SVM适用于高维数据的分类问题。
 
选择合适的算法取决于具体问题、数据集的特性以及预期的性能要求。
掌握这些算法的原理和使用方法,可以有效提升机器学习项目的开发效率和效果。
敲黑板:
另一篇,则点击文字即可到达:《【机器学习】一文掌握机器学习十大分类算法(下)。》
我是小鱼:
- CSDN 博客专家;
 - 阿里云 专家博主;
 - 51CTO博客专家;
 - 企业认证金牌面试官;
 - 多个名企认证&特邀讲师等;
 - 名企签约职场面试培训、职场规划师;
 - 多个国内主流技术社区的认证专家博主;
 - 多款主流产品(阿里云等)测评一、二等奖获得者;
 
关注小鱼,学习【机器学习】&【深度学习】领域的知识。


















