7.5 创建模型

字数 899阅读 88

机器学习是一种重在寻找数据中的模式并使用这些模式来做出预测的研究和算法的门类。使用何种机器学习算法,其很大程度上依赖于可用数据的性质和数量以及每一个特定用例中的训练目标。机器学习算法主要分为监督学习、无监督学习和半监督学习三大类,本书第二部分将具体讨论每种算法模型的数学原理及代码。本节简单介绍每种算法的含义以及导入各种算法模型的方法。sklearn提供了监督模型和无监督模型两类算法,然后通过调节算法参数实现目标分类。

7.5.1 监督学习算法

1. 线性回归(Linear Regression)

回归可以可以勾画出因变量与一个或多个因变量之间的状态关系。回归可用于识别变量之间的连续关系,即便这个关系不是非常明显。其场景可以应用于路面交通流量分析、邮件过滤等。利用sklearn库创建回归模型,示例代码:

from sklearn.linear_model import LinearRegression
lr = LinearRegression(normalize=True)

2. 支持向量机(Support Vector Machine)

基于超平面(hyperplane),支持向量机可以对数据群进行分类。支持向量机擅长在变量X与其它变量之间进行二元分类操作,无论其关系是否是线性的。其场景应用于新闻分类、手写识别等。创建支持向量机模型,示例代码:

from sklearn.svm import SVC
svc = SVC(kernel='linear')

3. 朴素贝叶斯分类器(Navie Bayes Classification)

朴素贝叶斯分类器用于计算可能条件的分支概率。每个独立的特征都是“朴素”或条件独立的,因此它们不会影响别的对象。朴素贝叶斯分类器可以计算多个特征的联合条件概率。其优点对于在小数据集上有显著特征的相关对象,可对其进行快速分类。场景主要应用于情感分析、消费者分类等。
  创建朴素贝叶斯模型,示例代码:

from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()

4. K邻近模型(K Nearest Neighbor)

K邻近算法的工作原理对新数据选择样本数据集中前k个最相似的数据中出现次数最多的分类,作为新数据的分类。其算法优点是精度高、对异常值不敏感,适用于数值型和标称型数据。
  创建K邻近模型,示例代码:

from sklearn import neighbors
knn = neighbors.KNeighborsClassifier(n_neighbors=5)

7.5.2 无监督学习

1. 主成分分析PCA(Principal Component Analysis)

主成分分析通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数的降维。示例代码:

from sklearn.decomposition import PCA
pca = PCA(n_components=0.95)

2. 聚类分析(K-means)

聚类算法K-means的目标是在数据中找到分组,变量K代表分组的个数。该算法是把一组数据按照相似性和差异性分为几个类别,其目的是使得属于同一类别的数据间的相似性尽可能大,不同类别中的数据间的相似性尽可能小。它可以应用到客户群体的分类、客户背景分类等。
  加载模型,示例代码:

from sklearn.cluster import KMeans
k_means = KMeans(n_clusters=3, random_state=0)

推荐阅读更多精彩内容