ML13——监督学习

基本分类模型

K近邻分类器

创建一组数据X和它对应的标签y


In [5]:
X=[[0],[1],[2],[3]]
y=[0,0,1,1]

In [6]:
from sklearn.neighbors import KNeighborsClassifier

In [7]:
neigh = KNeighborsClassifier(n_neighbors=3)

In [8]:
neigh.fit(X,y)


Out[8]:
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=3, p=2,
           weights='uniform')

调用predict()函数,对未知样本[1.1]进行分类


In [10]:
print(neigh.predict([[1.1]]))


[0]

决策树的使用

导入sklearn内嵌的鸢尾花数据集


In [11]:
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import cross_val_score

创建一颗基于基尼系数的决策树


In [12]:
clf = DecisionTreeClassifier()

In [14]:
iris = load_iris()

In [15]:
cross_val_score(clf,iris.data,iris.target,cv=10)


Out[15]:
array([ 1.        ,  0.93333333,  1.        ,  0.93333333,  0.93333333,
        0.86666667,  0.93333333,  1.        ,  1.        ,  1.        ])

利用决策树fit()函数训练模型,并使用predict()函数进行预测


In [16]:
clf.fit(X,y)
clf.predict(x)


Out[16]:
array([0, 0, 1, 1])

决策树本质上是一种寻找对特征空间上的划分,旨在构建一个训练数据拟合的好,并且复杂度小的决策树

朴素贝叶斯分类器

朴素贝叶斯分类器介绍

在sklearn库中,包含三个朴素贝叶斯分类器: naive_bayes.GussianNB:高斯朴素贝叶斯 naive_bayes.MultinomialNB:针对多项式模型的朴素贝叶斯分类器 naive_bayes.BernoulliNB:针对多元伯努利模型的朴素贝叶斯分类器 在sklearn库中,可以使用sklearn.naive_bayes.GaussianNB创建一个高斯朴素贝叶斯分类器

朴素贝叶斯分类器的使用

导入numpy库,并构造训练数据X和y


In [1]:
import numpy as np
X = np.array([[-1,-1],[-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
y = np.array([1,1,1,2,2,2])

导入高斯贝叶斯分类器


In [2]:
from sklearn.naive_bayes import GaussianNB

使用默认参数,创建一个高斯朴素贝叶斯分类器,并将该分类器赋给变量clf。


In [3]:
clf = GaussianNB(priors=None)

In [4]:
clf.fit(X,y)
print(clf.predict([[-0.8,-1]]))


[1]
  • 朴素贝叶斯是典型的生成学习方法,由训练数据学习联合概率分布,并求得后验概率分布
  • 朴素贝叶斯一般在小规模数据上的表现很好,适合进行多分类任务