机器学习_scikit_learn演示。

1.机器学习的分类

1.1有监督学习 :特征(A)和标签(vector_b)之间建模

分类:预测离散标签

特征 1、特征 2……特征 n → 垃圾邮件关键词与短语出现的频次归一化向量(“Viagra” “Nigerian prince”等)。
标签 →“垃圾邮件”或“普通邮件”。

  • 高斯朴素贝叶斯分类
  • 支持向量机
  • 随机森林分类

回归:预测连续标签

特征 1、特征 2……特征 n → 具有若干波长或颜色的星系的亮度。
标签 → 星系的距离或红移(redshift)。

1.2无监督学习:不带任何标签

聚类:为无标签数据添加标签 ——数据被聚类算法自动分成若干离散的组别。

  • k-means :簇中的每个 点到该中心的总距离最短
  • 高斯混合模型
  • 谱聚类

降维:推断无标签数据的结构

  • 主成分分析
  • Isomap 算法
  • 局部线性嵌入算法

machine_learning

步骤:

  1. 样本数量少于50个,继续获取更多数据
  2. 多于50个样本数据后,若预测变量属于标签类数据进入有监督学习;若无标签进入无监督学习
  3. 有监督学习,若预测变量是离散型,分类问题;若预测变量是连续型,回归问题
  4. 无监督学习:不带任何标签。为无标签数据添加标签,聚类;推断无标签数据的结构,降维

2.Scikit-Learn回归模型演示

  1. 从 Scikit-Learn 中导入评估器类。
from sklearn.linear_model import LinearRegression
  1. 模型超参数(hyperparameter)。
model = LinearRegression(fit_intercept=True)
model
  1. 获取特征矩阵和目标数组。
import matplotlib.pyplot as plt
import numpy as np

rng = np.random.RandomState(42)
x = 10 * rng.rand(50)
y = 2 * x - 1 + rng.randn(50)
plt.scatter(x, y);

X = x[:, np.newaxis]
X.shape

散点图

  1. 调用模型实例的 fit() 方法对数据进行拟合。
model.fit(X, y)


model.coef_
model.intercept_
  1. 对新数据应用模型:
# 将这些x值转换成[n_samples, n_features]的特征矩阵
xfit = np.linspace(-1, 11)
Xfit = xfit[:, np.newaxis]
yfit = model.predict(Xfit)


# 把原始数据和拟合结果可视化出来
plt.scatter(x, y)
plt.plot(xfit, yfit)

模型拟合

6.监督学习模型,predict() 预测新数据的标签; 无监督学习模型,使用 transform() 或 predict() 转换或推断数据的性质。