机器学习基础07

news2024/11/20 9:22:30

目录

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_iris

x,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.coloradmin.cn/o/2243952.html

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

相关文章

基于python的在线投票系统小程序u9t2g.

目录 项目介绍开发技术具体实现截图微信开发者工具介绍技术路线开发语言以及框架介绍python-flask核心代码部分展示python-django核心代码部分展示详细视频演示源码获取 项目介绍 投票系统用户端是基于微信小程序,管理员端是基于web网页端, &#xff0c…

android 使用MediaPlayer实现音乐播放--权限请求

在Android应用中,获取本地音乐文件的权限是实现音乐扫描功能的关键步骤之一。随着Android版本的不断更新,从Android 6.0(API级别23)开始,应用需要动态请求权限,而到了android 13以上需要的权限又做了进一步…

向量数据库FAISS之五:原理(LSH、PQ、HNSW、IVF)

1.Locality Sensitive Hashing (LSH) 使用 Shingling MinHashing 进行查找 左侧是字典,右侧是 LSH。目的是把足够相似的索引放在同一个桶内。 LSH 有很多的版本,很灵活,这里先介绍第一个版本,也是原始版本 Shingling one-hot …

【SQL】E-R模型(实体-联系模型)

目录 一、介绍 1、实体集 定义和性质 属性 E-R图表示 2. 联系集 定义和性质 属性 E-R图表示 一、介绍 实体-联系数据模型(E-R数据模型)被开发来方便数据库的设计,它是通过允许定义代表数据库全局逻辑结构的企业模式&#xf…

SIMCom芯讯通A7680C在线升级:FTP升级成功;http升级腾讯云对象储存的文件失败;http升级私有服务器的文件成功

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…

如何理解岭回归模型?(python)

1 何为岭回归? 岭参数k不是唯一确定的,其估计的回归系数是一个估计族。 2 何为岭迹分析? 1)定义 2)作用 k值的选取原则: 如下图所示,当kk0时,各回归系数的估计值基本都能相对稳…

Prometheus结合K8s(二)使用

上一篇介绍了如何搭建 Prometheus结合K8s(一)搭建-CSDN博客,这章介绍使用 页面访问 kubectl get svc -n prom 看promeheus和granfana的端口访问页面 Prometheus 点击status—target,可以看到metrics的数据来源,即各…

泷羽sec学习打卡-云技术基础2-捕获照片

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于云技术基础的那些事儿-捕获帅照 搭建网站的前提有哪些?搭建网站的流程有哪些&#xff1f…

常见的水位检测传感器及其特点

常见的水位检测传感器及其特点: 1. 浮球液位传感器: - 工作原理:利用浮力,使浮子上升,通过判断浮子上升来判断水位 -优点:便宜简单 - 缺点:精确度低,应用环境受限。靠液体的浮力…

Flink Lookup Join(维表 Join)

Lookup Join 定义(支持 Batch\Streaming) Lookup Join 其实就是维表 Join,比如拿离线数仓来说,常常会有用户画像,设备画像等数据,而对应到实时数仓场景中,这种实时获取外部缓存的 Join 就叫做维…

Azure Kubernetes Service (AKS)资源优化策略

针对Azure Kubernetes Service (AKS)的资源优化策略,可以从多个维度进行考虑和实施,以提升集群的性能、效率和资源利用率。以下是一些关键的优化策略: 一、 Pod资源请求和限制 设置Pod请求和限制:在YAML清单中为所有Pod设置CPU和…

RabbitMQ1:初识MQ

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

AI 提示词(Prompt)入门 十:最佳实践|详细询问,提供细节!

1、原则解释 当与 ChatGPT 交流时,提供具体和详细的信息非常重要。 这样做可以帮助 ChatGPT 更准确地理解你的需求和上下文,从而生成更相关和有用的回答 明确的信息可以包括具体的问题背景、相关领域的说明、你所期望的答案类型等。 2、如何实践 明…

实验十三 生态安全评价

1 背景及目的 生态安全是生态系统完整性和健康性的整体反映,完整健康的生态系统具有调节气候净化污染、涵养水源、保持水土、防风固沙、减轻灾害、保护生物多样性等功能。维护生态安全对于人类生产、生活、健康及可持续发展至关重要。随着城市化进程的不断推进&…

怎样实现跨部门和跨地区的数据共享?

随着企业规模的扩大和业务的多样化,不同部门和地区之间的数据共享变得越来越重要。实时数据同步作为保证数据准确性和完整性的重要手段,被广泛应用于各行各业。那不同部门和不同地区怎么实现共享数据呢? 一、前期数据准备 前期数据上需要建…

国家工信安全中心:公共数据授权运营平台技术要求(附下载)

2023年11月23日,第二届全球数字贸易博览会“数据要素治理与市场化论坛”于杭州成功召开,国家数据局党组书记、局长刘烈宏,浙江省委常委、常务副省长徐文光出席会议并致辞。会上,国家工业信息安全发展研究中心(以下简称…

C语言数据结构——详细讲解 双链表

从单链表到双链表:数据结构的演进与优化 前言一、单链表回顾二、单链表的局限性三、什么是双链表四、双链表的优势1.双向遍历2.不带头双链表的用途3.带头双链表的用途 五、双链表的操作双链表的插入操作(一)双链表的尾插操作(二&a…

【ArcGISPro】地理配准-影像校正

由于大部分数据安全性,以下是随意下载的图片,仅展示配置操作 地图-地理配准 添加控制点 修改控制点 可以导入、导出、添加和删除控制点 保存 关闭地理配准

ReNamer Pro 7.5 中文绿色便携专业版-文件重命名工具

前言 我们日常生活和工作中所涉及的文件数量日益增多。无论是图片、音频、视频还是各种文档,这些文件在存储、管理和分享时,都需要有一个清晰、有序的文件命名规则。然而,手动重命名大量文件不仅耗时耗力,而且容易出错&#xff0c…

PgSQL即时编译JIT | 第1期 | JIT初识

PgSQL即时编译JIT | 第1期 | JIT初识 JIT是Just-In-Time的缩写,也就是说程序在执行的时候生成可以执行的代码,然后执行它。在介绍JIT之前,需要说下两种执行方式:解释执行和编译执行。其中解释执行是通过解释器,将代码逐…