• 机器学习作业7--逻辑回归实践


    1.逻辑回归是怎么防止过拟合的?为什么正则化可以防止过拟合?(大家用自己的话介绍下)

    答:算法上可以使用正则化;数据上可以加大样本量和通过特征选择减少特征量。

    正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。

    2.用logiftic回归来进行实践操作,数据不限。

    实验代码:

     1 from sklearn.datasets import load_breast_cancer
     2 from sklearn.model_selection import train_test_split
     3 from sklearn.linear_model import LogisticRegression
     4 from sklearn.metrics import classification_report
     5 import numpy as np
     6 
     7 cancer = load_breast_cancer()  # 载入数据
     8 X = cancer.data        # 数据
     9 y = cancer.target      # 是否患病
    10 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)   # 划分训练集和测试集
    11 
    12 model = LogisticRegression()   # 模型的构建
    13 model.fit(X_train, y_train)    # 模型的训练
    14 print('训练数据集的评分:', model.score(X_train, y_train))
    15 print('测试数据集的评分:', model.score(X_test, y_test))
    16 # 样本预测
    17 y_pre = model.predict(X_test)
    18 print('测试样本的个数:', y_test.shape[0])
    19 print('测试样本中预测正确的个数:', np.equal(y_pre, y_test).shape[0])
    20 # classification_report标签:
    21 # 精确度:precision,正确预测为正的,占全部预测为正的比例,TP / (TP+FP)
    22 # 召回率:recall,正确预测为正的,占全部实际为正的比例,TP / (TP+FN)
    23 # F1-score:精确率和召回率的调和平均数,2 * precision*recall / (precision+recall)
    24 # 同时还会给出总体的微平均值,宏平均值和加权平均值。
    25 #
    26 # 微平均值:micro average,所有数据结果的平均值
    27 # 宏平均值:macro average,所有标签结果的平均值
    28 # 加权平均值:weighted average,所有标签结果的加权平均值
    29 print('分类报告:
    ', classification_report(y_test, y_pre))
    30 print('逻辑回归的准确率为:{0:.2f}%'.format(model.score(X_test, y_test)*100))

    实验结果:

  • 相关阅读:
    java中Condition类的详细介绍(详解)
    Semaphore原理以及使用总结
    RocketMQ消息存储原理总结(一)
    Es Bucket聚合(桶聚合)总结
    "元素隐式具有 “any” 类型,因为类型“Shared”没有索引签名"问题解决思路
    有关生产环境tomcat java应用报错Caused by: java.lang.OutOfMemoryError: Java heap space的调研
    docker 实践02
    正睿比赛总结day1
    【水】一个神秘玩意:如何分辨出差别很小的颜色?
    AtCoder Regular Contest 125 比赛记录(vp)
  • 原文地址:https://www.cnblogs.com/m2362563619/p/12785785.html
Copyright © 2020-2023  润新知