万字长文!机器学习十大算法全解析,一文掌握AI核心奥秘!
大家好,今天我们来讲讲机器学习中经典的十大算法,包括原理、优缺点、代码等等,那下面我们就一起来看看吧
1 线性回归
原理:线性回归是一种预测数值型数据的监督学习算法。它通过拟合最佳直线来建立自变量和因变量的关系。这条最佳直线叫做回归线,并且用 Y = a * X + b 这条线性等式来表示。
优点:
模型简单,容易实现
许多非线性模型的基础
机器学习的基石
缺点:
对于非线性数据或者数据特征间具有相关性多项式回归难以建模
难以很好地表达高度复杂的数据
适用场景:适用于预测数值型数据的监督学习算法,适用于线性可分和特征空间不太大的情况。
代码展示:
from sklearn.linear_model import LinearRegressionimport numpy as np
# 创建数据集X = np.array([[1], [2], [3], [4], [5]])y = np.array([1, 2, 1.3, 3.75, 2.25])
# 创建线性回归模型实例lin_reg = LinearRegression()
# 训练模型lin_reg.fit(X, y)
# 预测y_pred = lin_reg.predict(X)
2 K近邻算法(KNN)
原理:KNN算法是一种基于实例的学习,或者说是懒惰学习。它的核心思想是在预测新数据的类别时,不是通过训练学习输入数据到输出数据的映射关系,而是直接在分类时,将该数据与训练数据进行对比,找出与之最为相似的K个训练实例,然后根据这些实例的标签决定新数据的标签。
优点:
理论成熟,思想简单
可用于非线性
准确度高
对异常值不敏感
缺点:
计算量大
样本不均衡的问题
需要大量的内存
适用场景:适用于分类和回归问题,特别适合于多分类问题,适合对稀有事件进行分类。
代码展示:
from sklearn.neighbors import KNeighborsClassifierfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_split
# 加载数据集iris = load_iris()X, y = iris.data, iris.target
# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建KNN分类器实例knn = KNeighborsClassifier(n_neighbors=3)
# 训练模型knn.fit(X_train, y_train)
# 预测测试集y_pred = knn.predict(X_test)
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
3 朴素贝叶斯
原理:朴素贝叶斯是一种基于概率理论的简单分类器,它假设预测变量之间相互独立。
优点:
朴素贝叶斯起源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率
对小规模的数据表现很好,能进行多分类
对缺失值不敏感,算法简单
缺点:
需要计算先验概率
对特征间强相关的模型分类效果不好
适用场景:适用于文本分类、情感分析、疾病诊断辅助等。
代码展示:
from sklearn.naive_bayes import GaussianNB
# 创建朴素贝叶斯分类器实例nb = GaussianNB()
# 训练模型(使用上面的X_train, y_train)nb.fit(X_train, y_train)
# 预测(使用上面的X_test)y_pred = nb.predict(X_test)
4 逻辑回归
原理:逻辑回归是一种用于二分类问题的监督学习算法,它将数据映射到logit函数来预测事件发生的概率。因此,它也被称为logit回归
优点:
实现简单,广泛应用于工业上
分类时计算量非常小,速度很快,存储资源少
可观测样本的概率分数
缺点:
特征空间很大时,性能不是很好
容易前拟合,一般准确度不高
只能处理二分类线性可分问题
适用场景:最常用于解决二分类问题,但也可以扩展到多分类问题。可以用于预测某一事件发生的概率。
代码展示:
from sklearn.linear_model import LogisticRegressionfrom sklearn.datasets import make_classification
# 创建数据集X, y = make_classification(n_samples=100, n_features=2, n_classes=2, random_state=42)
# 创建逻辑回归模型实例log_reg = LogisticRegression()
# 训练模型log_reg.fit(X, y)
# 预测y_pred = log_reg.predict(X)
5 支持向量机
原理:支持向量机是一种强大的分类器,它的基本思想是在特征空间中寻找一个最优的超平面,以此来区分不同的类别。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。
优点:
可以解决高维问题,即大型特征空间;
能够处理非线性特征的相互作用;
无需依赖整个数据。
缺点:
当观测样本很多的时候,效率不是很高;
对非线性问题没有通用的解决方案,很难找到一个合适的核函数;
对缺失数据敏感。
适用场景:适用于分类和回归分析,特别适用于非线性问题和高维数据。
代码展示:
from sklearn.svm import SVC
# 创建SVM分类器实例svm_clf = SVC(kernel='linear')
# 训练模型(使用上面的X_train, y_train)svm_clf.fit(X_train, y_train)
# 预测(使用上面的X_test)y_pred = svm_clf.predict(X_test)
6 决策树(DT)
原理:决策树是一种树形结构,用于分类和回归的决策规则。它通过学习简单的决策规则来预测目标变量的值。
优点:
计算简单,易于理解,可解释行强
比较适合有缺失属性的样本
能够处理不相关的特征
在短时间内可以对大型数据做出好的结果
缺点:
容易发生过拟合
易被攻击
忽略了数据之间的相关性
各个类别样本数量不一致的数据,信息增益偏向具有更多数值的特征
适用场景:适用于分类和回归问题,可以处理高维数据,不需要进行特征选择,可以处理缺失值和异常值。
代码展示:
from sklearn.tree import DecisionTreeClassifier
# 创建决策树分类器实例dec_tree = DecisionTreeClassifier()
# 训练模型(使用上面的X_train, y_train)dec_tree.fit(X_train, y_train)
# 预测(使用上面的X_test)y_pred = dec_tree.predict(X_test)
7 随机森林
原理:随机森林是一种集成学习方法,它通过构建多个决策树并输出平均结果来提高预测准确性。
优点:
可以解决分类和回归问题
抗过拟合能力强
稳定性强
缺点:
模型复杂
计算成本高
计算时间长
适用场景:适用于分类和回归问题,可以处理高维数据,不需要进行特征选择,可以处理缺失值和异常值。
代码展示:
from sklearn.ensemble import RandomForestClassifier
# 创建随机森林分类器实例rand_forest = RandomForestClassifier(n_estimators=100)
# 训练模型(使用上面的X_train, y_train)rand_forest.fit(X_train, y_train)
# 预测(使用上面的X_test)y_pred = rand_forest.predict(X_test)
8 GBDT(梯度提升)
原理:计算树的伪残差,通过前一棵树的残差拟合下一棵树,最终进行残差的加和。
优点:
预测精度高
适合低维数据
能处理非线性数据
可以灵活处理各种类型的数据,包括连续值和离散值
在相对少的调参时间情况下,预测的准备率也可以比较高
缺点:
由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行
如果数据维度较高时会加大算法的计算复杂度
适用场景:不知道用什么模型时候可以使用的回归/分类模型
代码展示:
from sklearn.ensemble import GradientBoostingClassifier
# 创建梯度提升分类器实例gb_clf = GradientBoostingClassifier(n_estimators=100)
# 训练模型(使用上面的X_train, y_train)gb_clf.fit(X_train, y_train)
# 预测(使用上面的X_test)y_pred = gb_clf.predict(X_test)
9 XGBoost
原理:通过计算伪残差,计算加和(同GBDT)。
对比GBDT的改进(优点继承):
传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑回归(分类问题)或者线性回归(回归问题)
传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数(能自定义损失函数)
gboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。正则项降低了模型的复杂度,使学习出来的模型更加简单,防止过拟合,这也是xgboost优于传统GBDT的一个特性
适用场景:各种比赛的大杀器,不知道用什么模型时候可以使用的回归/分类模型
代码:
import xgboost as xgbfrom sklearn.datasets import load_breast_cancerfrom sklearn.model_selection import train_test_split
# Load the breast cancer datasetX, y = load_breast_cancer(return_X_y=True)
# Split the data into training and testing setsX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create and train the modelmodel = xgb.XGBClassifier(random_state=42)model.fit(X_train, y_train)
# Make predictionsy_pred = model.predict(X_test)
print("Predictions:", y_pred)
10 K-Means(K-均值)
原理:物以类聚,人以群分
优点:
原理简单,容易实现
内存占用小
缺点:
K值需要预先给定,属于预先知识,很多情况下K值的估计是非常困难的,对于像计算全部微信用 户的交往圈这样的场景就完全的没办法用K-Means进行
K-Means算法对初始选取的聚类中心点是敏感的,不同的随机种子点得到的聚类结果完全不同(K-Means++)
K均值算法并不适合所有的数据类型
对离群点的数据进行聚类时,K均值也有问题,这种情况下,离群点检测和删除有很大的帮助
适用场景:没有明确标签的情况下,我们经常用聚类模型来进行操作。
代码展示:
from sklearn.cluster import KMeans
# 创建K-均值聚类实例kmeans = KMeans(n_clusters=3)
# 训练模型(使用上面的X_train)kmeans.fit(X_train)
# 预测y_pred = kmeans.predict(X_train)
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
一、大模型风口已至:月薪30K+的AI岗正在批量诞生
2025年大模型应用呈现爆发式增长,根据工信部最新数据:
国内大模型相关岗位缺口达47万
初级工程师平均薪资28K
70%企业存在"能用模型不会调优"的痛点
真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!
二、如何学习大模型 AI ?
🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工
📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
* 大模型 AI 能干什么?
* 大模型是怎样获得「智能」的?
* 用好 AI 的核心心法
* 大模型应用业务架构
* 大模型应用技术架构
* 代码示例:向 GPT-3.5 灌入新知识
* 提示工程的意义和核心思想
* Prompt 典型构成
* 指令调优方法论
* 思维链和思维树
* Prompt 攻击和防范
* …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
* 为什么要做 RAG
* 搭建一个简单的 ChatPDF
* 检索的基础概念
* 什么是向量表示(Embeddings)
* 向量数据库与向量检索
* 基于向量检索的 RAG
* 搭建 RAG 系统的扩展知识
* 混合检索与 RAG-Fusion 简介
* 向量模型本地部署
* …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
* 为什么要做 RAG
* 什么是模型
* 什么是模型训练
* 求解器 & 损失函数简介
* 小实验2:手写一个简单的神经网络并训练它
* 什么是训练/预训练/微调/轻量化微调
* Transformer结构简介
* 轻量化微调
* 实验数据集的构建
* …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
* 硬件选型
* 带你了解全球大模型
* 使用国产大模型服务
* 搭建 OpenAI 代理
* 热身:基于阿里云 PAI 部署 Stable Diffusion
* 在本地计算机运行大模型
* 大模型的私有化部署
* 基于 vLLM 部署大模型
* 案例:如何优雅地在阿里云私有部署开源大模型
* 部署一套开源 LLM 项目
* 内容安全
* 互联网信息服务算法备案
* …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
C语言程序的错误和警告
用什么可以查询网黑数据库