机器学习 scikit-learn2 模型实践 - 逻辑回归

1 简介

1.1 代码下载

代码路径,欢迎 star~~
https://github.com/spareribs/kaggleSpareribs/blob/master/Overdue/ml/code/sklearn_config.py
https://github.com/spareribs/kaggleSpareribs/blob/master/Overdue/ml/code/sklearn_train.py

1.2 代码使用方法

  1. 【必须】config.py 设置文件存放的路径
  2. 【必须】先执行 features 中的 base.py 先把数据处理好 [PS:需要根据实际情况修改]
  3. 【可选】再通过 code 中的 sklearn_config.py 设置模型的参数[PS: 按需修改]
  4. 【必须】最后通过 code 中的 sklearn_train.py 训练模型输出结果

3 核心代码说明

3.1 模型配置

""" 开启交叉验证 """
status_vali = False
""" 模型参数 """
clfs = {
	'lr': LogisticRegression(penalty='l1', C=0.05),
}

3.2 模型训练

""" 1 读取数据 """
data_fp = open(features_path, 'rb')
x_train, y_train = pickle.load(data_fp)
data_fp.close()

""" 2 训练分类器, clf_name选择需要的分类器 """
clf_name = "lr"
clf = clfs[clf_name]
clf.fit(x_train, y_train)

""" 3 在验证集上评估模型 """
if status_vali:
    print("测试模型 & 模型参数如下:\n{0}".format(clf))
    print("=" * 20)
    pre_train = clf.predict(x_train)
    print("训练集正确率: {0:.4f}".format(clf.score(x_train, y_train)))
    print("训练集f1分数: {0:.4f}".format(f1_score(y_train, pre_train)))
    print("训练集auc分数: {0:.4f}".format(roc_auc_score(y_train, pre_train)))
    print("-" * 20)
    pre_vali = clf.predict(x_vali)
    print("测试集正确率: {0:.4f}".format(clf.score(x_vali, y_vali)))
    print("测试集f1分数: {0:.4f}".format(f1_score(y_vali, pre_vali)))
    print("测试集auc分数: {0:.4f}".format(roc_auc_score(y_vali, pre_vali)))
    print("=" * 20)

3.3 输出结果

测试模型 & 模型参数如下:
LogisticRegression(C=0.05, class_weight=None, dual=False, fit_intercept=True, intercept_scaling=1, 
                   max_iter=100, multi_class='warn', n_jobs=None, penalty='l1', random_state=None, 
                   solver='warn', tol=0.0001, verbose=0, warm_start=False)
====================
训练集正确率: 0.8001
训练集f1分数: 0.4369
训练集auc分数: 0.6368
--------------------
测试集正确率: 0.7912
测试集f1分数: 0.4180
测试集auc分数: 0.6280
====================

猜你喜欢

转载自blog.csdn.net/q370835062/article/details/84173260
今日推荐