推广

一文速览机器学习的类别(Python代码)

iseeyu2年前 (2024-02-21)推广141

  • 代码示例
    示例所用天气数据集是简单的天气情况记录数据,包括室外温湿度、风速、是否下雨等,在分类任务中,我们以是否下雨作为标签,其他为特征(如图4.6)

import pandas as pd    # 导入pandas库
weather_df = pd.read_csv('./data/weather.csv')   # 加载天气数据集
weather_df.head(10)   # 显示数据的前10行

from sklearn.linear_model import LogisticRegression  # 导入逻辑回归模型
x = weather_df.drop('If Rain', axis=1)  # 特征x
y = weather_df['If Rain']  # 标签y
lr = LogisticRegression()
lr.fit(x, y)  # 模型训练
print("前10个样本预测结果:", lr.predict(x[0:10]) ) # 模型预测前10个样本并输出结果

以训练的模型输出前10个样本预测结果为: [1 1 1 1 1 1 0 1 1 1],对比实际前10个样本的标签: [1 1 1 1 1 0 1 0 0 1],预测准确率并不高。在后面章节我们会具体介绍如何评估模型的预测效果,以及进一步优化模型效果。

回归模型
回归模型是处理预测结果取值无限的回归任务。如下代码示例通过线性回归模型,以室外湿度为标签,根据温度、风力、下雨等情况预测室外湿度。

  • 线性回归简介
    线性回归模型前提假设是y和x呈线性关系,输入x,模型决策函数为Y=wx+b。模型的学习目标为极小化均方误差损失函数。模型的优化算法常用最小二乘法求解最优的模型参数。
  • 代码示例
from sklearn.linear_model import LinearRegression  #导入线性回归模型
x = weather_df.drop('Humidity', axis=1)  # 特征x
y = weather_df['Humidity']  # 标签y
linear = LinearRegression()

linear.fit(x, y)  # 模型训练
print("前10个样本预测结果:", linear.predict(x[0:10]) ) # 模型预测前10个样本并输出结果
# 前10个样本预测结果: [0.42053525 0.32811401 0.31466161 0.3238797  0.29984453 0.29880059

1.2 非监督学习

非监督学习也是机器学习中应用较广泛的,是从无标注的数据(x)中,学习数据的内在规律。这个过程就像模型在没有人提供参考答案(y),完全通过自己琢磨题目的知识点,对知识点进行归纳、总结。按照应用场景,非监督学习可以分为聚类,特征降维和关联分析等方法。 如下示例通过Kmeans聚类划分出不同品种的iris鸢尾花样本。

  • Kmeans聚类简介
    Kmeans聚类是非监督学习常用的方法,其原理是先初始化k个簇类中心,通过迭代算法更新各簇类样本,实现样本与其归属的簇类中心的距离最小的目标。其算法步骤为:
    1.初始化:随机选择 k 个样本作为初始簇类中心(可以凭先验知识、验证法确定k的取值);
    2.针对数据集中每个样本 计算它到 k 个簇类中心的距离,并将其归属到距离最小的簇类中心所对应的类中;
    3.针对每个簇类 ,重新计算它的簇类中心位置;
    4.重复上面 2 、3 两步操作,直到达到某个中止条件(如迭代次数,簇类中心位置不变等)

  • 代码示例

from sklearn.datasets import load_iris  # 数据集
from sklearn.cluster import KMeans   #  Kmeans模型
import matplotlib.pyplot as plt  # plt画图
lris_df = datasets.load_iris()  # 加载iris鸢尾花数据集,数据集有150条样本,分三类的iris品种
x = lris_df.data
k = 3  # 聚类出k个簇类, 已知数据集有三类品种, 设定为3
model = KMeans(n_clusters=k)  
model.fit(x)  # 训练模型
print("前10个样本聚类结果:",model.predict(x[0:10]) ) # 模型预测前10个样本并输出聚类结果:[1 1 1 1 1 1 1 1 1 1] 
# 样本的聚类效果以散点图展示
x_axis = lris_df.data[:,0] # 以iris花的sepal length (cm)特征作为x轴
y_axis = lris_df.data[:,1] # 以iris花的sepal width (cm)特征作为y轴
plt.scatter(x_axis, y_axis, c=model.predict(x)) # 分标签颜色展示聚类效果
plt.xlabel('Sepal length (cm)')#设定x轴注释
plt.ylabel('Sepal width (cm)')#设定y轴注释
plt.title('Iris KMeans Scatter')
plt.show()   # 如图4.7聚类效果

1.3半监督学习

半监督学习是介于传统监督学习和无监督学习之间(如图4.8),其思想是在有标签样本数量较少的情况下,以一定的假设前提在模型训练中引入无标签样本,以充分捕捉数据整体潜在分布,改善如传统无监督学习过程盲目性、监督学习在训练样本不足导致的学习效果不佳的题。按照应用场景,半监督学习可以分为聚类,分类及回归等方法。 如下示例通过基于图的半监督算法——标签传播算法分类俱乐部成员。

  • 标签传播算法简介

标签传播算法(LPA)是基于图的半监督学习分类算法,基本思路是在所有样本组成的图网络中,从已标记的节点标签信息来预测未标记的节点标签。

  1. 首先利用样本间的关系(可以是样本客观关系,或者利用相似度函数计算样本间的关系)建立完全图模型。

  2. 接着向图中加入已标记的标签信息(或无),无标签节点是用一个随机的唯一的标签初始化。

  3. 将一个节点的标签设置为该节点的相邻节点中出现频率最高的标签,重复迭代,直到标签不变即算法收敛。

  • 代码示例
    该示例的数据集空手道俱乐部是一个被广泛使用的社交网络,其中的节点代表空手道俱乐部的成员,边代表成员之间的相互关系。
import networkx as nx # 导入networkx图网络库
import matplotlib.pyplot as plt
from networkx.algorithms import community  # 图社区算法
G=nx.karate_club_graph()   # 加载美国空手道俱乐部图数据
#注: 本例未使用已标记信息, 严格来说是半监督算法的无监督应用案例
lpa = community.label_propagation_communities(G)  # 运行标签传播算法
community_index = {n: i for i, com in enumerate(lpa) for n in com} # 各标签对应的节点
node_color = [community_index[n] for n in G]  # 以标签作为节点颜色
pos = nx.spring_layout(G)  # 节点的布局为spring型
nx.draw_networkx_labels(G, pos) # 节点序号
nx.draw(G, pos, node_color=node_color) # 分标签颜色展示图网络
plt.title(' Karate_club network LPA')
plt.show() #展示分类效果,不同颜色为不同类别

1.4 强化学习

强化学习从某种程度可以看作是有延迟标签信息的监督学习(如图4.9),是指智能体Agent在环境Environment中采取一种行为action,环境将其转换为一次回报reward和一种状态表示state,随后反馈给智能体的学习过程。本书中对强化学习仅做简单介绍,有兴趣可以自行扩展。


文章首发于算法进阶,公众号阅读原文可访问GitHub项目源码

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/57191.html

相关文章

何种方式编写URL以促进SEO优化。

何种方式编写URL以促进SEO优化。

无论是新网站还是旧网站,URL对网站都起着至关重要的作用。那么我们应该如何编写URL来促进呢?我们应该以何种方式编写URL以促进SEO优化?在编写URL的过程中,我们应该注意什么?让我们一起讨论吧。 URL无论是新的还是旧的,rul都非常讲究书写,而不是凭空写出网站的URL地址。我们都知...

常见移动端网站优化问题汇总。

常见移动端网站优化问题汇总。

如果你的网站没有配备相应的移动网站,它将在移动互联网快速发展的时代逐渐被抛弃,就像原来错过的淘宝店一样,每个行业都是这样的,与其他行业相比,无法赶上对方,等待对方的移动网站。关键词排名上升到首页,这是时候了。想赶上还为时已晚。汽车零部件公司移动网站在线一个月,可视倒车雷达,倒车雷达多少,倒车雷达“这...

新手如何在快手账号初期运营阶段中快速涨粉

对于快手新入驻的小白来说,不知道怎么入手运营好快手号,怎么运营才能快速上热门?今天小编就来跟大家分享一下关于快手运营的。1、封面在封面的设计中建议一定要竖屏,我们通过飞瓜快手的热门视频可以发现快手上热门的视频都是竖屏的封面和视频。飞瓜快手-快手热门视频这是因为在快手发现页中...

腾讯微视:想成功阻击抖音,只靠资源+模仿是不可能的。

腾讯微视:想成功阻击抖音,只靠资源+模仿是不可能的。

缺失的定位,花钱也买不来的内容,我们可以预见微视接下来的路会走的很不容易,希望微视能够探索出自己的道路,就像新slogan说的一样:发现更多有趣。 产品分析,是运营必备工作技能之一,几乎每个运营人在工作中都有做过。今天我们就以近期话题热度较高的“腾讯微视”进行产品分析。...

市场营销求职简历模板范文--带详细内容

市场营销求职简历模板范文--带详细内容

既是一种职能,又是组织为了自身及利益相关者的利益而创造、沟通、传播和传递客户价值,为顾客、客户、合作伙伴以及整个社会带来经济价值的活动、过程和体系。主要是指营销人员针对市场开展经营活动、销售行为的过程。市场营销个人简历模板怎么写呢?下面来看一下脚步网整理的市场营销简历模板范...

小编教你门户网站建设中哪些数据可以做参考。

小编教你门户网站建设中哪些数据可以做参考。

如果你能迅速发现潜在的问题,也会有所帮助。让问题变得更糟,他们会让你日复一日、周复一周地花钱。考虑到这一点,在的构建中,您不能忽略以下四个网络指标: 1.低流量 点击率低的PPC广告在两个方面伤害了你。首先,它们代表被浪费的机会。每个印象都是你赢得寻找你的产品或服务的新客户的机会。同样重要的是,...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片