机器学习理论知识的自学整理(持续更新,建议收藏)

在这里插入图片描述

机器学习01_机器学习简介 (2021.05.18)

  • 什么是机器学习?
    机器学习就是从【数据】中自动分析获得【规律(模型)】,并利用规律对未知数据进行【预测】或者对数据进行【分类】

  • 机器学习与人工智能的区别
    机器学习就是实现人工智能的一种技术手段

  • 什么是模型?
    模型又称算法模型,是一个特殊的对象。该算法模型对象中已经集成或者封装好了某种形式的方程(算法),但是还没有求出解。

  • 模型的作用?
    预测 - 可以通过方程或者算法产生一个新的未知的数据/事物
    分类 - 可以将一个未知类别的事物给其归类到一个已有的类群中
    注意:算法模型对应的算法或者方程求出的解就是预测或者分类的结果

  • 样本数据
    模型的训练 - 将样本数据代入到模型中,对其进行训练(其实就是给方程进行求解操作),模型训练好了以后,则模型的方程就有了唯一的解或者最优解,有解后则模型就可以实现分类或者预测的功能了。

  • 样本数据的构成(以房价为例)
    1.特征数据 就是样本数据中的自变量 (楼层、面积、采光率等是特征数据)
    2.标签/目标数据 就是样本数据中的因变量 (房价就是标签/目标数据)

  • 模型的分类
    1.有监督学习 如果模型需要的样本数据,必须包含特征数据和标签数据,则该模型为有监督学习分类
    2.无监督学习 如果模型需要的样本数据,只需要有特征数据即可,目标数据有或者没有都可以,则该模型为无监督学习
    3.半监督学习 后边讲

  • 样本数据(数据集)的载体
    通常情况下,所谓的样本数据(数据集)都不会存储在数据库中,而是存储在文本文件中(比如:csv文件)
    至于为什么不存放在数据库中原因有以下两点:
    1 在机器学习中,样本数据(数据集)的量级是非常大的,如果存储在数据库中,则很难完成存储以及高效的读写。
    2.数据库的存储格式不符合机器学习要求的数据格式

  • 样本数据的获取途径(本人推荐UCI)
    1.kaggle 数据竞赛平台
    2.UCI数据集 (一个常用的机器学习标准测试数据集,链接如下) http://archive.ics.uci.edu/ml/index.php
    3.sklearn(可直接pip install sklearn)


机器学习02_特征工程简介 (2021.05.19上)

  • 为什么需要特征工程?
    样本数据中的特征可能会存在缺失值,重复值,异常值等等,那么我们是需要对特征中的相关噪点数据进行处理的,处理的目的其实就是为了营造出一个更纯净的样本集,让模型基于这组数据可以有更好的预测、分类能力,
    当然特征工程不是单单只是上述的操作。

  • 什么是特征工程?
    特征工程就是将原始数据转换为更好的、能代表预测、分类模型的潜在问题特征的一个过程,从而可以提高对未知数据预测、分类的准确性。
    (比如AlphaGo学习的数据中,又有食谱还有歌词,那么这些干扰数据绝对会影响AlphaGo的学习,因此通过特征工程就是要把这些会影响学习结果的噪点数据进行过滤和剔除,只留下与围棋相关的有学习价值的样本数据)

  • 特征工程的意义
    直接影响模型预测的结果(但是并不是所有的样本模型都需要特征工程,比如说集成学习是不需要特征工程就可以实现很好的分类功能的)

  • 如何实现特征工程
    工具: sklearn

  • sklearn介绍
    sklearn是Python语言中的机器学习工具,包含了很多知名的机器学习算法的实现,其文档完善,容易上手。功能包括:分类模型、回归模型、聚类模型、特征工程


机器学习03_特征工程之特征抽取 (2021.05.19下)

  • 特征抽取的目的
    我们所采集到的样本中的特征数据往往很多时候是字符串或者其他类型(字典…)的数据,但是计算机只可以识别二进制数值型的数据,如果把字符串等类型的数据传给计算机,计算机是看不懂的,简单的说就是机器学习学习的数据如果不是数值型的数据,它是无法被识别的。(特征抽取就是对字符串、字典等类型的数据进行特征值化,特征值化则是为了让机器更好地理解数据)

  • 字典类型数据的特征抽取
    作用: 对字典数据进行特征值化
    API:from sklearn.feature_extraction import DictVetorizer
    (扫盲 API:Application Programming Interface,是一些预先定义好的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,且又无需访问源码,或理解工作内部机制)

  • 字典类型数据特征抽取的代码实现

"""字典特征抽取"""

# 抽取结果为一个sparse矩阵
from sklearn.feature_extraction import DictVectorizer
# 等待进行特征抽取的字典类型的数据
alist = [
    {"city": "Beijing", "temp": 33},
    {"city": "Shanghai", "temp": 36},
    {"city": "Nanjing", "temp": 37}
        ]

# 实例化一个工具类对象
d = DictVectorizer()

# 返回的是一个sparse矩阵(存储的就是特征值化之后的结果)
feature = d.fit_transform(alist)
print(feature)

# 结果:  根据sparse矩阵是可以画出特征的二维数组的
#   (0, 0)	1.0  (代表第0行第0列位置的数是1.0)
#   (0, 3)	33.0  (代表第0行第3列位置的数是33.0)
#   (1, 2)	1.0
#   (1, 3)	36.0
#   (2, 1)	1.0
#   (2, 3)	37.0


# 抽取结果为一个二维列表
from sklearn.feature_extraction import DictVectorizer
alist = [{"city": "beijing", "temp": 33}, {"city": "shanghai", "temp": 36}, {"city": "guangzhou", "temp": 37}]

# 实例化一个工具类对象,但是sparse=False
d = DictVectorizer(sparse=False)

# 返回一个二维列表
feature = d.fit_transform(alist)
print(d.get_feature_names())  # 打印出字典中所有的keys
print(feature)

# 结果
# ['city=beijing', 'city=guangzhou', 'city=shanghai', 'temp']
# [[ 1.  0.  0. 33.]
#  [ 0.  0.  1. 36.]
#  [ 0.  1.  0. 37.]]
  • 字符串类型数据的特征抽取
    作用:对字符串数据进行特征值化
    API:from sklearn.feature_extraction.text import CountVectorizer

  • 字符串类型数据特征抽取的代码实现
    注意事项:转换后的array数组中的数字只能代表每一个内容出现的次数。

"""字符串特征抽取"""

"""对英文进行特征抽取"""
# 抽取结果为一个sparse矩阵
from sklearn.feature_extraction.text import CountVectorizer
# 实例化一个工具类对象
vector = CountVectorizer()
res = vector.fit_transform(['life is is a joke', 'but I love the life'])
print(res)
print(vector.get_feature_names())
# 将sparse矩阵转化成一个数组类型
print(res.toarray())
# 注:单个字母不统计(因为单个字母代表不了实际的含义,然后每个数字表示的是单词出现的次数)
# 结果
#   (0, 3)	1
#   (0, 1)	2
#   (0, 2)	1
#   (1, 3)	1
#   (1, 0)	1
#   (1, 4)	1
#   (1, 5)	1
# ['but', 'is', 'joke', 'life', 'love', 'the']
# array数组
# [[0 2 1 1 0 0]
#  [1 0 0 1 1 1]]


"""对中文进行特征抽取"""
# 抽取结果为一个sparse矩阵
from sklearn.feature_extraction.text import CountVectorizer
# 实例化一个工具类对象
vector = CountVectorizer()
res = vector.fit_transform(["你好树哥", "树哥再见", "树哥真傻", "树哥不傻"])
print(res)
print(vector.get_feature_names())
print(res.toarray())
# 注: 对有标点或有空格分隔的中文进行特征处理,且单个汉字不统计
# 结果:
#   (0, 0)	1
#   (1, 2)	1
#   (2, 3)	1
#   (3, 1)	1
# ['你好树哥', '树哥不傻', '树哥再见', '树哥真傻']
# array数组
# [[1 0 0 0]
#  [0 0 1 0]
#  [0 0 0 1]
#  [0 1 0 0]]

机器学习04_有关OneHot编码、jieba分词的使用 (2021.05.20)

  • OneHot编码的作用
    实现字典中非数值型数据的特征值化

  • OneHot编码的示例

"""手动进行OneHot编码"""
import pandas as pd
df = pd.DataFrame([
    ['green', 'M', 20, 'adidas'],
    ['red', 'L', 21, 'nike'],
    ['blue', 'XL', 30, 'dior'],
])
df.columns = ['color', 'size', 'prize', 'brand name']
print(df)
# 结果
#    color size  prize brand name
# 0  green    M     20     adidas
# 1    red    L     21       nike
# 2   blue   XL     30       dior

print(pd.get_dummies(df['color']))
# 结果
#    blue  green  red
# 0     0      1    0
# 1     0      0    1
# 2     1      0    0
  • jieba分词的作用
    jieba分词其实就是把一段不带有标点或分隔符的中文,分割成一个个独立且合理的词组。
    换句话说就是可以让我们在输入一段中文文字时,不需要刻意地对它进行分割处理。
  • jieba分词与字符串特征提取的联合使用
"""jieba分词与字符串特征提取的联合使用"""
import jieba
from sklearn.feature_extraction.text import CountVectorizer

jb1 = jieba.cut('人生苦短,及时行乐有错么?')
ct1 = " ".join(list(jb1))
jb2 = jieba.cut('你说的都对,但是我不听!')
ct2 = " ".join(list(jb2))
print(ct1, ct2)  # 人生 苦短 , 及时行乐 有错 么 ? 你 说 的 都 对 , 但是 我 不 听 !

# 对ct1、ct2进行中文文本的特征提取
vector = CountVectorizer()
res = vector.fit_transform([ct1, ct2])
print(res)
# 结果
#   (0, 0)	1
#   (0, 4)	1
#   (0, 2)	1
#   (0, 3)	1
#   (1, 1)	1
print(vector.get_feature_names())  # ['人生', '但是', '及时行乐', '有错', '苦短']
print(res.toarray())
# 结果
# [[1 0 1 1 1]
#  [0 1 0 0 0]]
# 注:单个汉字不会被统计

机器学习05_特征的预处理 (2021.05.22)

  • 特征的预处理
    在经过了特征抽取之后,样本数据已经全部被转换成为了数值型数据,但这是远远不够的,因此专门用于对数值型数据进行处理的方法—特征的预处理就是必要的了

  • 无量纲化
    在机器学习算法实践中,我们常常有着将不同规格的数据转换到同一规格,或不同分布的数据转换到某个特定分布的需求。这种需求统称为将数据“无量纲化”

  • 特征的预处理的目标
    通过特定的统计方法(数学方法),将数据转换成算法要求的数据

  • 特征的预处理的方式
    1.归一化
    2.标准化


机器学习06_特征的预处理之归一化 (2021.05.23上)

  • 归一化的实现
    1.特点:通过对原始数据进行交换,把数据映射到(默认【0,1】)之间
    2.公式: X’ = x - min / max - min ; X’’ = x’ * (mx - mi) + mi
    其中:max 为一列中的最大值,min为一列中的最小值,X’’ 为最终的结果, mx、mi分别为指定区间值(一般情况默认mx为1, mi为0)
    3.API:from sklearn.preprocessing import MinMaxScaler
    4.参数:feature_range表示缩放范围,通常使用(0,1)
    5.作用:使得某一个特征对最终结果不会造成很大的影响
    6.如果认为每一个特征都具有同等大小的权重,都同等重要时,则必须要对其进行归一化处理。归一化处理后的数据结果服从正态分布

  • 归一化的问题
    结合着归一化计算的公式可知,异常值对原始特征中的最大值和最小值的影响很大(即假设异常值为一组数值型数据中的最大或最小值),因此也会影响到归一化之后结果的值。这个也是归一化的一个弊端,即无法很好地处理极端的异常值。

  • 归一化的总结
    在特定场景下最大值和最小值是变化的,另外最大最小值很容易受到异常值的影响,所以这种归一化的方式具有一定的局限性,因此就引出了一种更好的方法:标准化

  • 归一化的代码实现

"""数值型数据的归一化---用于防止某一个特征值对最终结果有很大的影响"""
from sklearn.preprocessing import MinMaxScaler
# 设置缩放范围
mm = MinMaxScaler(feature_range=(0, 1))

# 待处理数据
data = [[90, 2, 10, 40], [60, 5, 15, 45], [73, 3, 13, 45]]

# 进行数据的归一化
data_normalization = mm.fit_transform(data)

# 打印归一化结果
print(data_normalization)

# 结果
# [[1.         0.         0.         0.        ]
#  [0.         1.         1.         1.        ]
#  [0.43333333 0.33333333 0.6        1.        ]]

机器学习07_特征的预处理之标准化 (2021.05.23下)

  • 标准化的实现
    1.什么是标准化?
    当数据按均值中心化后,再按标准差缩放,数据就会服从均值为0,方差为1的正态分布(即标准正态分布),而这个过程就叫做数据标准化(Standardization,又称Z-score normalization)
    2.公式: X’ = x - mean / σ
    其中: mean 为每一列的平均值, σ为标准差 (ps:标准差公式–百度百科)var为方差,σ = √ ̄var
    3.API: from sklearn.preprocessing import StandardScaler

  • 归一化和标准化的总结
    1.对于归一化来说,如果出现了异常值,且影响到了特征的最大值或者最小值,那么最终的结果会受到比较大的影响
    2.对于标准化来说,如果出现了异常值,由于具有一定的数据量,少量的异常值对于平均值的影响其实并不大,从而标准差的改变也比较少

  • 归一化和标准化应该选哪个?
    1.分情况,在大多数机器学习算法中,会选择标准化来进行特征的缩放,因为归一化对异常值非常敏感,在PCA、聚类、逻辑回归、支持向量机、神经网络这些算法中,标准化往往是最好的选择,
    归一化在不涉及距离度量、梯度、协方差计算以及数据需要被压缩到特定区间的情况下,使用广泛(比如数字图像处理中量化像素强度时,是都会使用归一化将数据压缩于[0, 1]之间的)。
    2.建议先使用标准化,如果标准化效果不好,再换为归一化。

  • 标准化的代码实现

"""数值型数据的标准化"""
from sklearn.preprocessing import StandardScaler
# 实例化一个工具类对象
ss = StandardScaler()

# 待标准化的数据
data = [[90, 2, 10, 40], [60, 5, 15, 45], [73, 3, 13, 45]]

# 进行标准化
data_standardization = ss.fit_transform(data)

# 打印标准化结果
print(data_standardization)

# 结果
# [[ 1.27540458 -1.06904497 -1.29777137 -1.41421356]
#  [-1.16685951  1.33630621  1.13554995  0.70710678]
#  [-0.10854507 -0.26726124  0.16222142  0.70710678]]


机器学习08_特征选择 (2021.05.24上)

  • 什么是特征选择?
    特征选择就是从特征中选择出有意义对模型有帮助的特征作为最终的机器学习输入的数据

  • 特征选择的原因
    1.原始的数据中可能有冗余的情况发生,即部分特征的相关度高,容易消耗计算机的性能(比如房价预测中,有楼层和高度两个其实是一回事的特征数据)
    2.原始的数据中可能有噪点的情况发生,即部分特征对预测结果有偏执的影响(比如房价预测中,有一个特征是售楼部的服务人员养没养狗)

  • 特征选择的实现方法
    1.人为对不相关的特征进行主观舍弃
    2.当然,在真正的数据应用领域,比如金融、医疗等,我们的数据特征非常多,人类是无法凭借主观判断去完成大量的数据的选择和排除的,那么当遇到这种情况,我们就需要在已有特征和对应
    预测结果的基础上,使用相关的工具过滤掉一些无用的或权重较低的特征
    3.这些工具包括:Filter(过滤式)、Embedded(嵌入式)、PCA降维


机器学习09_特征选择之Filter过滤式(方差过滤)(2021.05.24下)

  • 方差过滤的原理
    这是通过特征本身的方差来筛选特征的类,比如一个特征本身的方差很小,就表示样本在这个特征上基本没有差异,可能特征中的大多数值都一样,甚至整个特征的取值都相同,
    那么这个特征对于样本本身区分没有什么作用,所以无论接下来的特征工程要做什么,都要优先消除方差为0或者方差较低的特征。
  • API: from sklearn.feature_selection import VarianceThreshold
  • 如果将方差为0或者方差极低的特征去除后,剩余特征还有很多且模型的效果没有显著提升(特征维度仍然特别高),则方差也可以帮助我们将特征选择一步到位。即直接留下一半的特征。具体的操作就是,通过设定
    一个让特征总数减半的方差阈值,只要找到方差的中位数,再将这个中位数作为参数threshold的值输入就好了。
  • 方差过滤对模型的影响:可以大幅度提高机器学习效果,且大幅度减少运行时间
"""特征选择的实现 --- Filter 过滤式"""

# 手动地指定一个方差值,将低于该方差值的所有特征过滤掉
from sklearn.feature_selection import VarianceThreshold
v = VarianceThreshold(threshold=3)  # 将方差低于3的特征值过滤掉 (方差公式:https://baike.baidu.com/item/%E6%96%B9%E5%B7%AE%E5%85%AC%E5%BC%8F/3638551?fr=aladdin)
v_filter = v.fit_transform([
    [0, 2, 4, 3],
    [0, 3, 7, 3],
    [0, 9, 6, 3]
])

print(v_filter)

# 结果
# [[2]
#  [3]
#  [9]]


"""方差过滤之中值过滤"""
# 通过计算出整个特征矩阵的中位数(中值),将这个中位数作为阈值,即将方差值低于该中位数的所有特征均过滤掉,实际上完成了一次性过滤一半特征的功能

import numpy as np
feature = np.random.randint(0, 100, size=(5, 10))  # 手动生成一个虚拟的乱序的特征矩阵
print(feature)

median = np.median(feature.var(axis=0))  # 求特征方差的中位数(中值)
print(median)

v = VarianceThreshold(threshold=median)  # 将方差低于方差中位数的特征值过滤掉
v_filter = v.fit_transform(feature)
print(v_filter)

# 结果

# [[39 57  1 18 12 78 84 63  9 75]
#  [63 38 83 43 73  6 40 80 72 35]
#  [98 16 68  0 80 97 48 77 73 69]
#  [62 74 61  5 96  3 85 39 96 19]
#  [ 4 66 78 39 72 41 24 23 53 89]]

# 751.4399999999999

# [[39  1 12 78  9]
#  [63 83 73  6 72]
#  [98 68 80 97 73]
#  [62 61 96  3 96]
#  [ 4 78 72 41 53]]

机器学习10_特征选择之PCA降维 (2021.05.25上)

  • PCA降维的原理
    将数据分解为较低维度的空间,举个例子说就是,如何最好的对一个立体的物体用二维表示,其中降维的维度值就是特征的类。
  • PCA降维的API
    from sklearn.decomposition import PCA
  • PCA降维的目的
    当特征数量达到成百上千的时候,为了考虑数据的优化,可使数据维度压缩,在尽可能的降低源数据维度的同时,损失少量的信息。
  • PCA降维的作用
    可以削减回归分析或者聚类分析中的特征的数量
  • PCA降维的代码实现
"""特征选择(PCA降维)的实现 --- 通过在不影响学习结果的情况下,降低特征矩阵的维度"""

from sklearn.decomposition import PCA
pca = PCA(n_components=2)  # 将特征矩阵的维度减少到2 (原本是4)
pca_PCA = pca.fit_transform([
    [0, 2, 4, 3],
    [0, 3, 7, 3],
    [0, 9, 6, 3]
])
print(pca_PCA)

# 结果
# [[-2.88362421 -1.25443227]
#  [-1.45140588  1.56492061]
#  [ 4.33503009 -0.31048834]]

机器学习11_sklearn数据集的获取与拆分 (2021.05.25下)

  • 数据集的划分
    1.前提: 机器学习就是从数据中自动分析获得规律,并利用规律对未知数据进行预测。换句话说就是,我们的模型一定要经过样本数据对其进行训练,才可以对未知数据进行预测。
    2. 问题:我们得到数据后,是否将数据全部用来训练模型呢?
    当然不是!因为我们如果模型(数据的规律)都是从数据中得来的,那么模型的性能评估该如何进行呢?还是基于原先的数据进行预测么?当然不是的,如果模型对原先的数据进行预测,由于模型(数据的规律)本来就是从该数据中获取的,那么预测、分类的精度将会几乎是100%。所以,想要评估模型的好坏,需要使用一组新的数据对模型进行评估。也正是因此,我们需要把原先的样本数据拆分成–训练集(用于训练模型)、测试集(用来测试模型)。注:不同类型的模型对应的评估方式是不一样的
    3.API:from sklearn.model_selection import train_test_split
    4.API参数介绍:train_test_split(x, y, test_size, random_state)
    x:全部的特征数据 y:全部的目标数据 test_size:测试集所占的比例 random_state:打乱的随机种子
    5.返回值分别为:用于训练的特征数据、用于测试的特征数据、用于训练的目标数据、用于测试的目标数据

  • 数据集接口的介绍
    1.小规模数据集的获取方法
    sklearn.datasets.load_()
    2.较大规模数据集获取方法
    sklearn.datasets.fetch_
    (data_home=None, subset=‘all’)
    注: 其中data_home表示数据集下载的目录,None为默认值表示的是家目录/scikit_learn_data(自动创建该文件夹)下,需要从网络下载。subset则表示需要下载的数据集,train代表训练集,test表示测试集,all表示全部

  • 数据集获取和划分的代码实现

"""小规模数据集的获取"""
import sklearn.datasets as datasets  # 从sklearn样本数据平台获取数据集

iris = datasets.load_iris()  # 从sklearn中获取一个有关鸢尾花的规模较小的数据集
print(iris)  # 打印结果包括:特征数据、目标(标签)数据、数据描述、每一列特征数据的所表示的含义

# 对样本数据分别进行特征数据和标签数据的抽取
feature = iris['data']  # 抽取出样本数据中的特征数据
print(feature.shape)  # 结果 (150, 4)
target = iris['target']  # 抽取出样本数据中的标签数据
print(target.shape)  # 结果 (150,)


"""较大规模数据集的获取"""
import sklearn.datasets as datasets  # 从sklearn样本数据平台获取数据集

newsgroups = datasets.fetch_20newsgroups(data_home=None, subset='all')  # 从sklearn中获取一个有关新闻的规模较大的数据集


"""数据集的拆分"""
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(feature, target, test_size=0.2, random_state=2021)
# 内部参数为:(特征数据, 标签数据, 测试数据所占比例, 将数据集进行打乱),x_train代表训练集的特征数据,y_train代表训练集的标签数据;x_test代表测试集的特征数据,y_test代表测试集的标签数据
print(x_train.shape)  # 结果 (120, 4)          结果来源 150*0.8
print(x_test.shape)  # 结果 (30, 4)            结果来源 150*0.2

机器学习12_机器学习算法的分类与开发流程 (2021.05.29)

  • 机器学习的本质
    机器学习最终进行预测出来的结果其实都是通过相关的算法计算出来的结果!所以说在机器学习中,算法是核心,数据是计算的基础。

  • 机器学习中的数据类型都有哪些?
    1.离散型数据:离散变量是通过计数方式取得的,就是说对需要统计数量的对象进行计数,但其的增长量非固定的。(比如说:第一年村口开了一家金拱门,第二年镇上一下子开了三家金拱门,简单的理解就是,数据增长的量是不确定的,是随机的。)
    2.连续型数据:连续变量是一直叠加上去的,增长量可以划分为固定的单位。(比如说一个人的身高,他首先得长到1.8m才能长到1.85m)
    注意:连续型数据是有规律的、之间有关联的、区间可分的,而离散型数据是没有规律的、之间没有关联的、区间不可分的。

  • 机器学习算法的分类
    根据机器学习中的数据类型,可以简单地将机器学习的算法分为两类,一类是分类算法,一类是回归算法。
    分类算法:基于的是目标数据为–离散型数据
    回归算法:基于的是目标数据为–连续型数据
    结论:在社会中产生的数据不是离散型的数据就是连续型的数据,那么企业针对数据所产生的需求也无非就是分类问题或者回归问题。
    举例:预测电影票房(回归)、预测明天天气(分类)、人脸识别(分类)

  • 机器学习的开发流程(共7步)
    1.数据的采集
    2.分析数据所对应要解决的需求或者问题是什么?根据目标数据判断问题属于回归还是分类
    3.数据的基本处理(数据清洗、合并、级联等)
    4.特征工程(特征抽取、特征预处理、降维等)
    5.选择合适的模型,然后对其进行训练
    6.模型的评估
    7.上线使用


机器学习13_KNN算法详解 (2021.05.26)

由于较为重要,博主将其单独拎出来写了一篇博文,链接在此:博文链接


机器学习14_K折交叉验证详解 (2021.05.27)

由于较为重要,博主将其单独拎出来写了一篇博文,链接在此:博文链接


机器学习15_线性回归算法详解(2021.05.30)

由于较为重要,博主将其单独拎出来写了一篇博文,链接在此:博文链接


机器学习16_欠拟合、过拟合详解(2021.05.31)

由于较为重要,博主将其单独拎出来写了一篇博文,链接在此:博文链接


机器学习17_训练好的模型的保存和读取(2021.06.01)

  • 模型的保存和加载
    在平时训练模型时,如果样本数据库较大,则需要花费大量的时间去进行学习,才能产生相应的学习结果。为了想要以后方便调用已经训练好的模型,而不用重复地对模型进行训练,对模型的保存和加载就是必须的了。
    API: from sklearn.externals import joblib
    注:如果你的sklearn版本为0.21之后的,则将API直接改为:import joblib
    joblib.dump(model, ‘xxx.m’) # 保存
    joblib.load(‘xxx.m’) # 读取

机器学习18_朴素贝叶斯算法详解 (2021.06.02 - 2021.06.05)

由于较为重要,博主将其单独拎出来写了一篇博文,链接在此:博文链接


机器学习19_逻辑回归算法详解 (2021.06.07~ 2021.06.12)

由于较为重要,博主将其单独拎出来写了一篇博文,链接在此:博文链接


如有问题,敬请指正。欢迎转载,但请注明出处。(争取明日继续更新)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值