1. 数据质量管理——CleanLab
GitHub: https://github.com/cleanlab/cleanlab 功能: 自动检测和清理数据集中的问题 特点: 特别适合机器学习数据集的标签和数据质量检查 优势: 自动化程度高,可以节省大量手动检查数据的时间 安装: pip install cleanlab
代码示例:
from cleanlab.classification import CleanLearning
from sklearn.linear_model import LogisticRegression
# 初始化清洗器
cl = CleanLearning(clf=LogisticRegression())
# 训练并识别问题数据
cl.fit(X_train, y_train)
# 查找标签问题
issues = cl.find_label_issues()
# 高级用法
# 获取置信度矩阵
confident_joint = cl.confident_joint
# 获取噪声标签的概率
label_quality_scores = cl.get_label_quality_scores()
2. 快速模型评估—— LazyPredict
PyPI: https://pypi.org/project/lazypredict/ 功能: 同时训练和评估多个机器学习模型 特点: 支持回归和分类任务 优势: 只需几行代码就能比较多个模型的性能 安装: `pip install lazypredict 代码示例:`
from lazypredict.Supervised import LazyRegressor, LazyClassifier
# 回归任务
reg = LazyRegressor(verbose=0, ignore_warnings=True)
models_train, predictions_train = reg.fit(X_train, X_test, y_train, y_test)
# 分类任务
clf = LazyClassifier(verbose=0, ignore_warnings=True)
models_train, predictions_train = clf.fit(X_train, X_test, y_train, y_test)
# 查看模型性能比较
print(models_train)
3. 智能数据可视化——Lux
GitHub: https://github.com/lux-org/lux 功能: 快速数据可视化和分析 特点: 提供简单高效的数据探索方式 优势: 自动推荐合适的可视化方式 安装: pip install lux-api
代码示例:
import lux
import pandas as pd
# 基础使用
df = pd.read_csv("dataset.csv")
df.visualize() # 自动生成可视化建议
# 高级用法
# 指定感兴趣的变量
df.intent = ["column_A", "column_B"]
# 设置可视化偏好
df.set_intent_as_vis(["Correlation", "Distribution"])
4. 智能导入工具——PyForest
PyPI: https://pypi.org/project/pyforest/ 功能: 一键导入数据科学相关的库 特点: 节省编写导入语句的时间 优势: 包含了常用的数据科学库 安装: pip install pyforest
代码示例:
from pyforest import *
# 使用时自动导入
df = pd.read_csv("data.csv") # pandas自动导入
plt.plot([1, 2, 3]) # matplotlib自动导入
# 查看已导入的模块
active_imports()
5. 交互式数据分析——PivotTableJS
PyPI: https://pypi.org/project/pivottablejs/ 官网:https://pivottable.js.org/examples/ 功能: 在Jupyter Notebook中交互式分析数据 特点: 无需编写代码即可进行数据透视分析 优势: 适合非技术人员使用 安装: pip install pivottablejs
代码示例:
from pivottablejs import pivot_ui
# 创建交互式数据透视表
pivot_ui(df)
# 自定义配置
pivot_ui(df,
rows=['category'],
cols=['year'],
aggregatorName='Sum',
vals=['value'])
6. 教学可视化工具——Drawdata
PyPI: https://pypi.org/project/drawdata/ 功能: 在Jupyter Notebook中绘制2D数据集 特点: 可视化学习机器学习算法的行为 优势: 特别适合教学和理解算法原理 安装: pip install drawdata
代码示例:
import drawdata
import pandas as pd
# 创建交互式绘图界面
df = drawdata.get_data()
# 导出绘制的数据
df.to_csv('drawn_data.csv')
7. 代码质量工具——Black
PyPI: https://pypi.org/project/black/ 功能: Python代码格式化工具 特点: 统一的代码格式规范 优势: 提高代码可读性,被广泛使用 安装: pip install black
代码示例:
# 命令行使用
# black your_script.py
# 或在Python中使用
import black
# 格式化代码字符串
formatted_code = black.format_str(source_code, mode=black.FileMode())
# 格式化整个项目
# black .
# 检查模式(不实际修改文件)
# black --check .
8. 低代码机器学习——PyCaret
GitHub: https://github.com/pycaret/pycaret 官网:https://www.pycaret.org/ 功能: 低代码机器学习库 特点: 自动化机器学习工作流程 优势: 降低机器学习项目的开发难度 安装: pip install pycaret
代码示例:
from pycaret.classification import *
# 设置实验
exp = setup(data, target='target_column')
# 比较所有模型
best_model = compare_models()
# 创建模型
model = create_model('rf') # 随机森林
# 调优模型
tuned_model = tune_model(model)
# 预测
predictions = predict_model(best_model, data=test_data)
# 保存模型
save_model(model, 'model_name')
9. 深度学习框架——PyTorch-Lightning
文档: https://lightning.ai/docs/pytorch/stable/ 功能: PyTorch的高级封装 特点: 简化模型训练流程,减少样板代码 优势: 让研究人员更专注于创新而不是编写基础代码 安装: pip install pytorch-lightning
代码示例:
import pytorch_lightning as pl
import torch.nn.functional as F
class MyModel(pl.LightningModule):
def __init__(self):
super().__init__()
self.layer = nn.Linear(28*28, 10)
def training_step(self, batch, batch_idx):
x, y = batch
y_hat = self(x)
loss = F.cross_entropy(y_hat, y)
self.log('train_loss', loss)
return loss
def configure_optimizers(self):
return torch.optim.Adam(self.parameters(), lr=0.001)
# 训练模型
trainer = pl.Trainer(max_epochs=10, gpus=1)
trainer.fit(model, train_loader, val_loader)
10. Web应用开发——Streamlit
官网: https://streamlit.io 功能: 创建数据科学web应用 特点: 简单易用的界面创建工具 优势: 快速部署机器学习模型和数据可视化 安装: pip install streamlit
代码示例:
import streamlit as st
import pandas as pd
import plotly.express as px
st.title("数据分析仪表板")
# 侧边栏配置
with st.sidebar:
st.header("配置")
option = st.selectbox("选择图表类型", ["散点图", "折线图", "柱状图"])
# 文件上传
uploaded_file = st.file_uploader("选择CSV文件")
if uploaded_file:
df = pd.read_csv(uploaded_file)
st.dataframe(df)
# 数据统计
st.write("数据统计摘要")
st.write(df.describe())
# 创建可视化
if option == "散点图":
fig = px.scatter(df, x='column1', y='column2')
elif option == "折线图":
fig = px.line(df, x='column1', y='column2')
else:
fig = px.bar(df, x='column1', y='column2')
st.plotly_chart(fig)
# 下载处理后的数据
st.download_button(
label="下载处理后的数据",
data=df.to_csv(index=False),
file_name='processed_data.csv',
mime='text/csv'
)
使用建议
入门阶段:
从PyCaret和Streamlit开始 使用LazyPredict快速了解不同模型效果 利用Lux进行初步数据探索 通过Drawdata加深对算法的理解
进阶阶段:
使用CleanLab提高数据质量 用PyTorch-Lightning优化深度学习工作流 探索Lux进行高级数据可视化 使用Black维护代码质量 深入研究各工具的高级特性
团队协作:
使用Black保持代码风格一致 用Streamlit展示项目成果 采用PivotTableJS进行团队数据分析 使用PyForest简化环境管理 建立统一的代码规范和工作流程
项目部署:
Streamlit用于快速部署原型 PyTorch-Lightning用于模型生产部署 PyCaret用于快速实验和模型选择 注意性能优化和扩展性考虑
最佳实践
工具组合
数据预处理:CleanLab + PyCaret 模型开发:PyTorch-Lightning + LazyPredict 可视化展示:Streamlit + Lux 代码质量:Black + PyForest
开发流程
数据探索阶段:Lux + PivotTableJS 模型实验阶段:LazyPredict + PyCaret 产品化阶段:PyTorch-Lightning + Streamlit 维护阶段:Black + 自动化测试
技能提升
循序渐进学习各工具 关注工具更新和新特性 参与社区讨论和贡献
这些Python工具的组合使用不仅能提高个人工作效率,还能促进团队协作和项目质量。随着数据科学领域的快速发展,这些工具也在不断进化,建议持续关注它们的更新和新功能,以便更好地应用到实际工作中。选择合适的工具组合,建立高效的工作流程,将极大地提升数据科学项目的开发效率和质量。
参考:https://x.com/akshay_pachaar/status/1855230462932942871
⬆️关注:领取Python、机器学习资料包⬆️
Python相关好书推荐
本书以数值分析原理为纲, 以算法设计为本, 基于Python 语言, 详细介绍了原理分析到 “自编码” 算法设计与应用的过程和思想, 旨在提升学生的数值计算和实践编码能力, 其数值算法设计思想可迁移到机器学习和深度学习,为学术深造和应用研究奠定科学计算和自编码基础. 本书共包含数值分析的12 个领域, 教师可以根据不同的学习对象和教学目的选择相应的章节. 书中计算方法均结合数学原理独立设计算法, 并结合经典数值算例辅助学习和理解, 且配备了实验题目, 使理论与实践、学习与提升相辅相成.
本书可作为普通高等院校理工科专业的实验实践配套教材, 也可作为计算数学领域的研究生教学用书.
王娟,女,博士,教授,硕士生导师. 国家级一流本科专业负责人,国家级一流本科课程负责人,中原领军人才,河南省高校教学名师,河南省教育厅学术技术带头人,首届全国高校青年教师教学竞赛一等奖获得者. 主持、参与完成国家基金项目4项,主持、参与省部级教学、科研项目10余项,在Neural Networks与Journal of Biological Dynamics,教育研究与实验等期刊发表论文30余篇.
(1) 本书包含了普通高等院校本科生、研究生数值分析或计算方法相关教材的绝大部分算法, 从实验实践教学方面,强化学生的应用能力和创新能力, 提高学生的算法素养, 增强学生的数学实践与审美意识.
(2)本书的核心价值是基于数学原理设计和编写算法, 即“自编码”(区别于调用库函数), 相当于把原理照进现实, 让“静态”的原理“走动”起来, 进而解决数学模型中的数值计算问题.
(3) 本书的所有算法均采用Python语言编写, Python可以与以数学原理、数值计算为基础的学科(如机器学习) 有效结合,与当下时代的科技需求相符合.
(4) 结合经典的数值算例辅助学习者理解和应用, 每个算法均有算例,用于验证算法的功能正确性, 以及算法的性能和求解精度等, 内容做到图文并茂,教学相长.
(5)强化学习者的创新实践能力, 提高学生的算法设计信心, 每章均配备实验题目, 有助于把学习者的兴趣和能力引向更深的层次.
(6)电子课件PPT,程序源代码齐备,易教易学.
扫描下面二维码可以抢先欣赏本书试读,试读内容包括目录和精彩章节.
电子课件+程序代码
电子课件:用书教师可以关注“科学EDU”公众号按步骤下载申请。
程序代码下载:https://github.com/zhubai-nyt(您也可以点击原文阅读直接下载)。
(1)这是一本基于数值分析原理和NumPy, 实现“自编码”式的算法设计的实践教材.
(2)包含数值分析的12 个领域, 囊括了绝大部分算法, 专注于实验实践教学.
(3)通过“自编码”学习拓展数值计算方法的思路(如验证原理、多角度分析问题等),加深对原理的认知,进而领悟数值计算的奥妙和计算之美.
(4) 电子课件PPT,程序源代码齐备,易教易学.
如果您对本书感兴趣,可以扫描如下二维码购买;您也可以点击立体封进入小程序购买,也可以点击“原文阅读”进入“科学教育”,看更多好书~
欢迎关注
科学出版社数学教育