news 2026/3/11 16:47:02

机器学习基础(线性,逻辑回归)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习基础(线性,逻辑回归)

一、线性回归

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。

相关关系:包含因果关系和平行关系
因果关系:回归分析【原因引起结果,需要明确自变量和因变量】
平行关系:相关分析【无因果关系,不区分自变量和因变量】

一元线性回归模型:

βo和β1是模型参数。E:是误差项。
误差项:除线性因素外的随机因素所产生的误差。

多元线性回归模型:

1.线性回归API文档参数

sklearn.linear_model.LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=None)

1)参数

fit_intercept:是否有截据,如果没有则直线过原点。

normalize:是否将数据归一化。

copy_X :是否对X复制,如果选择false,则直接对原数据进行覆盖。(即经过中心化,标准化后,是否把新数据覆盖到原数据上)

n_jobs:计算时设置的任务个数(number of jobs)。如果选择-1则代表使用所有的CPU。这一参数的对于目标个数>1(n_targets>1)且足够大规模的问题有加速作用。

2)Attributes:返回值

Coef_:对于线性回归问题计算得到的feature的系数。如果输入的是多目标问题,则返回一个二维数组(n_targets, n_features);如果是单目标问题,返回一个一维数组 (n_features,)。

intercept_ :线性模型中的独立项。

3)方法

fit(X, y[, n_jobs]) :对训练集X, y进行训练。

predict(X):使用训练得到的估计器对输入为X的集合进行预测(X可以是测试集,也可以是需要预测的数据)。

score(X, y[,]sample_weight):预测效果评分。

import pandas as pd#pandas基于numpy封装的 from matplotlib import pyplot as plt from sklearn.linear_model import LinearRegression data = pd.read_csv("data.csv") a = data.广告投入 #绘制散点图 plt.scatter(data.广告投入, data.销售额) plt.show() # corr = data.corr()#求x和y的相关系数 #估计模型参数,建立回归模型 lr = LinearRegression() x = data[['广告投入']] y = data[['销售额']] lr.fit(x, y)#训练模型, #第四步、对回归模型进行检验 """此处的score指R方""" result = lr.predict(x) score = lr.score(x, y) a = round(lr.intercept_[0],2)#查看截距 b = round(lr.coef_[0][0], 2)#查看斜率 print("线性回归模型为:y = {}x + {}.".format(b, a)) #第五步、利用回归模型进行预测 predict = lr.predict([[40], [45], [50]]) print(predict)

二、逻辑回归

在线性回归的基础上进行分类衍生出了逻辑回归

逻辑回归(LogisticRegression)是一种广泛用于二分类和多分类任务的线性模型,支持L1/L2/Elastic-Net正则化。

lr=LogisticRegression(C=0.01)

C:正则化强度的倒数,值越小正则化越强

fit() 用于训练模型;predict() 输出类别标签;score() 计算准确率。labels_count=pd.value_counts(data['Class'])可以统计data(‘class’)中每个类的个数

import pandas as pd data=pd.read_csv("creditcard.csv") from sklearn.preprocessing import StandardScaler #z-标准化 scaler=StandardScaler() data['Amount']=scaler.fit_transform(data[['Amount']]) data=data.drop(['Time'],axis=1)#axis=1,表示删除列 #绘制图形 import matplotlib.pyplot as plt from pylab import mpl #matplotlib不能显示中文,借助于pylab实现中文显示 mpl.rcParams['font.sans-serif']=['Microsoft YaHei']#显示中文 mpl.rcParams['axes.unicode_minus']= False labels_count=pd.value_counts(data['Class'])#同济data(‘class’)中每个类的个数 print(labels_count) plt.title("正负例样本数")#设置标题 plt.xlabel("类别") plt.ylabel("数量") labels_count.plot(kind='bar') plt.show() '''建立模型''' from sklearn.model_selection import train_test_split x_whole=data.drop("Class",axis=1) y_whole=data.Class x_train_w,x_test_w,y_train_w,y_test_w=train_test_split\ (x_whole,y_whole,test_size=0.3,random_state=1000) from sklearn.linear_model import LogisticRegression #逻辑回归API lr=LogisticRegression(C=0.01) lr.fit(x_train_w,y_train_w) test_predicted=lr.predict(x_test_w) result=lr.score(x_test_w,y_test_w) from sklearn import metrics print(metrics.classification_report(y_test_w,test_predicted))#获得混淆矩阵的准确值,召回值。

1. 通过train_test_split(x_whole,y_whole,test_size=0.3,random_state=1000)来切分数据,通过test_size参数为整数时取对应数量的特征,小数时取百分比的;通过random_state参数来获得对应的随机种子。

2. 通过metrics.classification_report(y_test_w,test_predicted))#获得混淆矩阵的准确值,召回值和F1值。来判断模型训练的好不好

三、评价方法

混淆矩阵:

精确率:TP/(TP+FP)

召回率:TP/(TP+FN) 多用于医疗领域系统

f1值:2*(精确率*召回率)/精确率+召回率

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/11 6:50:55

交通网络仿真软件:TransModeler_(1).TransModeler软件概述

TransModeler软件概述 1. TransModeler简介 TransModeler是一款强大的交通网络仿真软件,广泛应用于交通规划、设计和管理等领域。它能够模拟各种交通网络和交通流情况,帮助用户评估和优化交通系统的性能。TransModeler的主要功能包括交通网络建模、交通流…

作者头像 李华
网站建设 2026/3/9 1:33:59

5个必学的Conda命令实战案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个Jupyter Notebook教程,包含5个Conda命令的实战案例:1. 创建和管理Python虚拟环境;2. 安装特定版本的Python包;3. 导出和共享…

作者头像 李华
网站建设 2026/3/11 14:55:17

F2批量重命名工具终极指南:告别杂乱文件名的7个实战技巧

F2批量重命名工具终极指南:告别杂乱文件名的7个实战技巧 【免费下载链接】f2 F2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely. Written in Go! 项目地址: https://gitcode.com/gh_mirrors/f21/f2 还…

作者头像 李华
网站建设 2026/3/9 23:16:57

5、高级网络分析工具:Wireshark 与 Ettercap 的进阶应用

高级网络分析工具:Wireshark 与 Ettercap 的进阶应用 1. 超越简单捕获的高级 Wireshark 应用 假设你已经对 Wireshark(曾用名 Ethereal)有了一定的使用经验。即使你刚接触渗透测试,在实验环境中也很难避开 Wireshark。如果你对这个出色的数据包分析工具还不熟悉,那你应该…

作者头像 李华
网站建设 2026/3/10 0:42:07

AZ-500云安全架构设计(从Agent部署到实时威胁检测)

第一章:MCP AZ-500 的云 Agent 安全防护在现代云安全架构中,Azure 的 MCP AZ-500 认证所涵盖的云 Agent 安全机制是保障虚拟机工作负载完整性的核心组件。云 Agent 作为运行在 Azure 虚拟机内部的轻量级代理程序,负责与 Azure 控制平面通信&a…

作者头像 李华
网站建设 2026/3/11 13:32:41

Winevdm:在64位Windows上运行16位应用的终极方案

Winevdm:在64位Windows上运行16位应用的终极方案 【免费下载链接】winevdm 16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows 项目地址: https://gitcode.com/gh_mirrors/wi/winevdm 你是否遇到过这样的情况:一些经典的16位…

作者头像 李华