基于python、scikit-learn ;
偏重于代码现实,供自己复习使用。
数据——模型(函数)——数据
1. 数据:向量化数据
1.1 文本数据
根据之前的文本分类的项目,也基本清楚了,文本数据向量化的两种核心方式:
one-hot编码和word embedding (词向量)。
当然,根据特征的选择方式不同,又可以细化分成
最普通的one-hot编码、最简单的词袋模型(1-gram)、tf-idf、n-gram
和 LSA、Word2Vec(CBOW、Skip-gram )等方法,
前者属于文本数据的离散表示,而后者是分布式表示!
1.2 图像数据
待总结
2. 模型:Model——估计器(estimator)模型
2.1 核心概念
估计器(estimator)
简化理解:
estimator = estimator’s constructor + model’s parameters
估计器 = 估计器的构造函数 + 模型参数
理解:估计器 = 模型 ≈ 分类器
说明:
① 我们见到的大多数估计器其实就是分类器
② 也把估计器称为模型
比如:sklearn.svm.SVC 类中的 SVC 分类器模型
>>> from sklearn import svm
>>> clf = svm.SVC(gamma=0.001, C=100.)
我们把我们的估计器实例命名为 clf ,因为它是一个分类器(classifier)。
- 注:模型参数的选择:
这里是手动设置的参数值。为了找到一个更好的参数值,我们可以使用 grid search 和 cross validation 等工具。
2.2模型基本方法:学习和预测
在 scikit-learn 中,分类的估计器(类)是一个 Python 对象,它实现了 fit(X, y) 和 predict(T) 等方法(类方法)。
理解:(在Python 角度)
估计器=Python类;
fit(X, y) 和 predict(T) 等方法 = 类方法
model.fit(X, y)
例如,clf.fit(),让分类器(实例)clf从模型中学习
model.predict(T)
例如,clf.prdict(),使用学习后的分类器进行预测
2.3实例
数据导入
$ python
>>> from sklearn import datasets
>>> iris = datasets.load_iris()
>>> digits = datasets.load_digits()
学习和预测
>>> from sklearn import svm
>>> clf = svm.SVC(gamma=0.001, C=100.)
>>> clf.fit(digits.data[:-1], digits.target[:-1])
SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma=0.001, kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
>>> clf.predict(digits.data[-1:])
array([8])
后续:
具体模型以及模型评估看后续记载