从零到部署,在线实现一个完整的机器学习任务(以美国居民收入预测为例)

ferriswym 2020-06-14

本文转自https://freeaihub.com/article/form-zeo-to-deploy-machine-learinging-task-with-sklearn.html,该页可在线实现本文内的项目内容。

本节我们将使用python机器学习库sklearn,以及web服务库tornado 来从零完成一个完整的机器学习任务流程。如果阅读起来有困难,建议您先学习了解这两门教程,相关基础教程地址:sklearn,tornado

获取相关文件

!cp /share/tar/income.tar .
!tar xvf income.tar
!ls

导入相关库

import pandas as pd
from sklearn import tree
from sklearn import preprocessing

读取数据

adult_data = pd.read_csv(‘./us-adult-income.csv‘)
adult_data.head()
adult_data.info()
adult_data.describe()
adult_data.shape

定义特征和目标(target)

#列出数据集的列名
adult_data.columns
#定义特征和目标列
feature_columns = [u‘workclass‘, u‘education‘, u‘marital-status‘, u‘occupation‘, u‘relationship‘, u‘race‘, u‘gender‘, u‘native-country‘]
label_column = [‘income‘]
features = adult_data[feature_columns]
label = adult_data[label_column]

特征处理/特征工程

features = pd.get_dummies(features)
features.head(2)
features.shape
list(features.columns)

构建模型

#使用决策树分类器
clf = tree.DecisionTreeClassifier(criterion=‘entropy‘, max_depth=4)
#用决策树分类器拟合数据
clf = clf.fit(features.values, label.values)
print(clf)

可视化决策树

#安装可视化所需组件
!pip3 install pydotplus -i https://pypi.tuna.tsinghua.edu.cn/simple/
!apt install graphviz -y
#可视化决策树
import pydotplus
from IPython.display import display, Image

dot_data = tree.export_graphviz(clf,out_file=None, feature_names=features.columns,class_names = [‘<=50k‘, ‘>50k‘], filled = True,rounded =True)

graph = pydotplus.graph_from_dot_data(dot_data)
display(Image(graph.create_png()))

模型预测

clf.predict(features.values)

模型保存

cd ~/income
import joblib
joblib.dump(clf, ‘./dtclf_model.pkl‘)

模型在线预测

cd ~/income
!python model.py

在线预测测试: 打开{host0.http_url}填写表单后提交,看看实际效果怎么样?

总结:

这是一个基于python sklearn库简单完整的机器学习任务应用案例,虽然很简单,但是涉及到完整的机器学习任务的流程,同学们可以反复练习,或发布自己机器学习任务案例。

相关推荐