生物信息与机器学习6 - 有监督学习算法和无监督学习算法

1.有监督学习算法

有监督学习算法推荐:
决策树分类器 - 适合处理分类问题,容易理解和可视化;
KNN分类器 - 对于简单的单特征分类也很有效;
逻辑回归 (多分类) - 使用one-vs-all策略处理多类别。

有监督学习的选择:
如果数据分布比较简单,建议使用KNN;
如果需要清晰的决策边界,使用决策树;
如果数据呈现线性可分的特征,可以使用逻辑回归。

import matplotlib.pyplot as plt
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split# 生成示例数据
X = np.random.rand(100, 1) * 10  # 单特征数据
y = np.where(X < 2.5, 0,np.where(X < 5, 1,np.where(X < 7.5, 2, 3)))  # 4个类别# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 1. 决策树
dt_clf = DecisionTreeClassifier()
dt_clf.fit(X_train, y_train)
dt_score = dt_clf.score(X_test, y_test)# 2. KNN
knn_clf = KNeighborsClassifier(n_neighbors=3)
knn_clf.fit(X_train, y_train)
knn_score = knn_clf.score(X_test, y_test)# 3. 逻辑回归
lr_clf = LogisticRegression(multi_class='ovr')
lr_clf.fit(X_train, y_train)
lr_score = lr_clf.score(X_test, y_test)print(f"决策树准确率: {dt_score:.3f}")
print(f"KNN准确率: {knn_score:.3f}")
print(f"逻辑回归准确率: {lr_score:.3f}")

2. 无监督学习算法

无监督学习算法推荐:
K-means聚类 - 最常用的聚类算法;
DBSCAN - 基于密度的聚类。

无监督学习选择:
如果类别数量已知(本例中是4个),推荐使用K-means;
如果类别数量未知,可以尝试使用DBSCAN。

from sklearn.cluster import KMeans, DBSCAN
from sklearn.metrics import silhouette_score# 使用数据为上述生成数据
# K-means聚类
kmeans = KMeans(n_clusters=4, random_state=42)
kmeans_labels = kmeans.fit_predict(X)# DBSCAN聚类
dbscan = DBSCAN(eps=0.5, min_samples=5)
dbscan_labels = dbscan.fit_predict(X)# 计算轮廓系数
kmeans_silhouette = silhouette_score(X, kmeans_labels)
print(f"K-means轮廓系数: {kmeans_silhouette:.3f}")# 可视化结果
plt.figure(figsize=(12, 4))plt.subplot(121)
plt.scatter(X, np.zeros_like(X), c=kmeans_labels)
plt.title('K-means聚类结果')plt.subplot(122)
plt.scatter(X, np.zeros_like(X), c=dbscan_labels)
plt.title('DBSCAN聚类结果')plt.tight_layout()
plt.show()

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

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

相关文章

【Nas】X-DOC:Mac mini Docker部署小雅Alist

【Nas】X-DOC&#xff1a;Mac mini Docker部署小雅Alist 1、拉取镜像&#xff1a;2、获取阿里云盘信息3、启动容器4、访问服务5、定时清理阿里云盘缓存 1、拉取镜像&#xff1a; docker pull xiaoyaliu/alist:latest2、获取阿里云盘信息 mkdir /Volumes/Data/Docker/xiaoya在…

【数据结构】静态和动态空间管理

让我们来聊聊动态空间管理和静态空间管理&#xff0c;这两个听起来有点复杂的词。其实&#xff0c;它们就像你在学校里玩和学习时用的工具&#xff0c;只不过是在计算机里怎么使用“空间”的工具。我们来一起看看吧&#xff01; ### 什么是静态空间管理&#xff1f; 想象一下…

逗号运算符应用举例

在main.cpp里输入程序如下&#xff1a; #include <iostream> //使能cin(),cout(); #include <iomanip> //使能setbase(),setfill(),setw(),setprecision(),setiosflags()和resetiosflags(); //setbase( char x )是设置输出数字的基数,如输出进制数则用set…

依赖注入(Dependency Injection, DI)和控制反转(Inversion of Control, IoC)

依赖注入&#xff08;Dependency Injection, DI&#xff09;和控制反转&#xff08;Inversion of Control, IoC&#xff09;是面向对象设计中两个紧密相关的概念&#xff0c;特别是在构建可扩展和可维护的软件系统时非常有用。它们主要用于减少代码之间的耦合度&#xff0c;提高…

vxe-table v4.8+ 与 v3.10+ 虚拟滚动支持动态行高,虚拟渲染更快了

Vxe UI vue vxe-table v4.8 与 v3.10 解决了老版本虚拟滚动不支持动态行高的问题&#xff0c;重构了虚拟渲染&#xff0c;渲染性能大幅提升了&#xff0c;行高自适应和列宽拖动都支持&#xff0c;大幅降低虚拟渲染过程中的滚动白屏&#xff0c;大量数据列表滚动更加流畅。 自适…

ICPC区域赛成都站【赛后回顾+总结】

传送门 前言赛后总结赛后回顾赛后感悟 前言 首先&#xff0c;这是本人本赛季第一场XCPC区域赛&#xff0c;也是本人算竞生涯中第一场XCPC区域赛&#xff08;之前只打过邀请赛和省赛&#xff09;。 赛后总结 然后赛后总结一下&#xff1a;我队天崩开局&#xff0c;我队出师不利…

Vue Scoped CSS深度解析:原理、误区与最佳实践

引言 在Vue开发中&#xff0c;Scoped CSS是一个强大而复杂的功能。它允许我们将样式限制在特定组件内&#xff0c;但同时也带来了一些细微的行为&#xff0c;可能导致意外的样式"泄漏"。本文将深入探讨Vue Scoped CSS的工作原理&#xff0c;解释常见的误区&#xff…

c盘满了怎么清理垃圾而不误删?6招轻松清理C盘,快来试试

c盘满了怎么清理垃圾而不误删&#xff1f;相信平时工作生活中离不开电脑&#xff0c;随着使用电脑时间就了&#xff0c;C 盘的空间会不断被占据&#xff0c;进而致使系统运行变得迟缓&#xff0c;甚至出现卡顿现象。因此&#xff0c;定期清理 C 盘的是非常重要的。很多电脑小白…

excel的宏1

1宏和vba visual basic for applications 一种编程语言 2vba编写一系列指令的程序&#xff0c;就是宏 3完成重复性的数据任务 点击开发工具 使用设置的宏之后表格的变化 excel帮忙编写了一个代码 以上为自动编写的代码

VB.NET中如何利用WCF(Windows Communication Foundation)进行服务间通信

在VB.NET中&#xff0c;Windows Communication Foundation (WCF) 是一个用于构建安全、可靠和跨平台的分布式系统的框架。WCF 提供了多种服务通信选项&#xff0c;包括 HTTP、TCP、命名管道和 MSMQ 等传输协议&#xff0c;以及多种消息编码格式&#xff08;如文本和二进制&…

Swarm-LIO: Decentralized Swarm LiDAR-inertial Odometry论文翻译

文章目录 前言一、介绍二、相关工作三、方法A. 问题表述B. 框架概述C. 群体系统的初始化D. 去中心化激光雷达-惯性状态估计 四. 实验A. 室内飞行B. 退化环境飞行C. 去中心化部署 五. 结论和未来工作 前言 原文&#xff1a;原文 准确的自我状态和相对状态估计是完成群体任务的关…

光耦合器的关键作用和创新---腾恩科技

光耦合器或光隔离器已成为电路中必不可少的器件&#xff0c;它允许信号在无需直接电接触的情况下跨不同电压域传输。这种隔离能力对于保护低压元件免受高压电路的潜在损坏至关重要。本文将仔细研究光耦合器在当今技术中发挥的独特作用&#xff0c;并探讨其在各种应用中不断扩展…

linux:回车换行+进度条+git理解与使用以及如何解决免密码push问题

目录 特殊符号 Linux小程序---进度条 1.\n和\r的理解 2.缓冲区 3.设计简单的倒计时 4.设计简单的进度条 git-版本控制器 1.理解什么是版本控制器? 2.git的使用 3.git的其他说明 总结上传过程 特殊符号 1.(取消显化) 的作用:执行指令,但指令本身不会显化; 举个例子:我…

vscode摸鱼学习插件开发

不知道大家在摸鱼的时候&#xff0c;会不会想要学习&#xff1f; 或者有没有考公人&#xff0c;下班要学习的&#xff1f; 上班时间摸鱼&#xff0c;下班时间不够学习&#xff1f; 为此&#xff0c;我决定开发一个vscode插件&#xff0c;来刷粉笔题 粉笔插件名称&#xff1a;…

如何解决RabbitMQ消息的重复消费问题

什么情况下会导致消息的重复消费——在消费者还没成功发送自动确认机制时发生&#xff1a; 网络抖动消费者挂了 解决方案 每条消息设置一个唯一的标识id幂等方案&#xff1a;【Redis分布式锁、数据库锁&#xff08;悲观锁、乐观锁&#xff09;】 面试官&#xff1a;如何解决…

列表(排列整齐),表格,表单(登录,注册)(HTML)

目录 列表(排列整齐),表格,表单(登录,注册)知识点: 列表: 表格: 表单: 练习: 列表(排列整齐),表格,表单(登录,注册)知识点: 列表: 无序列表 ul(无序列表) li(列表条目)独占一行, ul只能包含li标签,li标签方内容p段落, 有序列表 ol(有序列表)嵌套li(列表条目) ol只…

Kafka 与传统 MQ 消息系统之间有三个关键区别?

大家好&#xff0c;我是锋哥。今天分享关于【Kafka 与传统 MQ 消息系统之间有三个关键区别&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; Kafka 与传统 MQ 消息系统之间有三个关键区别&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 …

软件测试基础知识最强总结(2024版)

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、什么是软件&#xff1f; 软件是计算机系统中的程序和相关文件或文档的总称。 二、什么是软件测试&#xff1f; 说法一&#xff1a;使用人工或自动的手段…

Qt 使用QXlsx将QTableView数据导出到Excel表格

这是我记录Qt学习过程的第7篇心得文章&#xff0c;上次写到使用QAxObject将QTableView数据导出到Excel表格&#xff0c;使用过程中发现&#xff0c;执行效率不高&#xff0c;而且当电脑同时安装Office和WPS时&#xff0c;还经常出错&#xff0c;于是就研究了QXlsx&#xff0c;发…

智慧用电监控装置:引领0.4kV安全用电新时代

在智能科技日新月异的今天&#xff0c;电力安全与管理正迎来一场前所未有的革新。为0.4kV以下TT、TN系统打造的智慧用电在线监控装置不仅重新定义了电力监控的边界&#xff0c;更为建筑安全用电筑起了一道坚不可摧的防线。 装置集成了单、三相交流电精确测量、四象限电能计量、…