机器学习-03-机器学习算法流程

总结

本系列是机器学习课程的第02篇,主要介绍机器学习中专家系统的应用介绍

本门课程的目标

完成一个特定行业的算法应用全过程:
在这里插入图片描述
定义问题(Problem Definition) -> 数据收集(Data Collection) -> 数据分割(Dataset Spit up) -> 模型训练(Model Training) -> 模型评估(Model Evaluation) -> 应用部署(System Deployment) -> 改变世界(Impact the world)!

作者:adi0229
链接:「ML笔记」- 机器学习生命周期(Machine Learning Lifecycle)

懂业务+会选择合适的算法+数据处理+算法训练+算法调优+算法融合
+算法评估+持续调优+工程化接口实现

机器学习算法流程

关于机器学习的定义,Tom Michael Mitchell的这段话被广泛引用:
对于某类任务T性能度量P,如果一个计算机程序在T上其性能P随着经验E而自我完善,那么我们称这个计算机程序从经验E中学习
在这里插入图片描述

机器学习流程

在这里插入图片描述
为了更好的理解机器到底是如何获得学习能力的,我们可以思考人类学习的过程,想象一个小孩子学习认知动物的过程,我们带小孩去公园。公园里有很多人在遛狗。简单起见,咱们先考虑二元分类例子。你告诉小孩哪些是狗。假设此时一只猫跑了过来,你告诉他,这个不是狗。久而久之,小孩就会产生认知模式。这个就是“学习”的过程。所形成的认知模式,就是“模型”。训练之后。这时,再跑过来一个动物时,你问小孩,这个是狗吧?他会回答,是/否。这个就叫“预测”。仔细思考小朋友认知事物的例子,我们发现在这个学习过程当中,我们可以把学习过程拆分为如下步骤

在这里插入图片描述
1.选择知识即小朋友选择认知动物外貌这样的一个知识,
2.选择学习方法即选择一个合适的方法去学习知识,在例子中我们是通过眼睛辨认这样的方法进行学习,
3学习或记忆,即反复对动物外面进行认知学习的这一过程,
4.运用,小孩进行大量认知记忆的练习后,可以将所知的认知对动物进行辨别,
5.评测学习效果,站在一个客观的角度对学习效果进行评测,
6.知识保存,通过大人的评测后,小孩就会将这个知识保存在自己的脑海中。这不就是一个人类典型的学习过程吗?那么基于这样的一个学习过程,我们是否可以将这个过程复制在机器上呢?其实我们已经这样做了,而构建机器学习的过程,即构建机器学习框架的步骤正和人类学习的步骤是一样的。

在这里插入图片描述
(1)在此,我们模仿人类学习的行为方式,将这样的行为方式复制于机器上,并且形成一一对应的关系,从而得到了机器学习的框架,我们仔细了解机器学习框架后会发现,机器学习的步骤是与人类学习行为的步骤一致的,可分为数据的加载,选择模型,模型的训练,模型的预测,模型的评测,模型的保存6个步骤,第一步数据的加载即为选择知识,表示的是我们希望计算机学习什么样的知识(数据),因为机器需要从过往经验中学习知识,因此我们第一步需要做的事就是为其提供可学习的数据。
(2)紧接着第二步我们需要为计算机选择一个学习的模型,即选择一个学习的方法使计算机依据模型进行学习。
(3)第三步模型的训练为为计算机根据设定的方法对数据进行反复训练的过程。
(4)第四步,预测,指计算机再进行大量数据认识的训练后,可以将所知的认知对新事物进行应用,即对未知数据的预测等。
(5)第五步评测,指的是一个客观的角度(测试指标)对计算机学习效果进行评测。
(6)最后是将学习过程进行保存,便于将来使用,通过这样的对应,我们可以发现,机器学习的思想并不复杂,仅仅是对人类在生活中学习成长的一个模拟。

在这里插入图片描述
那如何才能实现机器学习模型呢?sklearn是机器学习中一个常用的python第三方模块,自2007年发布以来,scikit-learn已经成为Python重要的机器学习库了。scikit-learn简称sklearn,支持包括分类、回归、降维和聚类四大机器学习算法。还包含了特征提取、数据处理和模型评估三大模块。sklearn是Scipy的扩展,建立在NumPy和matplotlib库的基础上。利用这几大模块的优势,可以大大提高机器学习的效率。sklearn拥有着完善的文档,上手容易,具有着丰富的API,在学术界颇受欢迎。sklearn已经封装了大量的机器学习算法,包括LIBSVM和LIBINEAR。同时sklearn内置了大量数据集,节省了获取和整理数据集的时间。

sklearn库的框架

train_x, train_y, test_x, test_y = getData()
model = somemodel()
model.fit(train_x,train_y)
predictions = model.predict(test_x)
score =score_function(test_y, predictions)
joblib.dump(model, 'filename.pkl') 
"""
构建一个机器学习框架似乎并不容易实现,好在我们的scikit-learn模块已经帮我们搭建好,
如上,这简单的六行代码显示了使用scikit-learn模块构建机器学习框架的六个部分,
既数据的加载、选择模型、模型的训练、模型的预测、模型的评测,模型的保存。
其中我们使用
getData方法泛指数据的加载,
somemodel方法泛指选择模型,
fit方法实现训练,
predict方法实现预测,
score_function方法评测模型,
dump方法用于模型保存。
也许我们现在并不明白这些代码的含义,我们将会在接下来的学习中为大家解答。
"""

sklearn实现

第一步使用sklearn导入数据并分割

模块自带数据集,参考
https://sklearn.apachecn.org/
https://blog.csdn.net/u013044310/article/details/103678248
了解sklearn自带的数据集有那些,数据集有哪些属性
了解数据集。

首先我们来了解一下如何为机器学习加载数据,为了方便学习,我们使用scikit-learn机器学习模块自带的数据集进行数据的加载练习,scikit-learn机器学习模块提供了一些模块自带的数据集,
自带的小数据集(packaged dataset):sklearn.datasets.load_<name>
可在线下载的数据集(Downloaded Dataset):sklearn.datasets.fetch_<name>
计算机生成的数据集(Generated Dataset):sklearn.datasets.make_<name>
svmlight/libsvm格式的数据集:sklearn.datasets.load_svmlight_file(...)
这些数据集都可以在官网上查找到demo,例如用于分类的iris、digits数据集和波士顿房价回归等数据集,我们通过以下的例子来了解如何进行数据的加载
#导入数据集模块
from sklearn import datasets
#分别加载iris和digits数据集
iris_dataset = datasets.load_iris()  #鸢尾花数据集
print(dir(datasets))
"""
['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', 
'__package__', '__path__', '__spec__', '_base', '_california_housing', '_covtype', '_kddcup99', 
'_lfw', '_olivetti_faces', '_openml', '_rcv1', '_samples_generator', '_species_distributions', 
'_svmlight_format_fast', '_svmlight_format_io', '_twenty_newsgroups', 'clear_data_home', 'data',
'descr', 'dump_svmlight_file', 'fetch_20newsgroups', 'fetch_20newsgroups_vectorized', 
'fetch_california_housing', 'fetch_covtype', 'fetch_kddcup99', 'fetch_lfw_pairs', 
'fetch_lfw_people', 'fetch_olivetti_faces', 'fetch_openml', 'fetch_rcv1',
'fetch_species_distributions', 'get_data_home', 'load_boston', 'load_breast_cancer', 
'load_diabetes', 'load_digits', 'load_files', 'load_iris', 'load_linnerud', 'load_sample_image',
'load_sample_images', 'load_svmlight_file', 'load_svmlight_files', 'load_wine', 'make_biclusters',
'make_blobs', 'make_checkerboard', 'make_circles', 'make_classification', 'make_friedman1', 
'make_friedman2', 'make_friedman3', 'make_gaussian_quantiles', 'make_hastie_10_2', 'make_low_rank_matrix',
'make_moons', 'make_multilabel_classification', 'make_regression', 'make_s_curve', 'make_sparse_coded_signal',
'make_sparse_spd_matrix', 'make_sparse_uncorrelated', 'make_spd_matrix', 'make_swiss_roll']
"""
print(iris_dataset.keys())
# dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename', 'data_module'])

首先启动一个Python解释器,然后加载iris和digits数据集,数据集是一个类似字典的对象,它保存有关数据集的所有数据和一些样本特征数据。该数据存储在.data成员中,在有监督学习中,一个或多个标记类别存储在.target成员中,例如,在iris数据集中,iris.data保存的是分类的样本特征,iris.target保存的是分类的样本标签,Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度(Sepal.Length& Sepal.Width& Petal.Length& Petal.Width)4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类
在这里插入图片描述

#使用.data() 和.target()方法熟悉导入的数据结构
print(iris.data) 
print(iris.target)

加载完成后,我们可以通过print函数查看iris数据具体数值,iris.data表示数据集内鸢尾花的花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性,iris.target表示数据集内鸢尾花的真实类别,也就是我们期望从每个鸢尾花属性数据中学得的相应的类别标记

在这里插入图片描述
机器学习是从数据的属性中学习经验,并将它们应用到新数据的过程。但是由于使用验证集来选择最终模型,因此最终模型对验证数据的错误率估计是有偏的(小于真实错误率),且在用测试集评估最终模型之后,我们不能进一步调整模型。这就是为什么机器学习中评估算法的普遍实践是把数据分割成训练集(我们从中学习数据的属性)和测试集(我们测试这些性质)。那什么是训练集和测试集呢?
训练集(Training set)作用是用来拟合模型,通过设置分类器的参数,训练分类模型。
测试集(Test set)通过训练,得出最优模型后,使用测试集进行模型预测。用来衡量该最优模型的性能和分类能力。即可以把测试集视为从来不存在的数据集,当已经确定模型后,使用测试集进行模型性能评价。

在这里插入图片描述
那测试的数据从何而来?,如果我们自己已经有了一个大的标注数据集,想要完成一个有监督模型的测试,那么通常使用均匀随机抽样的方式,将数据集划分为训练集、测试集,这俩个集合不能有交集。但是由于现实世界中某些原因,或是机密数据,或是稀缺数据,从而导致数据量过少我们只能将少量的数据进行分割,生成训练集和测试集,常见的比例是8:2,当然比例是人为的。从数据的角度来看,2个集合都是同分布的,因此都是具参考性的。

# 使用sklearn分割数据from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.4,random_state=0)
print("iris.data[0:5]:\n",iris.data[0:5])
print("iris.target[0:5]:\n",iris.target[0:5])
print("iris.data.shape:",iris.data.shape)
print("iris.target.shape:",iris.target.shape)
print("X_train.shape:",X_train.shape)
print("y_train.shape:",y_train.shape)
print("X_test.shape:",X_test.shape)
print("y_test.shape:",y_test.shape)

输出为:
在这里插入图片描述

现在我们来学习如何使用sklearn实现分割数据集,在这里我们使用sklearn.model_selection模块中的train_test_split方法分割成训练数据集和测试数据集,其中我们把参数test_size设置成0.4,表示分配了40%的数据给测试数据集。剩下60%的数据将用于训练数据集,参数random_state=0表示对随机种子的使用情况,而X_train,X_test,y_train,y_test分别为将原始数据iris.data,iris.target按照test_size的数值进行分割后的输出,其中iris.data的60%输出为X_train,iris.data的40%输出为X_test,iris.target的60%输出为y_train,iris.target的40%输出为y_test。

第二步使用sklearn模型的选择

学会加载模型,对于不同类型的数据选择不同的方法(智能算法)进行学习。

在机器学习的算法中存在着实现分类,聚类,回归,降维等功能的模型,而每个模型功能、效率、特性各具不同,如何选择一个合适的模型就变得至关重要,在面对大量的机器学习模型时,我们该如何选择某个机器学习的模型呢?
我们需要思考这样的以下问题:
1.数据的大小、质量及性质,
2.可用计算时间,
3.任务的急迫性,
4.数据的使用用途。

在没有测试过不同算法之前,即使是经验丰富的数据科学家和机器学习算法开发者也都不能分辨出哪种模型性能最好。我们并不提倡一步到位,但是我们确实希望根据一些明确的因素为模型的选择提供一些参考意见,sklearn机器学习模型速查表(官网可查)可帮助你从大量模型之中筛选出解决你的特定问题的模型。

# 第二步使用sklearn模型的选择
from sklearn import svm
svc = svm.SVC(gamma='auto')

本章中我们不会对机器学习的算法机理进行讲解,我们希望在本章中学员学会如何将算法模型实例化,因为sklearn已经将常用的机器学习模型进行了封装,那如何使用代码构建一个模型呢?以上代码表面了我们选择一个分类算法SVC,SVC实现了分类功能 。模型的构造函数以相应模型的参数为参数,但目前我们将把SVC分类模型视为黑箱即可,因此我们发现使用sklearn实现一个模型的实例话相当简单,我们只需要导入相关模块然后依据模型名称进行实例化即可,如python语句svc = svm.SVC()。

第三步使用sklearn模型的训练

在这里插入图片描述
接下来我们将了解机器学习训练的过程,从数据中学得模型的过程称为“训练”(learning),这个过程通过执行某个学习模型算法来完成。学得模型对应了关于数据的某种潜在的规律,因此亦称“假设”(hypothesis);这种潜在规律自身,则称为“真相”或“真实”(ground- truth),训练过程就是为了找出或逼近真相。从模型角度而言,模型可以理解为函数。训练模型就是用已有的数据,通过一些方法(最优化或者其他方法)确定函数的参数,参数确定后的函数就是训练的结果,使用模型就是把新的数据代入函数求值。机器学习中的“训练” 过程可以对应到人类的“学习” 过程

#第三步使用sklearn模型的训练
svc.fit(X_train, y_train)

输出为:
在这里插入图片描述

在scikit-learn模块中,模型的训练过程是一个Python对象,它使用fit(X, y)函数方法实现,在上图python代码svc.fit(X_train, y_train)中,我们通过向fit方法提供输入训练数据集后即可训练模型。

第四步使用sklearn进行模型的预测

在这里插入图片描述

# 第四步使用sklearn进行模型预测
print(svc.predict([[5.84,4.4,6.9,2.5]]))

输出为:
2

在scikit-learn模块中,模型的预测过程是一个Python对象,它predict()函数方法实现,在上图python代码svc.predict()中,我们通过向predict方法提供输入测试数据集后即可通过模型对新数据进行预测。

第五步机器学习评测的指标

在这里插入图片描述
学习到此,我们训练完成我们的模型了,同时我们希望了解训练出的模型效果如何,这时我们需要通过一些数学指标来表明其效果,但在此之前了解一下误差的概念。我们把模型的实际预测输出与样本的真实输出之间的差异称为“误差”(error),模型在训练集上的误差称为“训练误差” (training error),在新样本上的误差称为“泛化误差”( generalization error)。显然,我们希望得到泛化误差小的模型。然而,我们事先并不知道新样本是什么样,实际能做的是努力使经验误差最小化。而对于不同的算法我们通常会采用不同的指标来评判,分类算法采用分类指标,回归算法采用回归指标,聚类算法采用聚类指标。

在这里插入图片描述在这里插入图片描述
本章中,我们只对评测分类算法和回归算法的指标进行讲解,关于评测聚类算法的指标我们将在无监督学习章节中讲解,分类下我们关心的常用的指标有:
准确率( accuracy),准确率是指对于给定的测试数据集,分类器正确分类的样本数与总样本数之比,假设分类正确的样本数量=70,而总分类样本数量=100,那么精度=70/100=70.00%。
另外一个常用的分类指标为AUC:AUC(Area Under Curve)是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,而作为一个数值,对应AUC更大的分类器效果更好

在这里插入图片描述
本章中,我们只对评测分类算法和回归算法的指标进行讲解,关于评测聚类算法的指标我们将在无监督学习章节中讲解,分类下我们关心的常用的指标有:
准确率( accuracy),准确率是指对于给定的测试数据集,分类器正确分类的样本数与总样本数之比,假设分类正确的样本数量=70,而总分类样本数量=100,那么精度=70/100=70.00%。
另外一个常用的分类指标为AUC:AUC(Area Under Curve)是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,而作为一个数值,对应AUC更大的分类器效果更好

在这里插入图片描述
在这里插入图片描述

#第五步机器学习评测的指标
#机器学习库sklearn中,我们使用metrics方法实现:
import numpy as np
from sklearn.metrics import accuracy_score
y_pred = [0, 2, 1, 3]
y_true = [0, 1, 2, 3]
accuracy_score(y_true, y_pred)

输出为:
在这里插入图片描述

#第五步机器学习评测的指标
#机器学习库sklearn中,我们使用metrics方法实现:
import numpy as np
from sklearn.metrics import accuracy_score
print("y_test:\n",y_test)
y_pred = svc.predict(X_test)
print("y_pred:\n",y_pred)
accuracy_score(y_test, y_pred)

输出为:
在这里插入图片描述

现在我们看看如何实现对分类模型和回归模型的评测。这里使用的是scikit-learn模块中metrics方法实现,metrics模块包括评分函数,性能指标和成对指标以及距离计算,用来计算真实值与预测值之间的预测误差:
以_score结尾的函数,返回一个最大值,越高越好
以_error结尾的函数,返回一个最小值,越小越好;如果使用make_scorer来创建scorer时,将greater_is_better设为False,本例中我们调用了accuracy_score函数,该函数将会计算输入的参数y_pred对于y_true的准确率。而python语句from sklearn.metrics import accuracy_score实现了将accuracy_score函数导入的功能。

在这里插入图片描述
从之前的学习中我们了解到模型会先行在训练集上进行训练,通过对模型进行调整使模型的性能达到了最佳状态;但是即使模型在训练集上表现良好,往往其在测试集上可能会出现表现不佳的情况。此时,测试集的反馈足以推翻训练模型,并且度量不再有效地反映模型的泛化性能。为了解决这样的问题,我们必须准备另一部分称为验证集(validation set)的数据集。完成模型后,在验证集中评估模型。如果验证集上的评估实验成功,则在测试集上执行最终评估,但是,如果我们将原始数据进行划分为我们所说的训练集、验证集、测试集,那么我们可用的数据将会大大的减少,为了解决这个问题,我们提出了交叉验证这样的解决办法。
那什么是交叉验证呢?交叉验证 (Cross validation)是将原始数据分成K个子集(一般是均分),将每个子集数据分别做一次测试集 (testing test),其余的K-1组子集数据作为训练集(trainning test),这样会得到K个模型,用这K个模型最终的验证集的分类指标的平均数作为此K-CV下分类器的性能指标。

在这里插入图片描述
在交叉验证 (Cross validation)中K一般大于等于2,且每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这个测试结果的均值。而交叉验证 (Cross validation)的优点是对所有的样本都被作为了训练集和测试集,每个样本都被验证一次。其中10-folder通常被最长使用

在这里插入图片描述
上图显示了交叉验证的运行过程。这里采用的是10折交叉验证。

#第五步机器学习评测方法:交叉验证 (Cross validation)
#机器学习库sklearn中,我们使用cross_val_score方法实现:
from sklearn.model_selection import cross_val_score
scores = cross_val_score(svc, iris.data, iris.target, cv=5)
scores

输出为:
在这里插入图片描述

那如何实现交叉验证算法呢?本节中我们将使用scikit-learn模块实现交叉验证,最简单的实现方法是在模型和数据集上调用 cross_val_score 辅助函数,该函数将会拟合模型和计算连续cv(cv为cross_val_score函数的参数)次的分数(每次不同分割)来估计模型在数据集上的精度,如示例中python语句scores = cross_val_score(knn, iris.data, iris.target, cv=5),其中knn参数为待评估模型,iris.data, iris.target参数为数据集,cv参数为拆分子集数量,通常在默认情况下,每次cross_val_score迭代计算的指标结果是保存在属性scores中的,同时我们可以通过使用scoring参数来选择不同的指标,关于scoring的参数详情设置请参考官方文档

第六步机器学习:模型的保存

在这里插入图片描述
当我们的机器学习模型训练完成后,我们可以将我们的模型永久化,这样可以我们就下次可以直接使用我们的模型,避免下次大量数据训练花费过长时间以及方便我们进行模型的转移,而我们会使用pickle文件进行保存,pickle文件只能在python中使用,python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化,且pickle序列化后的数据,可读性差,人一般无法识别。

#第六步机器学习:模型的保存
#机器学习库sklearn中,我们使用joblib方法实现:
# from sklearn.externals import joblib
import joblib
joblib.dump(svc, 'filename.pkl') 
svc1 = joblib.load('filename.pkl') 
#测试读取后的Model
print(svc1.score(X_test, y_test))

输出为:
在这里插入图片描述

模型的保存的实现方法是调用sklearn.externals包中joblib类方法,如PPT中python代码joblib.dump(knn, ‘filename.pkl‘) ,其中joblib类中dump方法的会将参数knn序列化对象,并将结果数据流写入到文件对象中,其中参数knn为待保存的模型,参数‘filename.pkl‘指明pickle文件路径。而代码svc1 = joblib.load(’filename.pkl‘) 实现了反序列化对象过程。即将文件中的数据解析为一个Python对象,通俗而已就是将我们保存的模型在此实例化,并且命名为svc1。其中要注意的是,在load(file)的时候,要让python能够找到类的定义,否则会报错

完整代码
#导入数据集模块
from sklearn import datasets
#分别加载iris和digits数据集
iris_dataset = datasets.load_iris()  #鸢尾花数据集
# print(dir(datasets))
# print(iris_dataset.keys())
# dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename', 'data_module'])from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.4,random_state=0)
print("iris.data[0:5]:\n",iris.data[0:5])
print("iris.target[0:5]:\n",iris.target[0:5])
print("iris.data.shape:",iris.data.shape)
print("iris.target.shape:",iris.target.shape)
print("X_train.shape:",X_train.shape)
print("y_train.shape:",y_train.shape)
print("X_test.shape:",X_test.shape)
print("y_test.shape:",y_test.shape)# 第二步使用sklearn模型的选择
from sklearn import svm
svc = svm.SVC(gamma='auto')#第三步使用sklearn模型的训练
svc.fit(X_train, y_train)# 第四步使用sklearn进行模型预测
print(svc.predict([[5.84,4.4,6.9,2.5]]))#第五步机器学习评测的指标
#机器学习库sklearn中,我们使用metrics方法实现:
import numpy as np
from sklearn.metrics import accuracy_score
print("y_test:\n",y_test)
y_pred = svc.predict(X_test)
print("y_pred:\n",y_pred)
print(accuracy_score(y_test, y_pred))#第五步机器学习评测方法:交叉验证 (Cross validation)
#机器学习库sklearn中,我们使用cross_val_score方法实现:
from sklearn.model_selection import cross_val_score
scores = cross_val_score(svc, iris.data, iris.target, cv=5)
print(scores)#第六步机器学习:模型的保存
#机器学习库sklearn中,我们使用joblib方法实现:
# from sklearn.externals import joblib
import joblib
joblib.dump(svc, 'filename.pkl') 
svc1 = joblib.load('filename.pkl') 
#测试读取后的Model
print(svc1.score(X_test, y_test))

输出为:
在这里插入图片描述

在这里插入图片描述

机器学习中的拟合问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

流行的开源框架

在这里插入图片描述

Scikit-Learn是用于机器学习的Python模块,它建立在SciPy之上。基本功能主要被分为六个部分:分类、回归、聚类、数据降维、模型选择、数据预处理。
https://scikit-learn.org/stable/preface.html
GitHub项目地址:
https://github.com/scikit-learn/scikit-learn

在这里插入图片描述Paddle 是 Parallel Distributed Deep Learning 的缩写,中文名字是并行分布式深度学习。paddle 的原意是“用浆划动”,所以 logo 也是两个划船的小人,也就是等待众人划桨的中国 AI 大船。
从2016年9月27日发布至今,其前身是百度于2013年自主研发的易用、高效、灵活、可扩展的深度学习平台,且一直为百度内部工程师研发使用,可以认为是一个类似Facebook支持的PyTorch、Google的TensorFlow等工业优而开源的又一个典范。
https://www.paddlepaddle.org.cn/

在这里插入图片描述

TensorFlow是谷歌基于C++开发、发布的第二代机器学习系统。开发目的是用于进行机器学习和深度神经网络的研究。目前Google 的GoogleApp的语音识别、Gmail的自动回复功能、Google Photos的图片搜索等都在使用 TensorFlow 。
官网英文
官网中文
GitHub项目地址:
https://github.com/tensorflow/tensorflow

在这里插入图片描述
PyTorch的设计追求最少的封装,尽量避免重复造轮子。不像 TensorFlow 中充斥着session、graph、operation、name_scope、variable、tensor、layer等全新的概念,PyTorch的设计遵循tensor→variable(autograd)→nn.Module 三个由低到高的抽象层次,分别代表高维数组(张量)、自动求导(变量)和神经网络(层/模块),而且这三个抽象之间联系紧密,可以同时进行修改和操作。 简洁的设计带来的另外一个好处就是代码易于理解。PyTorch的源码只有TensorFlow的十分之一左右,更高的抽象、更直观的设计使得PyTorch的源码十分易于阅读。
pytorch官网
GitHub项目地址:
https://pytorch.org/

在这里插入图片描述
MindSpore
MindSpore 是华为公司推出的一款开源 AI 计算框架,在国产框架中认知度排第一,而且具备全方位能力,既能够提供特定的能力(如开发大模型,进行科学计算),又能实现全生命周期的 开发(即端到端开发,从训练到部署)。
官网

在这里插入图片描述
Spark MLlib是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器。Spark的设计初衷就是为了支持一些迭代的Job, 这正好符合很多机器学习算法的特点。Spark基于内存的计算模型天生就擅长迭代计算,多个步骤计算直接在内存中完成,只有在必要时才会操作磁盘和网络。
官网
GitHub项目地址:
https://github.com/apache/spark

确定方向过程

针对完全没有基础的同学们
1.确定机器学习的应用领域有哪些
2.查找机器学习的算法应用有哪些
3.确定想要研究的领域极其对应的算法
4.通过招聘网站和论文等确定具体的技术
5.了解业务流程,查找数据
6.复现经典算法
7.持续优化,并尝试与对应企业人员沟通心得
8.企业给出反馈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/716195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

守护无价数据:文件备份的重要性与实用策略

一、数据安全&#xff1a;为何文件备份至关重要 在数字化时代&#xff0c;我们的生活和工作越来越离不开电子设备与其中的文件数据。这些文件可能包含重要的工作文档、珍贵的家庭照片、个人的创意作品等&#xff0c;它们是我们回忆的载体&#xff0c;也是我们工作和创新的基石…

PDF Expert for Mac v3.9.2中文激活版下载

PDF Expert for Mac是一款易于使用的 PDF 编辑器和注释器&#xff0c;专为 Mac 设备设计。它允许用户轻松查看、编辑、签名、注释和共享 PDF。该软件使用户能够向他们的 PDF 添加文本、图像、链接和形状&#xff0c;突出显示和标记文本&#xff0c;填写表格以及签署数字文档。它…

金融行业专题|期货超融合架构转型与场景探索合集(2023版)

更新内容&#xff1a; 更新 SmartX 超融合在期货行业的覆盖范围、部署规模与应用场景。新增 CTP 主席系统实践与评测、容器云资源池等场景实践。更多超融合金融核心生产业务场景实践&#xff0c;欢迎下载阅读电子书《SmartX 金融核心生产业务场景探索文章合集》。 面对不断变…

mac iNode 断开后没网 经测试 后台还在运行

界面断开&#xff0c;但是连不上网&#xff1a;实际上可能是服务在后台还在运行 解决方式&#xff1a;终端执行命令 &#xff0c;手动停止iNode服务 sudo /Library/StartupItems/iNodeAuthService/iNodeAuthService stop 停掉之后&#xff0c;有可能连不上网&#xff0c;断开wi…

基于springboot+vue的美食推荐商城

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

网工必懂的ICMP协议

福建厦门微思网络始于2002年&#xff0c;面向全国招生&#xff01; 主要课程&#xff1a;华为、思科、红帽、Oracle、VMware、CISP安全系列、PMP....... 网络工程师实用课程华为HCIA课程介绍 网络工程师使用课程华为HCIP课程介绍 网络工程师使用课程华为HCIE课程介绍 因特网…

更详细的软件测试理论基础:流程,开发、测试模型,测试分类,测试用例及其设计方法,缺陷

文章目录 一、测试流程二、开发模型1、 瀑布模型2、增量模型3、快速模型4、其他 三、测试模型1、V模型2、W模型 四、测试分类五、测试用例 test case六、测试用例设计方法1、等价类划分法2、边界值分析法3、因果图法4、判定表法5、正交法6、场景法7、流程分析法8、错误推测法方…

数据分析-Pandas数据的探查面积图

数据分析-Pandas数据的探查面积图 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表&…

第16章-DNS

目录 1. 域名 1.1 产生背景 1.2 概述 1.3 域名的树形层次化结构 2. DNS 2.1 概述 2.2 工作机制 3. DNS查询模式 3.1 递归查询&#xff1a; 3.2 迭代查询&#xff1a; 4. 相关知识点 4.1 集中式DNS 4.2 国内通用DNS 4.3 配置DNS代理 1. 域名 1.1 产生背景 ① IP…

【Excel PDF 系列】iText 库直接实现表格 PDF

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录 前言生成表格 PDF 效果引入 pom 配置代码实现定义 CreateExcelToPdfModel 对象主方法 前言 最近遇到生成 E…

EchoServer回显服务器简单测试

目录 工具介绍 工具使用 测试结果 工具介绍 github的一个开源项目,是一个测压工具 EZLippi/WebBench: Webbench是Radim Kolar在1997年写的一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL&#xff0c;测试网站在压力下工作的…

二维码门楼牌管理系统:城市数字化管理的新里程碑

文章目录 前言一、二维码门楼牌管理系统的构成二、二维码门楼牌管理系统的功能三、二维码门楼牌管理系统的应用四、二维码门楼牌管理系统的未来发展 前言 随着城市管理的数字化、智能化水平不断提升&#xff0c;二维码门楼牌管理系统作为一种创新的城市管理方法&#xff0c;正…

Ubuntu20.04: UE4.27 中 Source Code 的编辑器下拉框没有 Rider选项

问题描述 最近想用 Rider 作为 UE4 开发的 IDE&#xff0c;但安装好 Rider 后&#xff0c;发现编辑器下拉框中没有 Rider 的选项&#xff0c;我检查了 UE4 的插件&#xff0c;发现 Rider Integration 插件已经安装且启用的。 环境&#xff1a;Ubuntu 20.04 UE4.27 Rider2023…

应急加电电源车-在航空航天、武器等多领域的应用

应急加电电源车是一种专门设计用于在紧急情况下为其他设备提供电力支持的车辆。它通常由电池或燃料电池驱动&#xff0c;可以在没有外部电源的情况下为其他设备提供持续的电力供应。这种车辆在灾难救援、野外作业、军事行动等领域具有广泛的应用。 应急加电电源车通常具有以下…

WordPress建站入门教程:如何在本地电脑搭建WordPress网站?

前面跟大家分享了『WordPress建站入门教程&#xff1a;如何安装本地WordPress网站运行环境&#xff1f;』&#xff0c;接下来boke112百科就继续跟大家分享本地电脑如何搭建WordPress网站。 小皮面板&#xff08;phpstudy&#xff09;的“软件管理 – 网站程序”虽然可以一键部…

Springboot+vue的高校教师教研信息填报系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的高校教师教研信息填报系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&am…

数据审计 -本福德定律 Benford‘s law (sample database classicmodels _No.6)

数据审计 -本福德定律 Benford’s law 准备工作&#xff0c;可以去下载 classicmodels 数据库资源如下 [ 点击&#xff1a;classicmodels] 也可以去我的博客资源下载 文章目录 数据审计 -本福德定律 Benfords law 前言一、什么是 本福德定律&#xff1f;二、数学公式三、应用…

最新会声会影2024旗舰版系统配置要求

大家好呀&#xff01;小编今天给大家带来了一个超级实用的信息&#xff0c;关于会声会影2024旗舰版的系统配置要求&#xff01; 会声会影2023-安装包&#xff1a; https://souurl.cn/gtyDFc 会声会影2023-安装包&#xff1a; https://souurl.cn/ZQ6QWp 会声会影2022-安装包&a…

回归预测 | Matlab实现CPO-BiTCN-BiGRU冠豪猪算法优化双向时间卷积门控循环单元多变量回归预测

回归预测 | Matlab实现CPO-BiTCN-BiGRU冠豪猪算法优化双向时间卷积门控循环单元多变量回归预测 目录 回归预测 | Matlab实现CPO-BiTCN-BiGRU冠豪猪算法优化双向时间卷积门控循环单元多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-BiTCN-B…

Vue开发实例(六)实现左侧菜单导航

左侧菜单导航 一、一级菜单二、二级菜单三、三级菜单1、加入相关事件 四、菜单点击跳转1. 创建新页面2. 配置路由3. 菜单中加入路由配置4、处理默认的Main窗口为空的情况 五、动态左侧菜单导航1、动态实现一级菜单2、动态实现二级菜单 一、一级菜单 在之前的Aside.vue中去实现…