IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> scikit-learn 的设计 -> 正文阅读

[Python知识库]scikit-learn 的设计

1 核心API Core API

所有 scikit-learn 对象都有三个基本的接口:Estimators, Predictors 和 Transformers

1.1 Estimators

Estimators 的初始化和学习数据的过程是分开的,

初始化通过为模型公共属性赋值超参数(hyper-parameter)实现,
为便于使用,scikit-learn 为每个超参数都设置了默认值

模型学习通过 fit 方式执行,Estimators 学习到的参数作为公共属性暴露出来(如:coef_ 名字带短划线后缀),Estimators 返回其本身

因此,一个对象既是 Estimators 又是模型

from sklearn.linear_model import LogisticRegression

# 模型初始化
clf = LogisticRegression(penalty='l1')
# 模型学习
clf.fit(X_train, y_train)

1.2 Predictors

通过增加 predict 方法扩展了 estimator 为 predictor ,学习到参数的 estimator 可以输入数组 X_test 获得输出结果,

y_pred = clf.predict(X_test)

非监督方法也可以使用 predict 方法,如 kmeans

from sklearn.cluster import KMens

km = KMens(n_clusters=10)
km.fit(X_train)
clust_pred = km.predict(X_test)

predictors 也实现了一些方法评估预测结果的置信度,
一些 predictors 实现 predict_proba 方法返回类别可能性
predictors 提供 score 方法用于评估结果

1.3 Transformers

Transformers 支持在预处理中进行特征选择,特征提取,特征降维

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)

在实践中,相同的预处理方法也需要用于测试集中

X_test = scaler.transform(X_test)

因为 fit 方法返回 estimator 本身,可以使用链式操作

X_train = StrandarScaler().fit(X_train).transform(X_train)

更进一步,每一个 transformer 都提供了相当于 fit(X_train).transform(X_train) 的 fit_transform(X_train) 方法

2 高级API Advanced API

2.1 Meta-estimators

一些算法可以将其它算法作为参数,如集成学习中(决策树)、多分类、多标签分类

from sklearn.multiclass import OneVsOneClassifier

ovo_lr = OneVsOneClassifier(LogisticRegression(penalty='l1'))

2.2 Pipelines and feature unions

estimator 可以由多个基础的 estimator 组合而成,

pipeline 根据最后一个 estimator 决定其自身为 predictor 或 transformer

FeatureUnion 连接多个 transformers 的输出作为一个结果

from sklearn.pipline import FeatureUnion, Pipeline
from sklearn.decomposition import PCA, KernelPCA
from sklearn.feature_selection import SlectKBest

union = FeatureUnion([("pca", PCA()), ("kpca",KernelPCA(kernel="rbf"))])

Pipeline([("feat_union", union),
			("feat_sel", SelectKBest(k=10)),
			("log_reg", LogisticRegression(penalty="l2"))
		]).fit(X_train, y_train).predict(X_test)

3.3 Model selection

模型选择由两个 meta-estimators 支持:GridSearchCV 和 RandomizedSearchCV

它们将输入模型作为待优化的模型,输入模型的超参数需要优化

from sklearn.grid_search import GridSearchCV
from sklearn.svm import SVC

param_grid = [
{"kernel": ["linear"], "C":[1, 10, 100, 1000]},
{"kernel": ["rbf"], "C":[1, 10, 100, 1000], "gamma":[0.001, 0.0001]},
]
clf = GridSearchCV(SVC(), param_grid, scoring="f1", cv=10)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)

通过 best_estimator_ 获取最佳模型

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:26:58  更:2022-02-26 11:30:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:36:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码