当前位置: 首页 > news >正文

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

一、线性回归

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

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

一元线性回归模型:

β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*(精确率*召回率)/精确率+召回率

http://www.jsqmd.com/news/73223/

相关文章:

  • 程序员转行到大模型开发领域,以下是几个推荐的方向、推荐原因以
  • 游戏三子棋
  • Windows11制作docker linux-arm64镜像
  • Wsappx进程异常占用的深度解析与修复方案
  • Windows11安装docker
  • 2025年12月乌兹别克斯坦EAC认证,SGR认证,OTTC认证公司推荐,综合服务能力与资质解析 - 品牌鉴赏师
  • Cameralink采集软件-Espeedgrab软件应用【2.存储图片和视频】
  • 容器化部署在软件许可优化中的应用:跨部门资源共享实践
  • 2025年可观测平台选型指南:头部厂商综合测评与推荐
  • AcWing 846:树的重心 ← 类似“东方博宜OJ 2190:树的重心”代码
  • 2025年12月海关联盟GOST认证,PAC认证,工业安全认证公司推荐:合规服务测评与选择指南 - 品牌鉴赏师
  • VS2022二次元背景板痛改教程!
  • docker启动mysql及部分命令回顾
  • 狮子关的绿,藏着风与猕猴的悄悄话
  • 山西临汾卤制品制作技艺的技术路径分析
  • 12月11日日记
  • 2025最新的电子实验记录本软件,引领科研数字化变革的智能中枢
  • 【量子机器学习调试终极指南】:手把手教你用VSCode攻克QML代码难题
  • Teams Agent开发避坑指南,90%新手都会忽略的3大陷阱
  • Java学习日志--常见类库(上)
  • 浩辰CAD看图王电脑版:轻松解决CAD转PDF方向问题
  • 5个必学的Conda命令实战案例
  • 直播带货APP开发的核心流程:推流端、观看端与运营端后台搭建指南
  • 电子书免费 下载 网站 哪些
  • AI工具整体查看代码工程并给出建议
  • 2025 最新广州RYT200培训机构评测!市场主流五大瑜伽馆深度解析,权威认证 + 资深导师团榜单发布,引领专业瑜伽教学新生态 - 全局中转站
  • 用循环神经网络生成0^n 1^n形式的简单序列
  • AcWing 846:树的重心 ← 链式前向星 or 邻接表
  • PyMe是一款面向大众的可视化低代码Python开发工具
  • 251211