【Python深度学习之路】-4 监督学习
4.1 了解监督学习(分类)
- 监督学习:根据积累的经验数据对新的数据或将来的数据进行预测,或者进行分类的一种学习方式。
- 无监督学习:对积累的经验数据中所存在的结构,以及关联性进行分析的学习方式。
- 强化学习:通过设定报酬、环境等条件来实现学习效果最大化的一种学习方式。
- 监督学习的分类:
- 回归:通过读取现存数据中的关联性,并根据这些关联性来实现数据预测的一种算法。(针对连续性的值)
- 分类:以数据预测为目的对离散值进行预测。
- 二分分类与多元分类
- 二元分类:又叫二值分类,二项分类。二元分类是指分类的类别有两种的分类问题。它可以对数据是“属于/不属于”两个分组中哪一组的问题进行判断。此外,如果能够用直线对类别进行划分,就称为“线性分类”,否者,就是“非线性分类”。
- 多元分类:又叫多项分类。多数情况下无法用直线对类别进行分类,分类的类别有三种及以上。
- 分类的流程:
- 数据的预处理,数据的整理、操作;
- 模型的选取,分类器的选择;
- 模型的训练 :选择超参数进行调校,参数的调校;
- 使用模型进行预测(推理):使用未知数据对模型的精读进行检验,将模型嵌入到Web服务等实际应用中。
- 数据的准备 使用scikit-learn.datasets模块的make_classification()函数
# 导入需要使用的模块
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:随机数的种子(决定随机数生成规律的因素)
- Classifier虚构分类器:
# 导入需要使用的模块
# 以模型为单位进行模块的导入
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)