Py之skflow:skflow的简介、安装、使用方法、代码实现之详细攻略

目录

skflow的简介

skflow的安装

skflow的使用方法

skflow的代码实现


skflow的简介

skflow,TF中的Scikit-learn,为了避免Tensorflow中自己一点点搭建学习系统,对TF进一步封装的工具包,包含很多经典的机器学习模型.如线性回归器、深度全连接的神经网络。tensorflow的抽象上层API接口,提供了完全类似于sklearn的API接口。使用非常简单,只要有sklearn的使用经验,构建一个模型就是简单几个步骤,模型参数配置,fit,predict等等。其实,skflow以前是单独一个项目,地址为:https://github.com/tensorflow/skflow
    目前官方已经没有维护这个项目了,因为已经完全把它整合到tensorflow中去了,地址为:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/learn/python/learn

  • -为了平稳地从Scikit单线机器学习世界过渡到构建不同形状的ML模型的更开放的世界。您可以从使用fit/predict开始,当您感觉舒服时,再导入TensorFlow api。
  • -提供一套易于与现有代码集成的参考模型。

WARNING: We are not maintaining PyPi package anymore. Please install TensorFlow and install Scikit Flow from there.   This is a simplified interface for TensorFlow, to get people started on  predictive analytics and data mining.   Library covers variety of needs from linear models to Deep Learning  applications like text and image understanding.
    警告:我们不再维护pypi包。请安装TensorFlow并从中安装SciKit Flow。这是一个简化的TensorFlow界面,可以帮助人们开始预测分析和数据挖掘。Library涵盖了从线性模型到文本和图像理解等深入学习应用程序的各种需求。

PS:博主建议不要再使用该库,很久已经没有更新了!python3+不同TensorFlow版本使用的时候,会出现很多bug。与skflow相匹配的版本是TensorFlow0.8.0 ,所以,对于TensorFlow1.0+的用户,又想用 skflow 的话,建议安装 TensorFlow0.8.0。如果非要在TensorFlow1.0+上使用,参考文章TensorFlow之API:TensorFlow的高级机器学习API——tf.contrib.learn的简介、使用方法、案例应用之详细攻略
比如UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb4 in position 1193: invalid start byte,所以还是使用最新的TensorFlow and install Scikit Flow。

skflow pypi

skflow的安装

pip install skflow==0.1.0

skflow的使用方法

Scikit Flow封装了很多的TensorFlow的最新的API,并且将它们封装成了很类似于Scikit Learn API的样式。TensorFlow的核心即是基于构建与执行某个图,这是一个非常棒,但也是非常难以直接上手的概念。如果我们看Scikit Flow的底层封装,我们可以看到整个模型被分为了以下几个部分:

  • TensorFlowTrainer — 用于寻找所有优化器的类(使用梯度进行了部分的图构建,进行了一些梯度裁剪并且添加一些优化器)
  • logistic_regression —用于构造Logistic回归图的函数
  • linear_regression — 用于构造线性回归图的函数
  • DataFeeder — 用于将训练数据填充到模型中 (由于TensorFlow使用了数据集合中的随机的一些部分作为随机梯度下降的数据,因此需要这样的Mini数据批处理)。
  • TensorFlowLinearClassifier — 用LogisticRegression 模型实现了 Scikit Learn提供的某个接口。它提供了一个模型和一个训练器,并且根据给定的数据集合利用fit()方法进行数据训练,并且通过predict()方法进行预测。
  • TensorFlowLinearRegressor — 类似于 TensorFlowClassifier, 但是使用LinearRegression 作为模型。

skflow的代码实现

1、从scikit-learn中加载鸢尾花数据,构建一个线性分类器,然后使用fit进行拟合,最后使用predict进行预测,并进行性能评估。

import tensorflow.contrib.learn.python.learn as learn
from sklearn import datasets, metricsiris = datasets.load_iris()
classifier = learn.LinearClassifier(n_classes=3)
classifier.fit(iris.data, iris.target, steps=200, batch_size=32)
score = metrics.accuracy_score(iris.target, classifier.predict(iris.data))
print("Accuracy: %f" % score)

2、利用DNN算法对泰坦尼克号号数据集进行乘客获救与否预测

import random
import pandas
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
from sklearn.utils import check_array
from sklearn.cross_validation import train_test_splitimport tensorflow as tfimport skflowtrain = pandas.read_csv('data/titanic_train.csv')
y, X = train['Survived'], train[['Age', 'SibSp', 'Fare']].fillna(0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)lr = LogisticRegression()
lr.fit(X_train, y_train)
print accuracy_score(lr.predict(X_test), y_test)# Linear classifier.random.seed(42)
tflr = skflow.TensorFlowLinearClassifier(n_classes=2, batch_size=128,steps=500, learning_rate=0.05)
tflr.fit(X_train, y_train)
print accuracy_score(tflr.predict(X_test), y_test)# 3 layer neural network with rectified linear activation.random.seed(42)
classifier = skflow.TensorFlowDNNClassifier(hidden_units=[10, 20, 10],n_classes=2, batch_size=128, steps=500, learning_rate=0.05)
classifier.fit(X_train, y_train)
print accuracy_score(classifier.predict(X_test), y_test)# 3 layer neural network with hyperbolic tangent activation.def dnn_tanh(X, y):layers = skflow.ops.dnn(X, [10, 20, 10], tf.tanh)return skflow.models.logistic_regression(layers, y)random.seed(42)
classifier = skflow.TensorFlowEstimator(model_fn=dnn_tanh,n_classes=2, batch_size=128, steps=500, learning_rate=0.05)
classifier.fit(X_train, y_train)
print accuracy_score(classifier.predict(X_test), y_test)

参考文章
TensorFlow实战之Scikit Flow系列指导:Part 1

Py之skflow:skflow的简介、安装、使用方法、代码实现之详细攻略相关推荐

  1. DL之DNN优化技术:DNN中抑制过拟合/欠拟合、提高泛化能力技术的简介、使用方法、案例应用详细攻略

    DL之DNN优化技术:DNN中抑制过拟合.提高泛化能力技术的简介.使用方法.案例应用详细攻略 目录 抑制过拟合.提高泛化能力技术的简介 1.过拟合现象的表述

  2. ML之LiR之PLiR:惩罚线性回归PLiR算法简介、分类、代码实现之详细攻略

    ML之LiR之PLiR:惩罚线性回归PLiR算法简介.分类.代码实现之详细攻略 目录 PLiR算法简介 PLiR算法分类 PLiR算法代码实现 PLiR算法简介 更新-- PLiR算法分类 1.RiR ...

  3. ML/DL之预测分析类:利用机器学习算法进行预测分析的简介、分析、代码实现之详细攻略

    ML/DL之预测分析类:利用机器学习算法进行预测分析的简介.分析.代码实现之详细攻略 目录 机器学习算法进行预测的简介 机器学习算法进行预测的分析 机器学习算法进行预测的代码实现 机器学习算法进行预测 ...

  4. TF之CNN:Tensorflow构建卷积神经网络CNN的简介、使用方法、应用之详细攻略

    TF之CNN:Tensorflow构建卷积神经网络CNN的简介.使用方法.应用之详细攻略 目录 TensorFlow 中的卷积有关函数入门 1.tf.nn.conv2d函数 案例应用 1.TF之CNN ...

  5. CREO:CREO软件之零件【工具(调查/模型意图/实用工具)】、【视图(可见性/方向/模型显示/显示/窗口)】的简介及其使用方法(图文教程)之详细攻略

    CREO:CREO软件之零件[工具(调查/模型意图/实用工具)].[视图(可见性/方向/模型显示/显示/窗口)]的简介及其使用方法(图文教程)之详细攻略 目录

  6. AI:大模型领域最新算法SOTA总结、人工智能领域AI工具产品集合分门别类(文本类、图片类、编程类、办公类、视频类、音频类、多模态类)的简介、使用方法(持续更新)之详细攻略

    AI:大模型领域最新算法SOTA总结.人工智能领域AI工具产品集合分门别类(文本类.图片类.编程类.办公类.视频类.音频类.多模态类)的简介.使用方法(持续更新)之详细攻略 导读:由于ChatGPT. ...

  7. CREO:CREO软件之零件【模型】基准之基准平面、基准轴、基准点、坐标系、曲线、基准曲线、参考、图形、基准带、偏移平面、默认坐标系的简介及其使用方法(图文教程)之详细攻略

    CREO:CREO软件之零件[模型]基准之基准平面.基准轴.基准点.坐标系.曲线.基准曲线.参考.图形.基准带.偏移平面.默认坐标系的简介及其使用方法(图文教程)之详细攻略 目录

  8. CREO:CREO软件之零件【模型】工程之孔、壳、筋、斜度(拔模)、倒圆角、自动倒圆角、倒角、环形折弯、骨架折弯、修饰草绘、修饰螺纹的简介及其使用方法(图文教程)之详细攻略

    CREO:CREO软件之零件[模型]工程之孔.壳.筋.斜度(拔模).倒圆角.自动倒圆角.倒角.环形折弯.骨架折弯.修饰草绘.修饰螺纹的简介及其使用方法(图文教程)之详细攻略 目录

  9. CREO:CREO软件之零件【分析】之管理、自定义、模型报告、测量、检查几何、设计研究的简介及其使用方法(图文教程)之详细攻略

    CREO:CREO软件之零件[分析]之管理.自定义.模型报告.测量.检查几何.设计研究的简介及其使用方法(图文教程)之详细攻略 目录

  10. CREO:CREO软件之工程图【表】之一明细表、表格创建、创建BOM球标、自动生成零件报表的简介及其使用方法(图文教程)之详细攻略

    CREO:CREO软件之工程图[表]之一明细表.表格创建.创建BOM球标.自动生成零件报表的简介及其使用方法(图文教程)之详细攻略 目录

最新文章

  1. hp-ux 集群,内存 小记
  2. recyclerview 软键盘_android-打开键盘时,Recyclerview不会滚动到结尾
  3. 无线节能信标核心板V4-测试-2021-4-3
  4. amd同步多线程_AMD下一代锐龙APU实锤!Zen3、RDNA2绝配
  5. Apple Swift编程语言入门教程
  6. Android SlidingMenu以及ActionBarSherlock的基础使用教程
  7. MQTT+ActiveMQ实现消息推送
  8. 小米路由器mini改打印服务器_如何把家里的闲置路由器用起来
  9. linux故障排查书籍,Linux系统故障排查和修复技巧.docx
  10. e300氛围灯哪里调节_保时捷macan内饰改装升级32色呼吸氛围灯
  11. VS2010 asp.net development server 无法展示svg图片
  12. jq 遍历map集合
  13. 模糊粗糙集及数据降维
  14. 小牛各个版本的限速破解方式-适用N1/M1/N1s----附加转向灯提示音修改
  15. as模拟器配置编译的Android,android studio连接雷电模拟器 【AS 模拟器】
  16. 解决无法安装locustio
  17. 各种笔记本进入BIOS的快捷键
  18. mac上安装R和RStudio
  19. java中的compareToIgnoreCase和compareTo的区别
  20. 电子采购平台解决方案:构建企业采购管理系统业务架构、应用场景

热门文章

  1. 高通软件发布版本简称
  2. static/final/常量模式
  3. java中String和char的区别
  4. 走过路过来看看各种实现跨域的方式~
  5. Http请求url参数字符集
  6. Hadoop集群管理与NFS网关
  7. 多种方法教你破解电信共享上网的限制
  8. 腾讯发布 2019 年研发报告:新增 12.9 亿行代码,74% 技术 Leader 仍在写代码
  9. 用户在电商网站中购买成功了,那么 TA 在微服务中经历了什么?
  10. 为什么不应该重写 service 方法?