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

简介: 机器学习(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')#线性回归模型进行保存
目录
相关文章
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的未来:AI与机器学习的融合
【9月更文挑战第29天】在软件测试领域,自动化测试一直是提高测试效率和质量的关键。随着人工智能(AI)和机器学习(ML)技术的飞速发展,它们正逐步渗透到自动化测试中,预示着一场测试革命的来临。本文将探讨AI和ML如何重塑自动化测试的未来,通过具体案例展示这些技术如何优化测试流程,提高测试覆盖率和准确性,以及它们对测试工程师角色的影响。
17 7
|
3天前
|
机器学习/深度学习 人工智能 数据挖掘
探索自动化测试的未来:AI与机器学习的融合
【9月更文挑战第29天】在软件测试领域,自动化测试一直是提高效率和准确性的关键。但随着技术的发展,特别是人工智能(AI)和机器学习(ML)的兴起,我们见证了一个新时代的到来——自动化测试的未来正逐渐被重新定义。本文将探讨AI和ML如何改变自动化测试的面貌,从智能测试脚本的生成到测试结果的深度分析,我们将一探究竟这些前沿技术是如何使测试流程更加智能化、高效化,并预测它们将如何塑造软件测试的未来趋势。
|
9天前
|
机器学习/深度学习 人工智能 自动驾驶
揭秘AI的魔法:机器学习在图像识别中的应用
【9月更文挑战第24天】当AI技术遇到图像识别,就像是打开了新世界的大门。本文将深入浅出地介绍机器学习在图像识别领域的应用,通过实例和代码展示如何让机器“看懂”图片。让我们一起探索AI的魔法,开启一段科技与创新的旅程!
|
17天前
|
机器学习/深度学习 人工智能 测试技术
自动化测试的未来:AI与机器学习的融合之路
【9月更文挑战第15天】在软件测试领域,自动化一直被视为提高效率和精确度的关键。随着人工智能(AI)和机器学习(ML)技术的不断进步,它们已经开始改变自动化测试的面貌。本文将探讨AI和ML如何赋能自动化测试,提升测试用例的智能生成、优化测试流程,并预测未来趋势。我们将通过实际代码示例来揭示这些技术如何被集成到现有的测试框架中,以及开发人员如何利用它们来提高软件质量。
50 15
|
11天前
|
机器学习/深度学习 人工智能 算法
人工智能与命运的交织:从机器学习到人生选择
【9月更文挑战第21天】本文将探讨人工智能(AI)如何在我们的生活中扮演着越来越重要的角色,以及它如何影响我们的决策和命运。我们将从AI的基本概念出发,逐步深入到机器学习的核心原理,最后讨论AI如何帮助我们在复杂的人生道路上做出更明智的选择。通过简单易懂的语言和实际代码示例,我们将揭示AI技术背后的奥秘,并展示如何将这些技术应用于日常生活中的实际问题解决。让我们一起探索这个充满无限可能的AI世界,发现它如何塑造我们未来的命运。
24 1
|
14天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
20 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
21天前
|
机器学习/深度学习 人工智能 算法
探索AI的奥秘:机器学习入门之旅
【8月更文挑战第43天】本文将带领读者开启一段奇妙的学习之旅,探索人工智能背后的神秘世界。我们将通过简单易懂的语言和生动的例子,了解机器学习的基本概念、算法和应用。无论你是初学者还是有一定基础的学习者,都能从中获得启发和收获。让我们一起踏上这段激动人心的学习之旅吧!
|
23天前
|
机器学习/深度学习 人工智能 算法
探索人工智能:机器学习的奥秘与应用
本文深入浅出地探讨了人工智能领域中的核心技术——机器学习,揭示了其背后的原理和广泛的实际应用。通过浅显易懂的语言和生动的例子,本文旨在为非专业读者打开一扇了解并利用机器学习的大门,同时激发对这一前沿技术的兴趣和思考。
30 1
|
25天前
|
机器学习/深度学习 人工智能 搜索推荐
如何让你的Uno Platform应用秒变AI大神?从零开始,轻松集成机器学习功能,让应用智能起来,用户惊呼太神奇!
【9月更文挑战第8天】随着技术的发展,人工智能与机器学习已融入日常生活,特别是在移动应用开发中。Uno Platform 是一个强大的框架,支持使用 C# 和 XAML 开发跨平台应用(涵盖 Windows、macOS、iOS、Android 和 Web)。本文探讨如何在 Uno Platform 中集成机器学习功能,通过示例代码展示从模型选择、训练到应用集成的全过程,并介绍如何利用 Onnx Runtime 等库实现在 Uno 平台上的模型运行,最终提升应用智能化水平和用户体验。
34 1
|
23天前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络入门到精通:Python带你搭建AI思维,解锁机器学习的无限可能
【9月更文挑战第10天】神经网络是开启人工智能大门的钥匙,不仅是一种技术,更是模仿人脑思考的奇迹。本文从基础概念入手,通过Python和TensorFlow搭建手写数字识别的神经网络,逐步解析数据加载、模型定义、训练及评估的全过程。随着学习深入,我们将探索深度神经网络、卷积神经网络等高级话题,并掌握优化模型性能的方法。通过不断实践,你将能构建自己的AI系统,解锁机器学习的无限潜能。
18 0
下一篇
无影云桌面