TensorFlow 的简化接口 Scikit Flow

Scikit Flow 是 TensorFlow 的简化接口,模仿 Scikit 学习,让用户可以在预测分析和数据挖掘中使用。

源代码在:https://github.com/google/skflow

为什么使用 TensorFlow?

  • TensorFlow 提供构建各种不同类型机器学习应用的核心

  • 会继续在分布式方向和常规管道机器中进行创新

为什么使用 Scikit Flow?

  • 可以平滑的从单向机器学习 Scikit Learn 过渡到更开放的,可以构建不同类型的 ML 模型。用户可以通过 fit/predict 和切换到 TensorFlow APIs。

  • 提供一系列的参考模型,方便与现有的代码集成。

Linear Classifier

?

1
2
3
4
5
6
7
import  skflow
from  sklearn  import  datasets, metrics
iris  =  datasets.load_iris()
classifier  =  skflow.TensorFlowLinearClassifier(n_classes = 3 )
classifier.fit(iris.data, iris.target)
score  =  metrics.accuracy_score(classifier.predict(iris.data), iris.target)
print ( "Accuracy: %f"  %  score)

Linear Regressor

?

1
2
3
4
5
6
7
8
9
import  skflow
from  sklearn  import  datasets, metrics, preprocessing
 
boston  =  datasets.load_boston()
=  preprocessing.StandardScaler().fit_transform(boston.data)
regressor  =  skflow.TensorFlowLinearRegressor()
regressor.fit(X, boston.target)
score  =  metrics.mean_squared_error(regressor.predict(X), boston.target)
print  ( "MSE: %f"  %  score)

Deep Neural Network

?

1
2
3
4
5
6
7
8
import  skflow
from  sklearn  import  datasets, metrics
 
iris  =  datasets.load_iris()
classifier  =  skflow.TensorFlowDNNClassifier(hidden_units = [ 10 20 10 ], n_classes = 3 )
classifier.fit(iris.data, iris.target)
score  =  metrics.accuracy_score(classifier.predict(iris.data), iris.target)
print ( "Accuracy: %f"  %  score)

Custom model

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import  skflow
from  sklearn  import  datasets, metrics
 
iris  =  datasets.load_iris()
 
def  my_model(X, y):
     """This is DNN with 10, 20, 10 hidden layers, and dropout of 0.5 probability."""
     layers  =  skflow.ops.dnn(X, [ 10 20 10 ], keep_prob = 0.5 )
     return  skflow.models.logistic_regression(layers, y)
 
classifier  =  skflow.TensorFlowEstimator(model_fn = my_model, n_classes = 3 )
classifier.fit(iris.data, iris.target)
score  =  metrics.accuracy_score(classifier.predict(iris.data), iris.target)
print ( "Accuracy: %f"  %  score)

未来计划

  • 更好的处理类别变量

  • 文本分类

  • 图像 (CNNs)

  • 更多 & 更深


你可能感兴趣的:(tensorflow,scikit)