【python基础知识】Day29 类的装饰器

知识点回顾

  1. 类的装饰器
  2. 装饰器思想的进一步理解:外部修改、动态
  3. 类方法的定义:内部定义和外部定义

类修改器的逻辑:接收一个类,返回一个修改后的类。修改内柔如下:

  1. 添加新的方法或属性(如示例中的 log 方法)。
  2. 修改原有方法(如替换 init 方法,添加日志)。
  3. 甚至可以返回一个全新的类(继承或组合原类)
# 定义类装饰器
def add_method(cls):
    # 动态添加一个方法
    def new_method(self):
        return f"这是动态添加的方法,来自 {self.__class__.__name__}"
    cls.dynamic_method = new_method
    return cls
 
# 使用装饰器修饰类
@add_method
class MyClass:
    # 3. 类内部定义的方法
    def __init__(self, name):
        self.name = name
    
    def greet(self):
        return f"你好,我是 {self.name}"
 
# 类外部定义
def external_method(self):
    return f"这是外部定义的方法,访问属性: {self.name}"
 
# 将外部方法绑定到类
MyClass.external_method = external_method
 
 
obj = MyClass("示例对象")
print(obj.greet())
print(obj.dynamic_method())
print(obj.external_method())

29天总结

1. Python基础语法
-数据类型:列表、字典、集合、元组的使用
- 循环语句 : for 循环(如累加1-100)、 while 循环
- 条件语句 : if-elif-else 结构(如温度预警判断)
- 函数定义 : def 关键字定义函数(如 debug_example() 函数)

- 类的定义:class   
- 字符串格式化 :f-string的使用(如 print(f"平均分数: {average_score:.3f}") )

机器学习


2. 数据处理与分析  (Pandas库) 

预处理基础操作
  - 数据读取( pd.read_csv() )
  - 数据类型筛选( select_dtypes() )
  - 缺失值处理( fillna() )
  - 独热编码( pd.get_dummies() )
  - 列重命名( rename() )

预处理进阶操作
  - 标签编码( .map() )
  - 标准化( StandardScaler )
  - 缺失值填充( SimpleImputer )
- Numpy基础 :数组操作、数值计算(如 np.bincount() )
3. 数据可视化
- matplotlib :图形绘制、字体设置( plt.rcParams )
- seaborn :高级统计图形绘制

4. 模型训练与评估
(1)模型训练 :
  - 随机森林( RandomForestClassifier )
  - 交叉验证( StratifiedKFold )
  - 超参数调优( GridSearchCV )
(2)评估指标 :
  - 分类报告( classification_report )
  - 混淆矩阵( confusion_matrix )
  - 精确率/召回率/F1值( precision_score 等)


5. 不平衡数据处理
- 过采样技术 :
  - 随机过采样( RandomOverSampler )
  - SMOTE过采样( SMOTE )
- 代价敏感学习 :
  - 类别权重调整( class_weight='balanced' )
  - 阈值调整

6.SHAP可解释性分析
- SHAP值计算 : shap.TreeExplainer 解释模型预测
- 特征重要性分析 :通过SHAP值可视化特征影响


7. 机器学习流水线
- Pipeline构建 :
  - 有序特征处理( OrdinalEncoder )
  - 标称特征处理( OneHotEncoder )
  - 连续特征处理( StandardScaler )
- 特征组合 :通过 ColumnTransformer 组合不同预处理步骤


8. 系统与文件操作
- OS模块 :(主要用于云服务器操作)
  - 环境变量操作( os.environ )
  - 文件路径处理
- 时间处理 : time 模块用于计算耗时(如 time.time() 记录训练时间)

python通识

9. 调试与错误处理
- 异常捕获 : try-except 块处理常见错误(如 NameError 、 IndexError )
- 警告控制 : warnings.filterwarnings("ignore")
10. 代码组织与工程化
- 模块化设计 :将数据预处理、模型训练、评估等步骤分离
- 交叉验证 :使用 cross_validate 实现自动化评估
- 参数化配置 :通过字典和列表管理超参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值