完成返回模型详情列表

This commit is contained in:
haotian 2025-02-17 16:37:14 +08:00
parent 228581bc68
commit ec5174ca76
12 changed files with 1181 additions and 9 deletions

View File

@ -1,4 +1,4 @@
feature_engineering_methods_parameters:
feature_engineering_methods:
LabelEncoder:
description: "将分类标签编码为整数。"

View File

@ -1,4 +1,4 @@
from data_process.method_reader_date_feature import MethodReader
from function.method_reader_date_feature import MethodReader
# 创建方法读取器实例
reader = MethodReader()

View File

@ -1,4 +1,4 @@
from data_process.method_reader_date_process import MethodReader
from function.method_reader_date_process import MethodReader
# 创建方法读取器实例
reader = MethodReader()

View File

@ -0,0 +1,14 @@
from function.method_reader_model import MethodReader
# 创建方法读取器实例
reader = MethodReader()
# 获取所有预处理方法
methods = reader.get_preprocessing_methods()
print("预处理方法列表:")
print(methods)
# 获取特定方法的详细信息
method_details = reader.get_method_details('SVC')
print("\nSVC方法详情:")
print(method_details)

View File

@ -53,12 +53,12 @@ class MethodReader:
# 获取特征工程方法
outlier_methods = list(self.method_config.get('feature_engineering_methods', {}).keys())
if outlier_methods:
feature_engineering_methods = list(self.method_config.get('feature_engineering_methods', {}).keys())
if feature_engineering_methods:
methods.append({
"name": "outlier_detector",
"description": "异常值检测",
"method": outlier_methods
"name": "feature_engineering_methods",
"description": "特征工程方法",
"method": feature_engineering_methods
})
return {
@ -88,7 +88,7 @@ class MethodReader:
# 查找方法参数信息
parameter_info = None
for category in ['feature_engineering_methods_parameters']:
for category in ['feature_engineering_methods']:
if method_name in self.parameter_config.get(category, {}):
parameter_info = self.parameter_config[category][method_name]
break

View File

@ -0,0 +1,135 @@
import yaml
from typing import Dict, List
import os
import logging
from pathlib import Path
class MethodReader:
"""方法配置读取器"""
def __init__(self):
"""初始化方法读取器"""
self.logger = logging.getLogger(__name__)
self.method_config = self._load_method_config()
self.parameter_config = self._load_parameter_config()
def _load_method_config(self) -> Dict:
"""加载方法配置文件"""
try:
config_path = Path('model/method.yaml')
if not config_path.exists():
raise FileNotFoundError(f"Method config file not found at {config_path}")
with open(config_path, 'r', encoding='utf-8') as f:
config = yaml.safe_load(f)
self.logger.info("Successfully loaded method config")
return config
except Exception as e:
self.logger.error(f"Error loading method config: {str(e)}")
raise
def _load_parameter_config(self) -> Dict:
"""加载参数配置文件"""
try:
config_path = Path('model/parameter.yaml')
if not config_path.exists():
raise FileNotFoundError(f"Parameter config file not found at {config_path}")
with open(config_path, 'r', encoding='utf-8') as f:
config = yaml.safe_load(f)
self.logger.info("Successfully loaded parameter config")
return config
except Exception as e:
self.logger.error(f"Error loading parameter config: {str(e)}")
raise
def get_preprocessing_methods(self) -> Dict:
"""获取预处理方法列表"""
try:
methods = []
# 分类方法
classification_algorithms = list(self.method_config.get('classification_algorithms', {}).keys())
if classification_algorithms:
methods.append({
"name": "classification_algorithms",
"description": "分类方法",
"method": classification_algorithms
})
# 回归方法
regression_algorithms = list(self.method_config.get('regression_algorithms', {}).keys())
if regression_algorithms:
methods.append({
"name": "regression_algorithms",
"description": "回归方法",
"method": regression_algorithms
})
# 聚类方法
clustering_algorithms = list(self.method_config.get('clustering_algorithms', {}).keys())
if clustering_algorithms:
methods.append({
"name": "clustering_algorithms",
"description": "聚类方法",
"method": clustering_algorithms
})
return {
"status": "success",
"methods": methods
}
except Exception as e:
self.logger.error(f"Error getting preprocessing methods: {str(e)}")
return {
"status": "error",
"error": str(e)
}
def get_method_details(self, method_name: str) -> Dict:
"""获取指定方法的详细信息"""
try:
# 在各个方法类别中查找方法原理和优缺点
method_info = None
for category in ['classification_algorithms', 'regression_algorithms', 'clustering_algorithms']:
if method_name in self.method_config.get(category, {}):
method_info = self.method_config[category][method_name]
break
if method_info is None:
raise ValueError(f"Method {method_name} not found in method config")
# 查找方法参数信息
parameter_info = None
for category in ['classification_algorithms', 'regression_algorithms', 'clustering_algorithms']:
if method_name in self.parameter_config.get(category, {}):
parameter_info = self.parameter_config[category][method_name]
break
if parameter_info is None:
raise ValueError(f"Method {method_name} not found in parameter config")
# 组合返回信息
return {
"status": "success",
"method": {
"name": method_name,
"description": parameter_info.get('description', ''),
"principle": method_info.get('principle', ''),
"advantages": method_info.get('advantages', []),
"disadvantages": method_info.get('disadvantages', []),
"applicable_scenarios": method_info.get('applicable_scenarios', []),
"parameters": parameter_info.get('parameters', [])
}
}
except Exception as e:
self.logger.error(f"Error getting method details: {str(e)}")
return {
"status": "error",
"error": str(e)
}

373
model/method.yaml Normal file
View File

@ -0,0 +1,373 @@
classification_algorithms:
LogisticRegression:
principle: "逻辑回归是一种线性分类模型,使用 Sigmoid 函数将线性回归的输出映射到 [0,1] 之间,适用于二分类问题。"
advantages:
- "计算效率高,适用于大规模数据。"
- "可解释性强,系数可用于判断特征的重要性。"
- "对线性可分数据表现良好。"
disadvantages:
- "对非线性数据的处理能力较弱。"
- "容易受到异常值的影响。"
applicable_scenarios:
- "医学诊断,如是否患有某种疾病。"
- "信用风险评估,如贷款违约预测。"
- "市场营销中的客户分类。"
SVC:
principle: "支持向量机SVM通过寻找最大化类别间隔的超平面进行分类支持线性和非线性分类通过核函数。"
advantages:
- "适用于高维数据,尤其是样本较少的情况。"
- "通过核函数可以处理非线性分类问题。"
disadvantages:
- "对大规模数据的计算复杂度较高。"
- "对参数和核函数的选择较敏感。"
applicable_scenarios:
- "文本分类,如垃圾邮件检测。"
- "图像识别,如手写数字分类。"
SVDD:
principle: "支持向量数据描述SVDD是一种基于支持向量机的单类分类方法通过寻找最小球面来包围正常数据点从而检测异常值。"
advantages:
- "适用于异常检测和单类分类问题。"
- "能够有效应对非线性分布数据。"
disadvantages:
- "对参数选择较敏感,训练时间较长。"
applicable_scenarios:
- "异常检测,如信用卡欺诈检测。"
- "工业设备故障检测。"
DecisionTreeClassifier:
principle: "决策树基于特征的划分规则构建一棵树,通过树结构进行分类。"
advantages:
- "可解释性强,易于理解和可视化。"
- "对数据的分布和尺度不敏感,无需归一化。"
disadvantages:
- "容易过拟合,泛化能力较弱。"
- "对噪声数据较敏感。"
applicable_scenarios:
- "客户细分,如电商用户分类。"
- "医学诊断,如肿瘤良恶性分类。"
RandomForestClassifier:
principle: "随机森林是一种集成学习方法,通过构建多个决策树并投票或平均进行分类,提高模型的稳定性和准确性。"
advantages:
- "较强的泛化能力,能有效防止过拟合。"
- "可用于高维数据,支持特征重要性评估。"
disadvantages:
- "训练时间较长,预测速度相对较慢。"
applicable_scenarios:
- "信用风险评估。"
- "医疗数据分析。"
XGBClassifier:
principle: "XGBoostExtreme Gradient Boosting是一种基于梯度提升树GBDT的改进算法具有更强的正则化和并行处理能力。"
advantages:
- "计算效率高,支持并行计算。"
- "具有内置的缺失值处理能力。"
disadvantages:
- "参数较多,调优较复杂。"
applicable_scenarios:
- "金融风险预测。"
- "搜索引擎排序。"
AdaBoostClassifier:
principle: "AdaBoost 是一种提升方法,它通过组合多个弱分类器来提高整体分类精度,赋予错误分类样本更高的权重。"
advantages:
- "能有效提升弱分类器的性能。"
- "适用于处理非均衡数据。"
disadvantages:
- "对噪声数据敏感。"
applicable_scenarios:
- "人脸检测。"
- "信用评分模型。"
CatBoostClassifier:
principle: "CatBoost 是一种专为类别特征优化的梯度提升决策树方法,适用于处理高维稀疏数据。"
advantages:
- "对类别型特征处理能力强。"
- "训练速度快,支持 GPU 加速。"
disadvantages:
- "需要较长的训练时间。"
applicable_scenarios:
- "推荐系统。"
- "搜索排序。"
LGBMClassifier:
principle: "LightGBM 是一种基于直方图优化的梯度提升树方法,优化了计算效率,适用于大规模数据。"
advantages:
- "计算速度快,适用于大规模数据集。"
- "对高维特征数据处理效果良好。"
disadvantages:
- "对小数据集容易过拟合。"
applicable_scenarios:
- "广告点击率预测。"
- "金融风控。"
GaussianNB:
principle: "高斯朴素贝叶斯基于贝叶斯定理,假设特征服从高斯分布进行分类。"
advantages:
- "计算效率高,适用于大规模数据。"
- "对小数据集具有良好效果。"
disadvantages:
- "对特征的独立性假设较强,可能不适用于某些数据。"
applicable_scenarios:
- "文本分类。"
- "医疗诊断。"
KNeighborsClassifier:
principle: "K 近邻KNN是一种基于距离度量的分类算法通过找到最近的 K 个邻居来进行分类。"
advantages:
- "易于理解,实现简单。"
- "对异常值不敏感。"
disadvantages:
- "计算复杂度高,预测速度较慢。"
applicable_scenarios:
- "推荐系统。"
- "生物信息学分类。"
MLPClassifier:
principle: "多层感知机MLP是一种前馈神经网络通过多个隐藏层和非线性激活函数实现复杂分类任务。"
advantages:
- "能够学习复杂的非线性关系。"
- "适用于高维数据。"
disadvantages:
- "需要大量数据进行训练,容易过拟合。"
applicable_scenarios:
- "图像分类。"
- "语音识别。"
GradientBoostingClassifier:
principle: "梯度提升决策树GBDT是一种集成学习方法通过迭代训练多个决策树使模型不断优化误差。"
advantages:
- "较强的泛化能力,适用于大规模数据集。"
- "支持特征重要性分析。"
disadvantages:
- "训练时间较长,调优复杂。"
applicable_scenarios:
- "搜索引擎排名。"
- "金融信用评分。"
DNN:
principle: "深度神经网络DNN是一种多层神经网络通过多层非线性变换提取数据的复杂特征。"
advantages:
- "适用于复杂非线性问题。"
- "能够处理大规模数据。"
disadvantages:
- "计算开销大,对硬件要求高。"
applicable_scenarios:
- "自动驾驶。"
- "自然语言处理。"
regression_algorithms:
LinearRegression:
principle: "线性回归通过最小化数据点与回归线之间的误差平方和,来拟合一条最佳的直线。"
advantages:
- "实现简单,易于理解"
- "计算效率高,适用于小规模数据集"
disadvantages:
- "对异常值敏感"
- "只能建模线性关系,无法处理非线性数据"
applicable_scenarios: "适用于线性关系明确,且数据量适中的问题。"
PolynomialRegression:
principle: "多项式回归是线性回归的一种扩展,利用多项式拟合数据,处理非线性关系。"
advantages:
- "能够拟合非线性关系"
- "灵活性强,能够处理复杂数据模式"
disadvantages:
- "容易过拟合,特别是在多项式度数较高时"
- "计算复杂度较高"
applicable_scenarios: "适用于非线性数据拟合,但需避免过拟合。"
Ridge:
principle: "岭回归在最小化误差的同时引入L2正则化约束模型的复杂度。"
advantages:
- "有效防止过拟合"
- "适用于特征多的情况"
disadvantages:
- "对于特征相关性较强的数据效果较差"
- "结果解释性较差"
applicable_scenarios: "适用于特征多且存在共线性的线性回归问题。"
Lasso:
principle: "Lasso回归通过L1正则化来限制模型的复杂度可以实现特征选择。"
advantages:
- "能够进行特征选择,减少不相关特征"
- "减少模型的复杂度,避免过拟合"
disadvantages:
- "可能会导致某些特征完全被剔除,造成信息丢失"
- "对于高相关特征可能不稳定"
applicable_scenarios: "适用于需要特征选择或特征较多的线性回归问题。"
ElasticNet:
principle: "弹性网络回归结合了Lasso回归的L1正则化和岭回归的L2正则化能够处理更多情况。"
advantages:
- "能够处理相关特征结合L1和L2的优点"
- "适用于特征数大于样本数的情形"
disadvantages:
- "计算复杂度较高"
- "可能需要调参来获得最佳效果"
applicable_scenarios: "适用于高维数据,且特征间存在线性相关的情况。"
SVR:
principle: "支持向量回归SVR通过在高维空间中寻找一个最优超平面来拟合数据能够处理非线性回归问题。"
advantages:
- "能够处理非线性数据,效果较好"
- "适用于高维数据"
disadvantages:
- "对超参数敏感,调参困难"
- "计算时间较长,尤其在大数据集上"
applicable_scenarios: "适用于数据具有非线性关系且数据量适中的问题。"
DecisionTreeRegressor:
principle: "决策树回归通过构建树状结构来拟合数据,节点上的划分基于特征的不同值。"
advantages:
- "易于理解和可视化"
- "可以处理非线性关系"
disadvantages:
- "容易过拟合"
- "对噪声数据敏感"
applicable_scenarios: "适用于非线性回归,且对数据的复杂性有较高的容忍度。"
RandomForestRegressor:
principle: "随机森林回归通过集成多棵决策树的结果来提高预测精度,能够处理高维数据。"
advantages:
- "不容易过拟合,适用于复杂问题"
- "能够处理缺失数据"
disadvantages:
- "计算复杂度较高"
- "结果难以解释"
applicable_scenarios: "适用于复杂的回归问题,尤其是特征维度较高的场景。"
XGBRegressor:
principle: "XGBoost回归通过梯度提升算法GBDT优化损失函数通过树的组合来预测目标值。"
advantages:
- "预测精度高,效果好"
- "处理大数据能力强"
disadvantages:
- "需要较长的训练时间"
- "对超参数敏感"
applicable_scenarios: "适用于大规模数据集且对预测精度要求较高的问题。"
AdaBoostRegressor:
principle: "AdaBoost回归通过多次训练弱学习器并加权组合改进模型的预测能力。"
advantages:
- "能够提高弱学习器的预测精度"
- "对噪声较为鲁棒"
disadvantages:
- "容易受到异常值影响"
- "对某些问题的性能较差"
applicable_scenarios: "适用于弱学习器的组合优化问题,特别是样本不平衡的场景。"
CatBoostRegressor:
principle: "CatBoost回归基于梯度提升决策树GBDT特别优化了类别特征的处理。"
advantages:
- "能够处理类别特征,减少数据预处理"
- "高效且精度较高"
disadvantages:
- "训练时间较长"
- "参数调节较为复杂"
applicable_scenarios: "适用于包含大量类别特征的数据集,且数据量较大的问题。"
LGBMRegressor:
principle: "LightGBM回归基于梯度提升决策树使用了直方图优化算法以加速训练过程。"
advantages:
- "训练速度快,能够处理大规模数据"
- "内存占用较少,适合高维数据"
disadvantages:
- "需要调参以获得最佳效果"
- "模型解释性较差"
applicable_scenarios: "适用于大规模数据集,尤其是处理海量数据时效果优越。"
MLPRegressor:
principle: "多层感知机回归是基于神经网络的回归模型,通过多个隐层来拟合复杂的非线性关系。"
advantages:
- "能够处理复杂的非线性关系"
- "在大数据和高维数据中表现良好"
disadvantages:
- "训练时间较长,且对计算资源要求较高"
- "容易过拟合,特别是在数据较少时"
applicable_scenarios: "适用于需要捕捉复杂非线性关系的回归问题,尤其在数据量大时效果较好。"
clustering_algorithms:
KMeans:
principle: "K均值聚类通过最小化样本点到其最近簇中心的距离来将数据分为K个簇。"
advantages:
- "实现简单,计算效率高"
- "适用于大数据集"
disadvantages:
- "需要预先指定簇的数量K"
- "对初始中心点敏感,容易受到噪声影响"
applicable_scenarios: "适用于簇形状较为规则且数据量较大的聚类问题。"
KMeansPlusPlus:
principle: "K-Means++是一种改进的初始化方法通过选择更远离当前簇中心的样本点作为初始中心提升K均值聚类的效果。"
advantages:
- "比传统K均值方法更稳定"
- "可以减少聚类结果的变异性"
disadvantages:
- "依然存在需要指定K的问题"
- "初始化仍然可能影响最终结果"
applicable_scenarios: "适用于K均值聚类方法并且希望改进初始中心选择的场景。"
HierarchicalKMeans:
principle: "层次化K均值结合了层次聚类和K均值聚类的方法逐步将样本合并到已有簇中形成层次化结构。"
advantages:
- "能够自动确定簇的数量"
- "生成的树状图有助于理解数据结构"
disadvantages:
- "计算量大,尤其是在数据量较大时"
- "对噪声和离群点敏感"
applicable_scenarios: "适用于不确定簇的数量且数据结构较复杂的情况。"
FCM:
principle: "模糊C均值FCM允许每个数据点属于多个簇基于隶属度来进行聚类。"
advantages:
- "能够处理数据点属于多个簇的情况"
- "适用于软聚类问题"
disadvantages:
- "对初始簇中心和隶属度设置较为敏感"
- "计算量大,尤其是簇数较多时"
applicable_scenarios: "适用于数据点可以属于多个簇的情况,如图像分割等问题。"
AgglomerativeClustering:
principle: "层次聚类通过将相似度较高的样本逐步合并,最终形成树状结构(树状图)。"
advantages:
- "无需预先指定簇的数量"
- "能够处理任意形状的簇"
disadvantages:
- "计算复杂度较高,数据量大时效率低"
- "容易受到噪声的影响"
applicable_scenarios: "适用于不确定簇的数量且簇的形状较复杂的场景。"
DBSCAN:
principle: "DBSCAN基于密度的聚类方法通过寻找密集区域来划分簇对于稀疏区域则标记为噪声点。"
advantages:
- "能够发现任意形状的簇"
- "不需要预先指定簇的数量,能够自动识别噪声"
disadvantages:
- "对参数设置敏感,尤其是邻域半径和最小样本数"
- "不适用于簇大小差异过大的数据集"
applicable_scenarios: "适用于具有明显密度差异的数据集,尤其适合处理含有噪声的数据。"
GaussianMixture:
principle: "高斯混合模型GMM假设数据是由多个高斯分布的混合体组成通过EM算法估计每个数据点的隶属概率。"
advantages:
- "能够处理重叠的簇"
- "可以自动估计每个簇的分布"
disadvantages:
- "计算复杂度高,容易陷入局部最优解"
- "需要预先指定簇的数量"
applicable_scenarios: "适用于需要拟合混合高斯分布的数据,尤其适合处理连续数据。"
SpectralClustering:
principle: "谱聚类通过构造样本之间的相似度矩阵,并计算其特征值与特征向量来实现聚类。"
advantages:
- "能够处理复杂的簇结构"
- "适用于非凸形状的簇"
disadvantages:
- "计算量大,尤其在大数据集上效率低"
- "需要计算样本间的相似度矩阵,存储和计算成本较高"
applicable_scenarios: "适用于样本之间相似度较强,但簇形状复杂或非凸的聚类任务。"

650
model/parameter.yaml Normal file
View File

@ -0,0 +1,650 @@
classification_algorithms:
LogisticRegression:
parameters:
- name: "penalty"
type: "str"
default: "l2"
description: "用于正则化的惩罚项,可选 'l1', 'l2', 'elasticnet', 'none'。"
- name: "C"
type: "float"
default: "1.0"
description: "正则化强度的倒数,较小的值表示更强的正则化。"
- name: "solver"
type: "str"
default: "lbfgs"
description: "优化算法,可选 'newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga'。"
- name: "max_iter"
type: "int"
default: "100"
description: "最大迭代次数,控制优化收敛速度。"
SVC:
parameters:
- name: "C"
type: "float"
default: "1.0"
description: "正则化参数,控制决策边界的松弛程度。"
- name: "kernel"
type: "str"
default: "rbf"
description: "核函数类型,可选 'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'。"
- name: "degree"
type: "int"
default: "3"
description: "多项式核函数的维度,仅当 kernel='poly' 时有效。"
- name: "gamma"
type: "str"
default: "scale"
description: "核函数系数,可选 'scale', 'auto' 或浮点数。"
- name: "max_iter"
type: "int"
default: "-1"
description: "最大迭代次数,-1 表示无限制。"
DecisionTreeClassifier:
parameters:
- name: "criterion"
type: "str"
default: "gini"
description: "用于划分的准则,可选 'gini' 或 'entropy'。"
- name: "max_depth"
type: "int"
default: "None"
description: "树的最大深度None 表示不限制。"
- name: "min_samples_split"
type: "int"
default: "2"
description: "内部节点再划分所需的最小样本数。"
- name: "min_samples_leaf"
type: "int"
default: "1"
description: "叶子节点包含的最小样本数。"
RandomForestClassifier:
parameters:
- name: "n_estimators"
type: "int"
default: "100"
description: "森林中树的数量。"
- name: "criterion"
type: "str"
default: "gini"
description: "用于划分的准则,可选 'gini' 或 'entropy'。"
- name: "max_depth"
type: "int"
default: "None"
description: "树的最大深度None 表示不限制。"
- name: "bootstrap"
type: "bool"
default: "True"
description: "是否进行自助采样。"
XGBClassifier:
parameters:
- name: "n_estimators"
type: "int"
default: "100"
description: "树的数量。"
- name: "learning_rate"
type: "float"
default: "0.1"
description: "学习率,控制每棵树的贡献程度。"
- name: "max_depth"
type: "int"
default: "6"
description: "每棵树的最大深度。"
- name: "gamma"
type: "float"
default: "0"
description: "节点分裂所需的最小损失减少量。"
AdaBoostClassifier:
parameters:
- name: "n_estimators"
type: "int"
default: "50"
description: "弱分类器的数量。"
- name: "learning_rate"
type: "float"
default: "1.0"
description: "更新权重时的缩放因子。"
- name: "algorithm"
type: "str"
default: "SAMME.R"
description: "提升算法,可选 'SAMME' 或 'SAMME.R'。"
CatBoostClassifier:
parameters:
- name: "iterations"
type: "int"
default: "1000"
description: "训练的迭代次数。"
- name: "learning_rate"
type: "float"
default: "0.03"
description: "学习率,控制更新步长。"
- name: "depth"
type: "int"
default: "6"
description: "树的深度。"
LGBMClassifier:
parameters:
- name: "num_leaves"
type: "int"
default: "31"
description: "树的最大叶子数。"
- name: "learning_rate"
type: "float"
default: "0.1"
description: "学习率。"
- name: "n_estimators"
type: "int"
default: "100"
description: "树的数量。"
GaussianNB:
parameters:
- name: "var_smoothing"
type: "float"
default: "1e-9"
description: "加在方差上的小数,防止零方差问题。"
KNeighborsClassifier:
parameters:
- name: "n_neighbors"
type: "int"
default: "5"
description: "最近邻的数量。"
- name: "weights"
type: "str"
default: "uniform"
description: "权重分配策略,可选 'uniform' 或 'distance'。"
- name: "algorithm"
type: "str"
default: "auto"
description: "搜索最近邻的算法。"
MLPClassifier:
parameters:
- name: "hidden_layer_sizes"
type: "tuple"
default: "(100,)"
description: "隐藏层的神经元数量。"
- name: "activation"
type: "str"
default: "relu"
description: "激活函数,可选 'identity', 'logistic', 'tanh', 'relu'。"
- name: "solver"
type: "str"
default: "adam"
description: "优化算法,可选 'lbfgs', 'sgd', 'adam'。"
- name: "max_iter"
type: "int"
default: "200"
description: "最大迭代次数。"
GradientBoostingClassifier:
parameters:
- name: "n_estimators"
type: "int"
default: "100"
description: "树的数量。"
- name: "learning_rate"
type: "float"
default: "0.1"
description: "学习率。"
- name: "max_depth"
type: "int"
default: "3"
description: "每棵树的最大深度。"
regression_algorithms:
LinearRegression:
parameters:
- name: "fit_intercept"
type: "bool"
default: "True"
description: "是否计算截距。"
- name: "normalize"
type: "bool"
default: "False"
description: "是否对数据进行归一化处理。(已弃用)"
- name: "copy_X"
type: "bool"
default: "True"
description: "是否复制输入数据。"
- name: "n_jobs"
type: "int"
default: "None"
description: "用于计算的并行作业数。"
PolynomialRegression:
parameters:
- name: "degree"
type: "int"
default: "2"
description: "多项式的最高次数。"
- name: "interaction_only"
type: "bool"
default: "False"
description: "是否仅考虑特征之间的交互项。"
- name: "include_bias"
type: "bool"
default: "True"
description: "是否包含偏置项。"
Ridge:
parameters:
- name: "alpha"
type: "float"
default: "1.0"
description: "正则化力度。"
- name: "fit_intercept"
type: "bool"
default: "True"
description: "是否计算截距。"
- name: "max_iter"
type: "int"
default: "None"
description: "最大迭代次数。"
- name: "tol"
type: "float"
default: "0.001"
description: "容忍误差。"
- name: "solver"
type: "str"
default: "auto"
description: "求解器选择。"
Lasso:
parameters:
- name: "alpha"
type: "float"
default: "1.0"
description: "正则化参数。"
- name: "fit_intercept"
type: "bool"
default: "True"
description: "是否计算截距。"
- name: "max_iter"
type: "int"
default: "1000"
description: "最大迭代次数。"
- name: "tol"
type: "float"
default: "0.0001"
description: "收敛容忍度。"
- name: "selection"
type: "str"
default: "cyclic"
description: "特征选择方式,可选 'cyclic' 或 'random'。"
ElasticNet:
parameters:
- name: "alpha"
type: "float"
default: "1.0"
description: "正则化参数。"
- name: "l1_ratio"
type: "float"
default: "0.5"
description: "L1正则化比例控制L1和L2的混合比例。"
- name: "fit_intercept"
type: "bool"
default: "True"
description: "是否计算截距。"
- name: "max_iter"
type: "int"
default: "1000"
description: "最大迭代次数。"
- name: "tol"
type: "float"
default: "0.0001"
description: "收敛容忍度。"
SVR:
parameters:
- name: "kernel"
type: "str"
default: "rbf"
description: "核函数类型,可选 'linear', 'poly', 'rbf', 'sigmoid'。"
- name: "C"
type: "float"
default: "1.0"
description: "惩罚参数。"
- name: "epsilon"
type: "float"
default: "0.1"
description: "epsilon不敏感损失中的参数。"
- name: "degree"
type: "int"
default: "3"
description: "多项式核函数的度数,仅当 kernel='poly' 时有效。"
- name: "gamma"
type: "str"
default: "scale"
description: "核函数系数。"
DecisionTreeRegressor:
parameters:
- name: "criterion"
type: "str"
default: "squared_error"
description: "衡量分裂质量的指标。"
- name: "splitter"
type: "str"
default: "best"
description: "划分策略,可选 'best' 或 'random'。"
- name: "max_depth"
type: "int"
default: "None"
description: "树的最大深度。"
- name: "min_samples_split"
type: "int/float"
default: "2"
description: "内部节点再划分所需的最小样本数。"
- name: "min_samples_leaf"
type: "int/float"
default: "1"
description: "叶子节点最少样本数。"
RandomForestRegressor:
parameters:
- name: "n_estimators"
type: "int"
default: "100"
description: "森林中树的数量。"
- name: "criterion"
type: "str"
default: "squared_error"
description: "衡量分裂质量的指标。"
- name: "max_depth"
type: "int"
default: "None"
description: "树的最大深度。"
- name: "min_samples_split"
type: "int"
default: "2"
description: "内部节点再划分所需的最小样本数。"
- name: "n_jobs"
type: "int"
default: "None"
description: "用于计算的并行作业数。"
XGBRegressor:
parameters:
- name: "max_depth"
type: "int"
default: "3"
description: "树的最大深度。"
- name: "learning_rate"
type: "float"
default: "0.1"
description: "学习率。"
- name: "n_estimators"
type: "int"
default: "100"
description: "树的数量。"
- name: "objective"
type: "str"
default: "reg:squarederror"
description: "损失函数。"
- name: "subsample"
type: "float"
default: "1"
description: "采样比例。"
AdaBoostRegressor:
parameters:
- name: "n_estimators"
type: "int"
default: "50"
description: "基学习器的数量。"
- name: "learning_rate"
type: "float"
default: "1.0"
description: "学习率。"
- name: "loss"
type: "str"
default: "linear"
description: "损失函数类型,可选 'linear', 'square', 'exponential'。"
CatBoostRegressor:
parameters:
- name: "iterations"
type: "int"
default: "1000"
description: "迭代次数。"
- name: "learning_rate"
type: "float"
default: "0.03"
description: "学习率。"
- name: "depth"
type: "int"
default: "6"
description: "树的深度。"
- name: "l2_leaf_reg"
type: "float"
default: "3.0"
description: "L2正则化系数。"
- name: "loss_function"
type: "str"
default: "RMSE"
description: "损失函数。"
LGBMRegressor:
parameters:
- name: "num_leaves"
type: "int"
default: "31"
description: "叶子节点数量。"
- name: "learning_rate"
type: "float"
default: "0.1"
description: "学习率。"
- name: "n_estimators"
type: "int"
default: "100"
description: "树的数量。"
- name: "objective"
type: "str"
default: "regression"
description: "目标函数。"
- name: "subsample"
type: "float"
default: "1.0"
description: "采样比例。"
MLPRegressor:
parameters:
- name: "hidden_layer_sizes"
type: "tuple"
default: "(100,)"
description: "隐藏层的神经元数量和层数。"
- name: "activation"
type: "str"
default: "relu"
description: "激活函数,可选 'identity', 'logistic', 'tanh', 'relu'。"
- name: "solver"
type: "str"
default: "adam"
description: "权重优化算法。"
- name: "alpha"
type: "float"
default: "0.0001"
description: "L2正则化参数。"
- name: "max_iter"
type: "int"
default: "200"
description: "最大迭代次数。"
clustering_algorithms:
KMeans:
parameters:
- name: "n_clusters"
type: "int"
default: "8"
description: "簇的数量K均值聚类的核心参数。"
- name: "init"
type: "str"
default: "k-means++"
description: "初始化方法,可选 'k-means++'、'random' 或数组类型。"
- name: "n_init"
type: "int"
default: "10"
description: "初始化次数K均值算法会运行该次数选择最优结果。"
- name: "max_iter"
type: "int"
default: "300"
description: "每次运行的最大迭代次数。"
- name: "tol"
type: "float"
default: "1e-4"
description: "算法收敛的容忍误差,当目标函数变化小于此值时,认为算法收敛。"
- name: "precompute_distances"
type: "bool"
default: "True"
description: "是否预计算距离矩阵(会增加计算量)。"
KMeansPlusPlus:
parameters:
- name: "n_clusters"
type: "int"
default: "8"
description: "簇的数量。"
- name: "n_init"
type: "int"
default: "10"
description: "初始化次数。"
- name: "max_iter"
type: "int"
default: "300"
description: "最大迭代次数。"
- name: "tol"
type: "float"
default: "1e-4"
description: "容忍误差,用于判断算法是否收敛。"
AgglomerativeClustering:
parameters:
- name: "n_clusters"
type: "int"
default: "2"
description: "簇的数量。"
- name: "affinity"
type: "str"
default: "euclidean"
description: "衡量样本间距离的方式,可选 'euclidean'、'manhattan'、'cosine'。"
- name: "memory"
type: "str/None"
default: "None"
description: "缓存路径,存储树状结构。"
- name: "linkage"
type: "str"
default: "ward"
description: "聚类方式,可选 'ward'(最小化平方误差)、'average'、'complete'。"
- name: "compute_full_tree"
type: "str"
default: "auto"
description: "是否计算完全树结构,'auto'为自动,'True'为计算,'False'为不计算。"
FCM:
parameters:
- name: "n_clusters"
type: "int"
default: "2"
description: "簇的数量。"
- name: "m"
type: "float"
default: "2.0"
description: "模糊指数控制隶属度的模糊程度通常设置为2。"
- name: "max_iter"
type: "int"
default: "100"
description: "最大迭代次数。"
- name: "tol"
type: "float"
default: "1e-5"
description: "收敛容忍度,当隶属度变化小于此值时,认为算法收敛。"
- name: "random_state"
type: "int"
default: "None"
description: "随机种子,用于初始化隶属度矩阵。"
DBSCAN:
parameters:
- name: "eps"
type: "float"
default: "0.5"
description: "邻域的最大距离,决定样本是否在同一簇中。"
- name: "min_samples"
type: "int"
default: "5"
description: "形成簇的最小样本数。"
- name: "metric"
type: "str"
default: "euclidean"
description: "计算距离的方式,可选 'euclidean', 'manhattan', 'cosine' 等。"
- name: "algorithm"
type: "str"
default: "auto"
description: "计算最近邻的方法,可选 'auto', 'ball_tree', 'kd_tree', 'brute'。"
- name: "leaf_size"
type: "int"
default: "30"
description: "对于BallTree或KDTree的叶子大小影响效率。"
GaussianMixture:
parameters:
- name: "n_components"
type: "int"
default: "1"
description: "高斯混合分布的组件数,表示簇的数量。"
- name: "covariance_type"
type: "str"
default: "full"
description: "协方差类型,可选 'full', 'tied', 'diag', 'spherical'。"
- name: "tol"
type: "float"
default: "1e-3"
description: "收敛容忍度,当对数似然变化小于此值时停止算法。"
- name: "max_iter"
type: "int"
default: "100"
description: "最大迭代次数。"
- name: "random_state"
type: "int"
default: "None"
description: "随机种子,用于初始化高斯混合模型的参数。"
SpectralClustering:
parameters:
- name: "n_clusters"
type: "int"
default: "8"
description: "簇的数量。"
- name: "affinity"
type: "str"
default: "rbf"
description: "计算相似度的方式,可选 'rbf'、'nearest_neighbors'、'precomputed'。"
- name: "n_neighbors"
type: "int"
default: "10"
description: "对于 'nearest_neighbors' 相似度,使用的邻居数。"
- name: "gamma"
type: "float"
default: "1.0"
description: "用于计算径向基函数的gamma参数影响相似度的计算。"
- name: "eigen_solver"
type: "str"
default: "auto"
description: "求解特征值的方式,可选 'arpack', 'lobpcg', 'auto'。"
- name: "random_state"
type: "int"
default: "None"
description: "随机种子,用于初始化谱聚类的计算。"