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

机器学习之逻辑回归和k-means算法(六)

机器学习之逻辑回归和k-means算法(六)


文章目录

  • 机器学习之逻辑回归和k-means算法(六)
  • 一、 逻辑回归
    • 1.概念
    • 2.原理
    • 3.API
    • 4.案例
  • 二、 无监督学习 & K-means 聚类算法详解(通俗易懂版)
    • 1.什么是无监督学习?
    • 2.聚类算法是什么?
      • 聚类 vs 分类的区别:
    • 3.K-means 聚类算法详解
      • 3.1. 什么是“簇”和“质心”?
      • 3.2. K-means 算法的步骤(通俗易懂版):
      • 动态图示(帮助理解):
    • 4.总结一句话:
    • 5.K-means 的应用场景
    • 6.案例


一、 逻辑回归

1.概念

逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。由于算法的简单和高效,在实际中应用非常广泛。

逻辑回归一般用于二分类问题,比如:

是好瓜还是坏瓜

健康还是不健康

可以托付终身还是不可以

2.原理

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

线性回归: h(w)=w1x1+w2x2+....+bh(w)=w_1x_1+w_2x_2+....+bh(w)=w1x1+w2x2+....+b

sigmoid激活函数 :f(x)=11+e−xf(x)=\frac{1}{1+e^{-x}}f(x)=1+ex1

sigmoid函数的值是在[0,1]区间中的一个概率值,默认为0.5为阈值可以自己设定,大于0.5认为是正例,小于则认为是负例

把上面的h(w)h(w)h(w) 线性的输出再输入到sigmoid函数当中 f(w)=11+e−h(w)f(w)=\frac{1}{1+e^{-h(w)}}f(w)=1+eh(w)1

在这里插入图片描述

3.API

逻辑斯蒂

sklearn.linear_model.LogisticRegression()
参数:fit_intercept bool, default=True 指定是否计算截距max_iter int, default=100  最大迭代次数。迭代达到此数目后,即使未收敛也会停止。
模型对象:.coef_ 权重.intercept_ 偏置predict()预测分类predict_proba()预测分类(对应的概率)score()准确率

4.案例

from sklearn.datasets  import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_splitiris = load_iris()
x = iris.data
y = iris.target
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)model = LogisticRegression(max_iter=1000,fit_intercept=False) #  设置最大迭代次数 避免警告
model.fit(x_train, y_train)
print(model.coef_) #w
print(model.intercept_) # by_predict = model.predict(x_test)
print(y_predict)
print(y_test)
print(model.score(x_test, y_test))

运行结果:
在这里插入图片描述

二、 无监督学习 & K-means 聚类算法详解(通俗易懂版)

在机器学习的世界里,我们经常会听到“监督学习”和“无监督学习”这两个词。今天我们就来聊聊其中的 无监督学习,以及它里面非常经典的一个算法 —— K-means 聚类算法


1.什么是无监督学习?

简单来说:

  • 无监督学习就是让计算机自己从数据里找规律,不需要我们提前告诉它“正确答案”。
  • 它只需要数据的特征(比如年龄、收入、消费频率等),不需要标签(比如“用户是否流失”)。
  • 最常见的无监督学习任务就是 聚类,也就是把相似的数据自动分到一组。

2.聚类算法是什么?

聚类算法的核心思想是:

  • 把数据分成若干个“簇”(cluster),每个簇里的数据彼此相似,不同簇之间的数据差异大。
  • 目标是:簇内差异小,簇外差异大
  • 差异通常是通过“距离”来衡量的,比如欧氏距离。

聚类 vs 分类的区别:

项目聚类(无监督)分类(监督学习)
是否有标签❌ 没有标签✅ 有标签
目标自动分组预测类别
应用场景用户分群、图像分割等垃圾邮件识别、疾病预测等

3.K-means 聚类算法详解

K-means 是最常用的聚类算法之一,它的目标是把数据分成 K 个簇,让簇内的数据点尽可能“抱团”。

3.1. 什么是“簇”和“质心”?

  • :就是一组相似的数据点,算法会把它们归为一类。
  • 质心:就是每个簇的“中心点”,是这个簇中所有点的平均值。

3.2. K-means 算法的步骤(通俗易懂版):

  1. 随机选 K 个点作为初始质心(可以随便选)。
  2. 把每个数据点分配给最近的质心,形成 K 个簇。
  3. 重新计算每个簇的质心(就是簇内所有点的平均值)。
  4. 重复步骤 2 和 3,直到质心不再变化(或者变化很小),就停止。

动态图示(帮助理解):

K-means 动态过程


4.总结一句话:

K-means 就是一个不断“找中心、分数据、再重新找中心”的过程,直到数据分组稳定下来。


5.K-means 的应用场景

  • 用户画像与分群
  • 图像压缩与分割
  • 文档聚类
  • 市场细分

6.案例

from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt# 设置随机种子
np.random.seed(0)# 生成随机数据
data = np.random.rand(1000, 2)  # 生成形状为 (1000, 2) 的随机数组# 使用 KMeans 进行聚类
kmeans = KMeans(n_clusters=5)  # 指定聚类中心数量为 5
kmeans.fit(data)  # 拟合数据# 输出聚类结果
print("Cluster labels:", kmeans.labels_)  # 聚类标签
print("Cluster centers:\n", kmeans.cluster_centers_)  # 聚类中心
print("Inertia:", kmeans.inertia_)  # 聚类的惯性(SSE)# 可视化结果
plt.scatter(data[:, 0], data[:, 1], c=kmeans.labels_)  # 绘制数据点
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=100, c='red')  # 绘制聚类中心
plt.show()

运行结果:
在这里插入图片描述
在这里插入图片描述


如果你觉得这篇文章对你有帮助,欢迎点赞、收藏、转发!🎯

http://www.dtcms.com/a/272598.html

相关文章:

  • 32多串300A保护板测试仪:新能源电池安全的核心守护者
  • 生成式人工智能实战 | 自注意力生成对抗网络(Self-Attention Generative Adversarial Network, SAGAN)
  • 深入理解fork():系统调用创建进程的原理与实践
  • 项目部署:nginx的安装和配置
  • 利用Pandas进行条件替换与向前填充
  • Linux中的命令连接符
  • Layui —— select
  • 图解Java数据容器(三):Queue
  • CAS登录工作流程简述
  • 【前端】【Echarts】ECharts 词云图(WordCloud)教学详解
  • Prompt提示词的主要类型和核心原则
  • 在vscode中和obsidian中使用Mermaid
  • Spring AI Alibaba(2)——通过Graph实现工作流
  • Flutter 与 Android 的互通几种方式
  • Linux 中 sed 命令
  • RedisJSON 路径语法深度解析与实战
  • Spring Boot + Javacv-platform:解锁音视频处理的多元场景
  • 【TCP/IP】12. 文件传输协议
  • MySQL索引操作全指南:创建、查看、优化
  • Debian-10编译安装Mysql-5.7.44 笔记250706
  • macOS 上安装 Miniconda + Conda-Forge
  • Jekyll + Chirpy + GitHub Pages 搭建博客
  • 如何使用Java WebSocket API实现客户端和服务器端的通信?
  • 蓝桥杯第十六届(2025)真题深度解析:思路复盘与代码实战
  • MinerU将PDF转成md文件,并分拣图片
  • Alibaba Druid主要配置
  • 图片合并pdf
  • 新手向:实现ATM模拟系统
  • TDengine 数据库建模最佳实践
  • Oracle 视图