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

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

获取相关文件

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

导入相关库

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)

模型保存

import joblib
joblib.dump(clf, './dtclf_model.pkl')

模型在线预测

在右侧实验区ssh窗口输入以下命令

python3 model.py

在线预测测试:

在右侧实验区+号打开open http或直接打开{host0.http_url}填写表单后提交,看看实际效果怎么样?

总结:

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

注意:一定要按顺序从头到尾运行。

移动端设备除iPad Pro外,其它移动设备仅能阅读基础的文本文字。
建议使用PC或笔记本电脑,浏览器使用Chrome或FireFox进行浏览,以开启左侧互动实验区来提升学习效率,推荐使用的分辨率为1920x1080或更高。
我们坚信最好的学习是参与其中这一理念,并致力成为中文互联网上体验更好的学练一体的IT技术学习交流平台。
您可加QQ群:575806994,一起学习交流技术,反馈网站使用中遇到问题。
内容、课程、广告等相关合作请扫描右侧二维码添加好友。

狐狸教程 Copyright 2021

进入全屏