机器学习基础07

目录

1.逻辑回归

1.1原理

1.2API

2.K-Means

2.1算法过程

2.2API

3.SVM(支持向量机)

3.1算法原理​

3.2API 


1.逻辑回归

逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法。

1.1原理

逻辑回归的输入是线性回归的输出。

 Sigmoid函数:

损失函数:

构建过程,若有: 

 然后使用梯度下降算法,减少损失函数的值,更新逻辑回归前面对应算法的权重参数(回归计算W),提升原本属于1类别的概率,降低原本是0类别的概率。

1.2API

sklearn.linear_model.LogisticRegression()

参数:

  • fit_intercept :

default=True 指定是否计算截距

  • max_iter :

int, default=100  最大迭代次数。迭代达到此数目后,即使未收敛也会停止。

import numpy as np 
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_irisx,y = load_iris(return_X_y=True)# iris数据集是三分类,将类别2剔除
x=x[y!=2]
y=y[y!=2]x_train,x_test,y_train,y_test =train_test_split(x,y,train_size=0.5,random_state=10)# 逻辑回归模型
model = LogisticRegression()model.fit(x_train,y_train)print(model.coef_)
print(model.intercept_)y_predict = model.predict(x_test)
print(y_predict)

2.K-Means

K-Means是无监督的聚类算法。

2.1算法过程

第一步:设定簇数n和初始化质心(centroids)的位置。

第二步:计算所有样本与所有质心的距离,样本属于与距离最短的质心代表的簇。

第三步:根据每个簇的样本,更新质心的位置为簇的中心点,重复第二步直到所有质心不变。

2.2API

from sklearn.cluster import KMeans

参数:

  • n_clusters: int, default=8 要形成的簇的数量。
  • init: {'k-means++', 'random'} or ndarray, default='k-means++'

初始化方法。'k-means++' 可以帮助提高收敛速度并减少陷入局部最小值的风险;'random' 表示随机选择初始质心;也可以提供一个形状为 (n_clusters, n_features) 的数组作为初始质心的位置。

  • n_init: int, default=10

当初始化方法为 'k-means++' 或 'random' 时,算法会运行多次,每次使用不同的随机质心初始化。

  • max_iter: int, default=300

单次运行的最大迭代次数。如果在达到最大迭代次数之前已经收敛,则提前终止。

  • tol: float, default=1e-4

相对于惯性的绝对公差值,用于判断是否收敛。

  • verbose: int, default=0

日志详细程度。0表示不输出任何信息,大于0的值会输出更多调试信息。

  • random_state: int, RandomState instance or None, default=None

用于初始化质心的随机数生成器的状态。如果设置为整数,可以确保每次运行结果的一致性。

  • copy_x: bool, default=True

是否复制输入数据。如果设置为 False,可能会修改原始输入数据。

  • algorithm: {"lloyd", "elkan", "auto", "full"}, default="auto"

使用的计算算法。"lloyd" 和 "elkan" 是两种不同的优化算法,"auto" 会自动选择最合适的算法。

属性:

  • cluster_centers_:

每个簇的中心点坐标。

  • labels_:

每个训练样本所属的簇标签。

  • inertia_:

所有样本到其最近质心的平方距离之和,也称为“簇内平方和”,是评估聚类效果的一个重要指标。

  • n_iter_:

实际运行的迭代次数。

from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt# 创建一个随机数据集, 100个样本,每个样本有2个特征
x = np.random.rand(100,2)# 初始化KMeans模型
kmeans = KMeans(n_clusters =3)# 拟合数据
kmeans.fit(x)# 获取每个样本所属的簇
labels = kmeans.labels_
# 获取每个簇的中心点
centroids =kmeans.cluster_centers_print('Labels',labels)
print('Centroids:',centroids)# 可视化结果
plt.scatter(x[:,0],x[:,1],c=labels,s=50,cmap='viridis')
plt.scatter(centroids[:,0],centroids[:,1],c='red',s=200,alpha=0.75)
plt.title('K-Means Clustering')
plt.show()

3.SVM(支持向量机)

SVM是监督学习的分类算法。
 

3.1算法原理

3.2API 

from sklearn.svm import SVC

参数:

  • C: float, default=1.0

惩罚参数,控制错误项的惩罚程度。较大会减少错误分类的数量,但可能导致过拟合。

  • kernel: {'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'}, default='rbf'

内核类型,用于算法中的非线性映射。常见的内核有:
        'linear': 线性核。
        'poly': 多项式核。
        'rbf': 径向基函数(高斯核),默认值。
        'sigmoid': Sigmoid 核。
        'precomputed': 预计算核矩阵。

  • degree: int, default=3

当使用多项式核 (kernel='poly') 时,表示多项式的次数。

  • gamma: {'scale', 'auto'} or float, default='scale'

RBF、多项式和 Sigmoid 核的系数。

  • coef0: float, default=0.0

核函数中的独立项。对于多项式 (kernel='poly') 和 Sigmoid (kernel='sigmoid') 核有效。

  • probability: bool, default=False

是否启用概率估计。这需要额外的时间和内存来训练模型,但可以使用 predict_proba 方法获得概率估计。

  • tol: float, default=1e-3

停止标准的容忍度。

  • cache_size: float, default=200

内存缓存大小(以 MB 为单位),用于存储内核矩阵。

  • class_weight: dict or 'balanced', default=None

类权重。如果设置为 'balanced',则类权重将自动调整为与输入数据中的类频率成反比。

  • verbose: bool, default=False

是否启用详细输出。

  • max_iter: int, default=-1

最大迭代次数。如果设置为正数,则限制迭代次数;如果设置为 -1,则没有限制。

  • decision_function_shape: {'ovo', 'ovr'}, default='ovr'

决策函数的形状。'ovo' 表示一对一(one-vs-one),'ovr' 表示一对多(one-vs-rest)。

  • break_ties: bool, default=False

在多类分类中,是否在预测时打破平局。仅当 decision_function_shape='ovr' 且 probability=True 时有效。

  • random_state: int, RandomState instance or None, default=None

随机数生成器的种子或实例。用于概率估计和随机解法器。

from sklearn.svm import SVC
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split x,y=load_breast_cancer(return_X_y=True)x_train,x_test,y_train,y_test =train_test_split(x,y,train_size=0.5,random_state=10)model = SVC()
model.fit(x_train,y_train)score = model.score(x_test,y_test)
print(score)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/61722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware Workstation 17.6.1

概述 目前 VMware Workstation Pro 发布了最新版 v17.6.1: 本月11号官宣:针对所有人免费提供,包括商业、教育和个人用户。 使用说明 软件安装 获取安装包后,双击默认安装即可: 一路单击下一步按钮: 等待…

解决 VMware 嵌套虚拟化提示 关闭“侧通道缓解“

最近给电脑做了新版的 Windows 11 LTSC操作系统,在启动VMware Workstation时,提示"此虚拟机已启用侧通道缓解,可增强安全性,但也会降低性能",但是我没有启用 Hyper-V 相关的任何功能以及 WSL, 从…

Java学习笔记--数组常见算法:数组翻转,冒泡排序,二分查找

目录 一,数组翻转 二,冒泡排序 三,二分查找(一尺之锤,日取其半,万世不竭) 一,数组翻转 1.概述:数组对称索引位置上的元素互换,最大值数组序号是数组长度减一 创建跳板…

数据结构-7.Java. 对象的比较

本篇博客给大家带来的是java对象的比较的知识点, 其中包括 用户自定义类型比较, PriorityQueue的比较方式, 三种比较方法...... 文章专栏: Java-数据结构 若有问题 评论区见 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 .…

悬浮框元素定位

Web页面中调试悬浮元素的方法 在UI自动化测试或Web开发中,悬浮框的特点是鼠标进入时弹出,鼠标离开时消失。这种动态特性导致普通方法难以直接定位悬浮框内的元素。所以需要冻结页面或使用模拟Hover状态来进行调试。 方法一:冻结页面进行调试…

MAC借助终端上传jar包到云服务器

前提:保证工程本地已打包完成:图中路径即为项目的target目录下已准备好的jar包 第一步:打开终端(先不要连接自己的服务器),输入下面的上传命令: scp /path/to/local/app.jar username192.168.1…

el-select 和el-tree二次封装

前言 本文章是本人在开发过程中&#xff0c;遇到使用树形数据&#xff0c;动态单选或多选的需求&#xff0c;element中没有这种组件&#xff0c;故自己封装一个&#xff0c;欢迎多多指教 开发环境&#xff1a;element-UI、vue2 组件效果 单选 多选 组件引用 <treeselec…

基于Python Web的社区爱心养老管理系统设计与实现

摘 要 随着社会老龄化的加剧&#xff0c;养老问题日益凸显。为了解决社区养老服务的管理难题&#xff0c;本文提出了一种基于互联网技术的社区爱心养老管理系统。该系统采用B/S架构&#xff0c;结合Web前端技术和后端数据库技术&#xff0c;实现了对社区养老服务的全面管理。系…

在 Ubuntu 上使用 Traefik Proxy 为 Docker 容器设置反向代理

简介 Traefik&#xff08;发音为"traffic"&#xff09;是一个开源的反向代理和负载均衡器。它为微服务架构提供了网络入口&#xff0c;特别是在动态、服务密集的环境中&#xff08;如容器、微服务架构&#xff09;。由于其设计灵活且易于实施&#xff0c;Traefik 成…

有关博客博客系统的测试报告 --- 初次进行项目测试篇

文章目录 前言一、博客系统的项目背景二、博客系统的项目简介1.后端功能1.1 用户管理1.2 博客管理1.3 权限管理 2.前端功能2.1 用户界面 测试计划测试工具、环境设计的测试动作功能测试访问博客登录页面博客首页测试博客详情页博客编辑页 自动化测试自动化测试用例自动化测试脚…

Elasticsearch 开放推理 API 增加了对 IBM watsonx.ai Slate 嵌入模型的支持

作者&#xff1a;来自 Elastic Saikat Sarkar 使用 Elasticsearch 向量数据库构建搜索 AI 体验时如何使用 IBM watsonx™ Slate 文本嵌入。 Elastic 很高兴地宣布&#xff0c;通过集成 IBM watsonx™ Slate 嵌入模型&#xff0c;我们的开放推理 API 功能得以扩展&#xff0c;这…

flume-将日志采集到hdfs

看到hdfs大家应该做什么&#xff1f; 是的你应该去把集群打开&#xff0c; cd /export/servers/hadoop/sbin 启动集群 ./start-all.sh 在虚拟机hadoop02和hadoop03上的conf目录下配置相同的日志采集方案&#xff0c;‘ cd /export/servers/flume/conf 切换完成之后&#…

已解决wordpress提示正在执行例行维护,请一分钟后回来

今天打开网站时提示“正在执行例行维护,请一分钟后回来”&#xff0c;一分钟后还这样&#xff0c;刷新也没用&#xff0c;这究竟是怎么回事了&#xff1f; 问题原因 这是WordPress在更新&#xff0c;wordpress在升级程序、主题、插件时&#xff0c;都会先切换到维护模式&…

[C++]:IO流

1. IO 流 1.1 流的概念 在C中&#xff0c;存在一种被称为“流”的概念&#xff0c;它描述的是信息流动的过程&#xff0c;具体来说就是信息从外部输入设备&#xff08;比如常见的键盘&#xff09;传输到计算机内部&#xff08;像内存区域&#xff09;&#xff0c;以及信息从内…

趋势洞察|AI 能否带动裸金属 K8s 强势崛起?

随着容器技术的不断成熟&#xff0c;不少企业在开展私有化容器平台建设时&#xff0c;首要考虑的问题就是容器的部署环境——是采用虚拟机还是物理机运行容器&#xff1f;在往期“虚拟化 vs. 裸金属*”系列文章中&#xff0c;我们分别对比了容器部署在虚拟化平台和物理机上的架…

多摩川编码器协议及单片机使用

参考&#xff1a; https://blog.csdn.net/qq_28149763/article/details/132718177 https://mp.weixin.qq.com/s/H4XoR1LZSMH6AxsjZuOw6g 1、多摩川编码器协议 多摩川数据通讯是基于485 硬件接口标准NRZ 协议&#xff0c;通讯波特率为2.5Mbps 的串行通讯&#xff0c;采用差分两…

力扣刷题--21.合并两个有序链表

I am the best &#xff01;&#xff01;&#xff01; 题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2…

Altium Designer学习笔记 6-10 异性元件库创建_原理图绘制

基于Altium Designer 23学习版&#xff0c;四层板智能小车PCB 更多AD学习笔记&#xff1a;Altium Designer学习笔记 1-5 工程创建_元件库创建 目录 6、光耦及二极管元件库模型创建 7、元件库模型的调用 二、原理图绘制及编译检查 8、元件的放置 9、器件的复制及对齐 10、…

视频流媒体播放器EasyPlayer.js H.265流媒体播放器当container窗口发生变化的时候,播放器如何自适应

流媒体播放器的核心技术及发展趋势展现了其在未来数字生活中的无限潜力。现今流媒体播放器将继续引领数字娱乐的新潮流&#xff0c;为用户提供更加丰富多样的内容体验。 流媒体播放器负责解码和呈现内容&#xff0c;常见的播放器包括VLC和HTML5播放器等。流媒体技术的应用场景广…

Windows系统使用全功能的跨平台开源音乐服务器Navidrome搭建在线音乐库

文章目录 前言1. 安装Docker2. Docker镜像源添加方法3. 创建并启动Navidrome容器4. 公网远程访问本地Navidrome4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定公网地址远程访问 前言 在数字时代&#xff0c;拥有一个个性化、便捷的音乐库成为了许多人的需求。本文…