python_创建自定义评估指标
# 创建自定义评估指标 函数
from sklearn.metrics import make_scorer, r2_score
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge
from sklearn.datasets import make_regression
# 특성 행렬과 타깃 벡터를 만듭니다.
features, target = make_regression(n_samples = 100,
n_features = 3,
random_state = 1)
# 创建特征矩阵和目标向量
features_train, features_test, target_train, target_test = train_test_split(
features, target, test_size=0.10, random_state=1)
# 自定义函数 自定义评估指标
def custom_metric(target_test, target_predicted):
# R^2 计算R2得分
r2 = r2_score(target_test, target_predicted)
# R^2 점수를 반환합니다.
return r2
# 创建评分函数 ,得分越高越好
score = make_scorer(custom_metric, greater_is_better=True)
# 创建岭回归对象
classifier = Ridge()
#训练
model = classifier.fit(features_train, target_train)
# 应用自定义评分器
score(model, features_test, target_test)
0.9997906102882058
# 查看函数是否正常工作
# 对测试集进行 预测
target_predicted = model.predict(features_test)
#计算R方得分
r2_score(target_test, target_predicted)
0.9997906102882058