【人工智能】机器学习介绍以及机器学习流程

简介: 机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及 概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。 研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技 能,重新组织已有的知识结构使之不断改善自身的性能。普遍认为,机器学习的处理系统和算法是主要通过找出数据里隐藏 的模式进而做出预测的识别模式,它是人工智能的一个重要子领域。

机器学习

机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及 概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。
研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技 能,重新组织已有的知识结构使之不断改善自身的性能。
普遍认为,机器学习的处理系统和算法是主要通过找出数据里隐藏 的模式进而做出预测的识别模式,它是人工智能的一个重要子领域。

机器学习分类

按照训练样本提供的信息以及反馈方式的不同,将机器学习算法分
为有监督学习和无监督学习。
有监督学习:训练数据集是有标签的;包括分类算法和回归算法。
无监督学习:训练数据集是完全没有标签的;包括聚类算法。

回归算法

回归实际上就是“最佳拟合;
回归算法(Regression),根据已有的数据拟合出一条最佳的直线、
曲线、超平面或函数等,用于预测其它数据的目标值。
回归算法最终预测出一个连续而具体的值。
常见的回归算法:线性回归、KNN回归、支持向量机回归、决策树回
归、随机森林回归。

分类算法

分类就是向事物分配标签;
分类算法(Classification),是求取一个从输入变量(特征)到离散
的输出变量(类别)之间的映射函数。
分类算法中算法(函数)的最终结果是一个离散的数据值。
常见的分类算法:KNN、逻辑回归、朴素贝叶斯、决策树、支持向量
机、随机森林等。

聚类算法

“物以类聚,人以群分”
聚类就是将数据集划分为互不相交的子集;
聚类算法(Clustering),是对大量未知标注的数据集,按数据的内
在相似性,将数据集划分为多个互不相交的子集,每个子集称为一个簇,
使簇内数据的相似度较大而簇间数据的相似度较小。
聚类算法属于无监督机器学习,只有数据x,没有标签y。
常见的聚类算法:k-Means、 spectral clustering、mean-shift等。
聚类的应用:数据分析、图像处理等。

数据

数据来源
用户访问行为数据
业务数据
外部第三方数据
学习过程中,使用公开的数据集进行开发。

数据清洗和转换

实际生产环境中机器学习比较耗时的一部分
大部分情况下 ,收集得到的数据需要经过预处理后才能够为算法所使用,
预处理的操作主要包括以下几个部分:
数据过滤
处理数据缺失
处理可能的异常、错误或者异常值
合并多个数据源数据
数据汇总

特征工程

大部分的机器学习模型所处理的都是 特征,特征通常是输入变量所对应
的可用于模型的数值表示。
特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习
算法上发挥更好的作用的过程。
特征工程会直接影响机器学习的效果。
特征工程包括:
特征提取
特征预处理
特征降维

特征提取

特征提取是将任意数据(如文本或图像)转换为可用于机器学习的数字
特征。
特征提取API

sklearn.feature_extraction

对字典数据进行特征提取

sklearn.feature_extraction.DictVectorizer(sparse=True,…)

对文本数据进行特征提取

sklearn.feature_extraction.text.CountVectorizer(stop_words=[])

特征预处理

特征预处理是通过一些转换函数将特征数据转换成更加适合算法模型特
征数据的过程。
数值型数据的无量纲化:
归一化
标准化
特征预处理API

sklearn.preprocessing

归一化

sklearn实现归一化API:

sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
MinMaxScalar.fit_transform(X)

X:numpy array格式的数据[n_samples,n_features]

返回值:转换后的形状相同的array

标准化

sklearn实现标准化API:

sklearn.preprocessing.StandardScaler( )
StandardScaler.fit_transform(X)

X:numpy array格式的数据[n_samples,n_features]
返回值:转换后的形状相同的array

特征降维

特征降维是指在某些限定条件下,降低特征个数,得到一组“不相关”
特征的过程。
特征降维的两种方式
特征选择
主成分分析

数据集划分

机器学习一般的数据集会划分为两个部分:
训练数据:用于训练,构建模型
测试数据:在模型检验时使用,用于评估模型是否有效
划分比例:
训练集:70% 80% 75%
测试集:30% 20% 30%
数据集划分api

sklearn.model_selection.train_test_split(arrays, *options)

分类模型评估

在这里插入图片描述

回归模型评估

在这里插入图片描述

聚类模型评估

轮廓系数 :from sklearn.metrics import silhouette_score,
Calinski-Harabasz Index :fromsklearn.metricsimportcalinski_harabasz_score
戴维森堡丁指数(DBI):from sklearn.metrics import davies_bouldin_score

模型保存

模型保存和加载
joblib
模型保存:

joblib.dump

模型加载:

joblib.load

为了更好的理解机器学习的工作流程,接下来看个案例

案例介绍

引入所需的库和数据集

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error,r2_score
from sklearn.linear_model import Lasso,Ridge,ElasticNet,BayesianRidge
from sklearn.neighbors import KNeighborsRegressor,RadiusNeighborsRegressor
from sklearn.svm import SVR
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
import joblib

1、加载数据集

data = load_boston()

2、数据集划分

train_x,test_x,train_y,test_y = train_test_split(data['data'],data['target'])

3、进行特征工程 (进行数据标准化)

std = StandardScaler()
train_x = std.fit_transform(train_x)
test_x = std.transform(test_x)

4、选择模型训练

# lr = LinearRegression()   # y = w x +b
# lr.fit(train_x,train_y)

# lr = KNeighborsRegressor()
# lr.fit(train_x,train_y)

# lr = RadiusNeighborsRegressor()
# lr.fit(train_x,train_y)

# lr = SVR()
# lr.fit(train_x,train_y)

# lr = DecisionTreeRegressor()
# lr.fit(train_x,train_y)

lr = RandomForestRegressor()
lr.fit(train_x,train_y)

5、模型评估

#训练集上的表现
error = mean_squared_error(train_y,lr.predict(train_x))
r2 = r2_score(train_y,lr.predict(train_x))
print("训练集上的表现误差:",error,"\nr2的值:",r2)
error = mean_squared_error(test_y,lr.predict(test_x))
r2 = r2_score(test_y,lr.predict(test_x))
print("测试集上的表现误差:",error,"\nr2的值:",r2)

# w = lr.coef_  #获取w
# b = lr.intercept_ #获取b
# print("线性回归的w",w)
# print("线性回归的b",b)

6.模型保存

joblib.dump(std,'std.pkl') #标准化的模型进行保存 
joblib.dump(lr,'lr.pkl')#线性回归模型进行保存
目录
相关文章
|
11月前
|
机器学习/深度学习 人工智能 供应链
从概念到商业价值:AI、机器学习与深度学习全景指南
在这个科技飞速发展的时代🚀,人工智能正以惊人的速度渗透到我们的生活和工作中👀。但面对铺天盖地的AI术语和概念,很多人感到困惑不已😣。"AI"、"机器学习"、"深度学习"和"神经网络"到底有什么区别?它们如何相互关联?如何利用这些技术提升工作效率和创造价值?
573 0
|
9月前
|
机器学习/深度学习 人工智能 监控
AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程
本系列文章深入讲解了从Seq2Seq、RNN到Transformer,再到GPT模型的关键技术原理与实现细节,帮助读者全面掌握Transformer及其在NLP中的应用。同时,通过一个房价预测的完整案例,介绍了算法工程师如何利用数据训练模型并解决实际问题,涵盖需求分析、数据收集、模型训练与部署等全流程。文章适合初学者和开发者学习AI基础与实战技能。
1068 25
AI 基础知识从0.1到0.2——用“房价预测”入门机器学习全流程
|
9月前
|
机器学习/深度学习 人工智能 运维
阿里云PAI人工智能平台介绍、优势及收费标准,手动整理
阿里云人工智能平台PAI是面向开发者和企业的机器学习与深度学习工程平台,提供数据标注、模型构建、训练、部署及推理优化等全链路服务。内置140+优化算法,支持PyTorch、TensorFlow等多种框架,具备高性能训练与推理能力,适用于自动驾驶、金融风控、智能推荐、智慧医疗等多个行业场景。PAI提供零代码开发、可视化建模、大模型一键部署等功能,助力企业快速构建AI应用。支持多种购买方式,如按量付费、预付费等,满足不同业务需求。
|
10月前
|
机器学习/深度学习 PyTorch API
昇腾AI4S图机器学习:DGL消息传递接口的PyG替换
DGL (Deep Graph Learning) 和 PyG (Pytorch Geometric) 是两个主流的图神经网络库,它们在API设计和底层实现上有一定差异,在不同场景下,研究人员会使用不同的依赖库,昇腾NPU对PyG图机器学习库的支持亲和度更高,因此有些时候需要做DGL接口的PyG替换。
|
10月前
|
机器学习/深度学习 PyTorch API
昇腾AI4S图机器学习:DGL图构建接口的PyG替换
本文探讨了在图神经网络中将DGL接口替换为PyG实现的方法,重点以RFdiffusion蛋白质设计模型中的SE3Transformer为例。SE3Transformer通过SE(3)等变性提取三维几何特征,其图构建部分依赖DGL接口。文章详细介绍了两个关键函数的替换:`make_full_graph` 和 `make_topk_graph`。前者构建完全连接图,后者生成k近邻图。通过PyG的高效实现(如`knn_graph`),我们简化了图结构创建过程,并调整边特征处理逻辑以兼容不同框架,从而更好地支持昇腾NPU等硬件环境。此方法为跨库迁移提供了实用参考。
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
442 6
|
人工智能 安全 测试技术
Burp Suite Professional 2025.3 发布,引入 Burp AI 通过人工智能增强安全测试工作流程
Burp Suite Professional 2025.3 发布,引入 Burp AI 通过人工智能增强安全测试工作流程
806 0
Burp Suite Professional 2025.3 发布,引入 Burp AI 通过人工智能增强安全测试工作流程
|
机器学习/深度学习 人工智能 自然语言处理
Java+机器学习基础:打造AI学习基础
随着人工智能(AI)技术的飞速发展,越来越多的开发者开始探索如何将AI技术应用到实际业务场景中。Java作为一种强大的编程语言,不仅在企业级应用开发中占据重要地位,在AI领域也展现出了巨大的潜力。本文将通过模拟一个AI应用,从背景历史、业务场景、优缺点、底层原理等方面,介绍如何使用Java结合机器学习技术来打造一个AI学习的基础Demo。
619 18
|
机器学习/深度学习 数据采集 人工智能
容器化机器学习流水线:构建可复用的AI工作流
本文介绍了如何构建容器化的机器学习流水线,以提高AI模型开发和部署的效率与可重复性。首先,我们探讨了机器学习流水线的概念及其优势,包括自动化任务、确保一致性、简化协作和实现CI/CD。接着,详细说明了使用Kubeflow Pipelines在Kubernetes上构建流水线的步骤,涵盖安装、定义流水线、构建组件镜像及上传运行。容器化流水线不仅提升了环境一致性和可移植性,还通过资源隔离和扩展性支持更大规模的数据处理。