【Python深度学习之路】-4 监督学习

2022-11-02 17:49:46 浏览数 (1)

【Python深度学习之路】-4 监督学习

4.1 了解监督学习(分类)

  1. 监督学习:根据积累的经验数据对新的数据或将来的数据进行预测,或者进行分类的一种学习方式。
  2. 无监督学习:对积累的经验数据中所存在的结构,以及关联性进行分析的学习方式。
  3. 强化学习:通过设定报酬、环境等条件来实现学习效果最大化的一种学习方式。
  4. 监督学习的分类:
    • 回归:通过读取现存数据中的关联性,并根据这些关联性来实现数据预测的一种算法。(针对连续性的值)
    • 分类:以数据预测为目的对离散值进行预测。
  5. 二分分类与多元分类
    • 二元分类:又叫二值分类,二项分类。二元分类是指分类的类别有两种的分类问题。它可以对数据是“属于/不属于”两个分组中哪一组的问题进行判断。此外,如果能够用直线对类别进行划分,就称为“线性分类”,否者,就是“非线性分类”。
    • 多元分类:又叫多项分类。多数情况下无法用直线对类别进行分类,分类的类别有三种及以上。
  6. 分类的流程:
    1. 数据的预处理,数据的整理、操作;
    2. 模型的选取,分类器的选择;
    3. 模型的训练 :选择超参数进行调校,参数的调校;
    4. 使用模型进行预测(推理):使用未知数据对模型的精读进行检验,将模型嵌入到Web服务等实际应用中。
  7. 数据的准备 使用scikit-learn.datasets模块的make_classification()函数
代码语言:javascript复制
# 导入需要使用的模块
from sklearn.datasets import make_classification

# 创建数据X和标签y
X, y = make_classification(n_sample=xx, n_classes= xx, n_features = xx, n_redundant=xx, random_state=xx)
  • n_sample:需要准备的数据的数量。
  • n_classes:分类数量。如果不指定,默认值为2。
  • n_features:数据的特征量的个数。
  • n_redundant: 分类时不需要的特征量(额外的特征量)的个数。
  • random_state:随机数的种子(决定随机数生成规律的因素)
  1. Classifier虚构分类器:
代码语言:javascript复制
# 导入需要使用的模块
# 以模型为单位进行模块的导入
from sklearn.linear_model import LogisticRegression
from sklearn.svm import LinearSVC,SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier

# 构建模型
model = Classifier()  # Classifier()需要更换为实际的模型
# 对模型进行训练

model.fit(train_X,train_y)

# 使用模型对数据进行预测
model.predict(test_X)

# 模型的准确率
# 准确率是使用(模型预测的分类与实际的分类相同的数据的数量)/(数据的总数量)公式计算出来的
model.score(test_X,test_y)

Classifier()举例:

代码语言:javascript复制
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_classification

# 创建数据X和标签y
X, y = make_classification(n_samples=100,  n_features = 2, n_redundant=0, random_state=42)

# 将数据划分为用于学习的部分和用于评估的部分
train_X, test_X, train_y, test_y = train_test_split(X, y, random_state=42)

# 构建模型
model = LogisticRegression(random_state=42)

# 对模型进行训练
model.fit(train_X,train_y)

# 使用模型对数据进行预测
model.predict(test_X)

# 模型的准确率
# 准确率是使用(模型预测的分类与实际的分类相同的数据的数量)/(数据的总数量)公式计算出来的
model.score(test_X,test_y)

0 人点赞