scikit-learn 中的机器学习模型(estimator)通常具有一组常用属性和功能,这些属性和功能可以用于训练、评估和使用模型。以下是一些常见的模型属性和功能:
常见属性:
coef_:对于线性模型(如线性回归、逻辑回归、支持向量机等),这个属性表示模型的系数(权重),用于描述特征的重要性。
intercept_:对于线性模型,这个属性表示模型的截距(偏置项)。
classes_:对于分类模型(如分类器),这个属性表示可能的类别或标签。
n_features_:表示特征的数量。
n_classes_:对于分类模型,表示类别的数量。
n_outputs_:对于多输出模型,表示输出的数量。
feature_importances_:对于树型模型(如随机森林、梯度提升树),这个属性表示特征的重要性分数。
常见方法和功能:
fit(X, y):用于训练模型的方法,其中 X
是特征数据,y
是目标变量。
predict(X):用于进行预测的方法,其中 X
是新样本的特征数据。
predict_proba(X):对于分类模型,用于返回每个类别的预测概率的方法。
score(X, y):用于评估模型性能的方法,其中 X
是特征数据,y
是真实的目标变量。具体的评分方法取决于模型类型,如准确率、均方误差等。
transform(X):对于一些模型,如主成分分析(PCA)或特征选择器,用于对数据进行转换的方法。
**set_params(params):用于设置模型的超参数(如正则化参数、深度等)的方法。
get_params():用于获取模型的当前超参数设置的方法。
cross_val_score(estimator, X, y, cv):用于进行交叉验证评估的函数,其中 estimator
是模型,X
和 y
是数据,cv
是交叉验证的策略。
GridSearchCV 和 RandomizedSearchCV:用于超参数优化的工具,可以通过网格搜索或随机搜索来寻找最佳的超参数组合。
pipeline.Pipeline:用于创建模型管道的类,可以将多个数据处理和模型训练步骤组合成一个流程。
这些属性和方法是 scikit-learn 中模型的一些常见特性和功能。具体的模型可能会有不同的属性和方法,因此在使用特定模型时,建议查阅相关的文档和示例以获取更多信息。根据模型类型和任务,还可以使用其他特定于模型的属性和方法来进一步探索和操作模型。
import pandas as pd
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression
loaded_data = datasets.load_boston()
data_X = loaded_data.data
data_y = loaded_data.target
model = LinearRegression()
model.fit(data_X, data_y)
print(model.predict(data_X[:4, :]))
print(data_y[:4])
print(model.coef_) ##获取y=kx+b中的k
print(model.intercept_) ##获取y=kx+b中的b
##返回训练时给model设置的参数,这里都是默认
print(model.get_params())
##输出为:{'copy_X': True, 'fit_intercept': True, 'n_jobs': None, 'normalize': 'deprecated', 'positive': False}
##使用data_X和data_y查看模型的准确度
print(model.score(data_X, data_y))
##输出为:0.7406426641094094