low profile,no profile
前言
说到数据分析平台,可能我们会想到重量级AWS和阿里云。他们提供的平台和服务可以进行数据分析和机器学习。我们今天分享的方法主要是针对无前端知识,无开发团队的业务人员,数据分析师和建模师,如何快速搭建数据分析和机器学习平台,让自己的日常工作更加方便。
人生苦短,我用python。没错,我们就是用纯python搭建!
我们初步需要实现如下功能:
设计一个网页版的用户界面,支持交互
支持从本地选取数据集
支持自动化可视化分析
支持回归分析和分类分析,机器学习算法多样
支持查看训练记录
支持查看所有训练模型的参数,结果,甚至绘图
支持预测新数据集
支持其他机器学习任务(比如异常检测,规则关联,自然语言处理)
其他细节
既有的组件方便快速设计网页:
该库已经内置很多组件,比如文本输入,侧边栏,按钮,滑块,图画显示等组件。
调用方式也很简单,就是单个函数即可。
部署和运行方便:只需要一个命令即可--> streamlit run main.py
pip install streamlitpip install streamlit_pandas_profilingpip install pycaret
项目文件夹里面包含如下
(文末提供源码):
main.py 我们的代码
data 文件夹用于放置示例数据集,可不用
mlruns 文件夹 ,用于管理训练的机器学习模块记录,系统会自动生成
logs.log 用于记录系统日志
import streamlit as st # 用于设计网页import pandas as pdfrom pandas_profiling import ProfileReport # 用于生成报表from streamlit_pandas_profiling import st_profile_report # 用于在streamlit中显示报表import osimport pycaret.classification as pc_cl # 自动机器学习分类import pycaret.regression as pc_rg # 自动机器学习回归import mlflow # 模型管理
接下来我们需要准备几个辅助函数,这些函数主要是用于处理一些用户交互的细节。
逐行读取logs.log,显示最末选定行数,用户可以设定行数。
def get_model_training_logs(n_lines = 10): file = open('logs.log', 'r') lines = file.read().splitlines() file.close() return lines[-n_lines:]
获取当前路径下特定类型的文件列表,比如data文件夹的所有csv文件
def list_files(directory, extension):
# list certain extension files in the folder
return [f for f in os.listdir(directory) if f.endswith('.' + extension)]