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()
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)
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"])
pip install pyforest
from pyforest import *
# 使用时自动导入
df = pd.read_csv("data.csv") # pandas自动导入
plt.plot([1, 2, 3]) # matplotlib自动导入
# 查看已导入的模块
active_imports()
pip install pivottablejs
from pivottablejs import pivot_ui
# 创建交互式数据透视表
pivot_ui(df)
# 自定义配置
pivot_ui(df,
rows=['category'],
cols=['year'],
aggregatorName='Sum',
vals=['value'])
pip install drawdata
import drawdata
import pandas as pd
# 创建交互式绘图界面
df = drawdata.get_data()
# 导出绘制的数据
df.to_csv('drawn_data.csv')
pip install black
# 命令行使用
# black your_script.py
# 或在Python中使用
import black
# 格式化代码字符串
formatted_code = black.format_str(source_code, mode=black.FileMode())
# 格式化整个项目
# black .
# 检查模式(不实际修改文件)
# black --check .
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')
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)
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'
)
这些Python工具的组合使用不仅能提高个人工作效率,还能促进团队协作和项目质量。随着数据科学领域的快速发展,这些工具也在不断进化,建议持续关注它们的更新和新功能,以便更好地应用到实际工作中。选择合适的工具组合,建立高效的工作流程,将极大地提升数据科学项目的开发效率和质量。
参考:https://x.com/akshay_pachaar/status/1855230462932942871