机器学习基础(二)监督与非监督学习

        导语:更深入地探讨监督学习和非监督学习的知识,重点关注它们的理论基础、常用算法及实际应用场景。

        上一节我们深入探索机器学习的根本原理,包括基本概念、分类及如何通过构建预测模型来应用这些理论,详情可见:

机器学习基础(一)理解机器学习的本质-CSDN博客将在本节深入探索机器学习的根本原理,包括基本概念、分类及如何通过构建预测模型来应用这些理论。https://blog.csdn.net/qq_52213943/article/details/136162632?spm=1001.2014.3001.5501

目录

监督学习

理论基础

常见算法

应用场景

 非监督学习

理论基础

常见算法

应用场景

实战案例:预测房价

问题背景

业务目标

数据集描述

数据清洗

处理缺失值

去除异常值

转换非数值数据

特征选择

相关性分析

特征重要性评估

模型构建与训练


监督学习

        监督学习的核心在于从带有标签的数据中学习,在这种有标签的数据学习的过程中,算法的目标是找到输入特征和输出标签之间的映射关系。

理论基础

        监督学习算法尝试建立一个模型,该模型可以对给定的输入数据做出准确的预测。这通常涉及到从数据中识别模式并建立预测函数。常见的监督学习任务包括分类和回归。分类任务预测离散的标签,而回归任务预测连续的输出。

常见算法

线性回归:在回归任务中,模型尝试找到特征和连续标签之间的线性关系。

决策树:这是一种可以用于分类和回归的算法,它通过一系列规则来进行预测。

支持向量机(SVM):SVM是一种强大的分类算法,特别适合处理高维空间中的数据。

应用场景

        在医疗领域,监督学习可以用于疾病诊断,如基于患者数据预测糖尿病。此流程图是一个简化的糖尿病预测监督学习模型的创建和使用过程,在实际应用中可能需要更多的细节和额外的步骤,如特征选择、交叉验证、模型解释等。

        在金融行业,监督学习被用于信用评分和欺诈检测。此流程图简要概述了监督学习在金融行业中的欺诈检测应用。实际应用中,可能还需要考虑数据隐私、合规性、模型解释性和实时性等因素。

 非监督学习

        非监督学习与监督学习不同,因为它处理的是没有标签的数据。这种类型的学习更多关注于发现数据内部的结构和模式。

理论基础

        非监督学习的目标是探索数据的内在结构和模式,而不是预测标签。主要任务包括聚类、关联规则学习和降维。

常见算法

K-均值聚类:这是一种广泛使用的聚类算法,旨在将数据分成多个类别或群体。

主成分分析(PCA):PCA是一种降维技术,用于减少数据集的复杂性,同时保留最重要的信息。

应用场景

        市场细分是非监督学习的一个经典应用,通过聚类相似的消费者来发现不同的市场细分。这个过程旨在将市场中的消费者或客户分成具有相似需求、行为或特征的不同组群,以便企业能够更好地理解和满足不同市场细分的需求。市场细分的一般流程如图:

        

        在文本分析和自然语言处理中,非监督学习可用于主题建模和文档聚类等领域。主题建模用于发现文本数据中的主题或话题。这在新闻文章分类、社交媒体分析、文档摘要生成等领域非常有用;文档聚类则用于将文档根据其相似性分组,以便于文本检索、信息检索、情感分析等任务。

        主题建模是一种非监督学习技术,用于从文本数据中自动识别和提取主题或话题。它在自然语言处理领域中有广泛的应用,可以帮助人们理解大规模文本语料库中的内容和趋势。主题是文本数据中一种抽象的概念,通常由一组相关的单词组成,描述了文档或文本片段的内容。主题建模旨在通过分析文本数据中的单词分布来自动发现这些主题。

        主题建模的经典算法有:Latent Dirichlet Allocation (LDA): LDA是主题建模中最知名的算法之一。它假设文档是由一组主题混合而成的,每个主题都有一组相关的单词。LDA通过迭代过程来估计文档中的主题分布和主题中的单词分布;Non-Negative Matrix Factorization (NMF): NMF是另一种用于主题建模的算法。它通过将文本数据矩阵分解为两个非负矩阵来发现主题。一个矩阵代表主题-文档关系,另一个代表主题-单词关系。主题建模的流程如图:

实战案例:预测房价

        我们将通过一个实战案例来具体展示如何使用监督学习构建一个预测模型。我们选择的案例是房价预测,这是一个经典的回归问题,目的是根据房屋的特征来预测其售价。

问题背景

        在房地产市场,正确估计房屋价值对于买家、卖家、投资者乃至房地产经纪人都至关重要。房价受多种因素影响,包括房屋的大小、位置、年龄、近期装修情况等。

业务目标

        开发一个模型,准确预测不同特征组合下房屋的市场售价。为房地产公司、投资者提供快速估价工具,帮助他们做出更明智的投资和购买决策。

数据集描述

每个样本包含如下特征:

  1. 基本属性:面积、房间数、楼层数、建造年份等。

  2. 地理位置:所在城市、街区、是否靠近市中心等。

  3. 附加属性:地下室面积、车库情况、花园大小等。

        房价数据集的特征涵盖房屋的基本构造(如面积、房间数、楼层数、建造年份)、所处的地理位置(城市、街区、邻近市中心的情况)以及额外设施(地下室、车库、花园),为评估房产价值提供了全面信息。

数据清洗

        数据清洗是机器学习项目中至关重要的一步,它直接影响模型的性能。对于房价预测案例,数据清洗的基本步骤包括:

处理缺失值

        检查数据集中的缺失值。对于少量缺失的特征,可以使用均值、中位数或众数来填充。如果某个特征有大量缺失值,可以考虑删除该特征

import pandas as pd
# df包含了你的数据集
df = pd.read_csv('home_price.csv')
# 检查数据集中的缺失值
missing_values = df.isnull().sum()
# 显示每个特征的缺失值数量
print("缺失值统计:")
print(missing_values)
# 处理缺失值
for column, count in missing_values.items():if count > 0:if count < len(df) * 0.1:  # 少量缺失的特征,使用均值填充df[column].fillna(df[column].mean(), inplace=True)else:  # 大量缺失的特征,删除该特征df.drop(column, axis=1, inplace=True)
# 显示处理后的数据集信息
print("\n处理后的数据集信息:")
print(df.info())

去除异常值

        识别并去除异常值,这些可能是由于输入错误或其他非典型情况造成的。使用统计方法(如Z-score)或可视化方法(如箱线图)来检测异常值。

import pandas as pd
import numpy as np
from scipy import stats# 创建一个包含异常值的DataFrame示例
data = {'Value': [10, 15, 20, 25, 100]}
df = pd.DataFrame(data)
# 计算Z-score
z_scores = np.abs(stats.zscore(df))
# 设置阈值,通常选择阈值为2或3
threshold = 2
# 找到Z-score超过阈值的行
outliers = np.where(z_scores > threshold)
# 去除异常值
df_cleaned = df[(z_scores < threshold).all(axis=1)]
# 显示去除异常值后的DataFrame
print("去除异常值后的DataFrame:")
print(df_cleaned)

转换非数值数据

        很多机器学习算法要求输入是数值型的。因此,对于类别型数据(如街区名称),我们需要进行编码,如使用独热编码(One-Hot Encoding)

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline# 假设df是Pandas DataFrame,包含了房屋的特征和目标价格
# 分离特征和目标变量
X = df.drop('Price', axis=1)
y = df['Price']# 数值型和类别型特征的列名
numeric_features = ['Area', 'Rooms', 'Age']
categorical_features = ['Location', 'Type']# 创建预处理步骤
numeric_transformer = Pipeline(steps=[('imputer', SimpleImputer(strategy='median')),('scaler', StandardScaler())])categorical_transformer = Pipeline(steps=[    
('imputer', SimpleImputer(strategy='constant', fill_value='missing')), 
('onehot', OneHotEncoder(handle_unknown='ignore'))])
# 使用ColumnTransformer来应用这些转换
preprocessor = ColumnTransformer(transformers=[('num', numeric_transformer, numeric_features),        ('cat', categorical_transformer, categorical_features)])# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

特征选择

特征选择涉及决定使用哪些特征来训练模型。这一步骤可以减少模型的复杂性和过拟合的风险。

相关性分析

        使用相关系数矩阵来检查各个特征与目标变量(房价)之间的相关性,高度相关的特征可能对预测房价有更大的影响。例如,房屋面积对于房价的影响大于楼层对于房价的影响,即房屋面积比楼层更适合作为训练房价预测模型的特征。

特征重要性评估

        使用某些算法(如随机森林)可以评估不同特征的重要性。

根据特征重要性来选择最有影响的特征。

模型构建与训练

选择算法

        在这个案例中,由于其基于回归的性质以及线性回归模型的简单易学特点,开发者可以优先选择线性回归模型作为起点学习算法。线性回归是一个简单而直观的模型,适合初学者理解和实现,因此可作为探索机器学习领域的起点。随着对线性回归的熟悉和理解,开发者可以进一步探索和优化模型,拓展到更复杂的算法和技术领域。

模型训练

        一旦选择了合适的算法,接下来的关键步骤是使用训练数据来训练模型。这个过程涉及到调整模型的各种参数,例如学习率、正则化项等,以不断改善模型的性能和准确度。通过对训练数据的反复迭代学习,模型将逐渐优化,更好地拟合数据,从而使其能够对新数据做出更准确的预测。使用选定的特征来构建和训练模型。

from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.pipeline import Pipeline# 创建一个管道,结合预处理步骤和线性回归模型model =
Pipeline(steps=[('preprocessor', preprocessor),('regressor', LinearRegression())])# 训练模型
model.fit(X_train, y_train)# 进行预测
y_pred = model.predict(X_test)# 评估模型
print("模型的均方误差: ", mean_squared_error(y_test, y_pred))

        这段代码使用Scikit-learn库构建了一个处理房价预测问题的线性回归模型。它首先通过预处理管道处理数值型和类别型特征,然后将处理后的数据用于训练线性回归模型,并对测试集进行预测,最后计算模型的均方误差以评估其性能。

下一节我们将进行监督学习的进阶探索

机器学习基础(三)监督学习的进阶探索-CSDN博客监督学习作为机器学习的一个主要分支,专注于从带有标签的数据中学习和建立预测模型。这些模型可以预测新数据的标签,广泛应用于各种行业和领域,从简单的邮件分类到复杂的医疗诊断。https://blog.csdn.net/qq_52213943/article/details/136173870?spm=1001.2014.3001.5501

-----------------

以上,欢迎点赞收藏、评论区交流

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

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

相关文章

京东数据分析|京东销售数据怎么查|京东销售数据查询软件分享!

京东销售数据分析对商家来说具有多方面的重要作用&#xff0c;主要体现在以下几个方面&#xff1a; 市场趋势分析&#xff1a; 分析京东平台上的商品销量、销售额和价格走势等数据&#xff0c;可以帮助商家了解当前市场的整体需求趋势&#xff0c;以及不同品类的季节性变化、…

面向未来的全面预算管理,财务团队应具备的技能

当企业置身于当今这个瞬息万变的市场环境中时&#xff0c;每一次的数据分析和战略决策都至关重要。财务团队作为企业提升盈利能力和保持可持续发展的核心&#xff0c;不仅要适应不同的管理需求和不断变化的市场环境&#xff0c;还需要协助企业保持竞争优势和领先地位。经济世界…

「函数递归小课堂」~(C语言)

先赞后看&#xff0c;不足指正! 这将对我有很大的帮助&#xff01; 所属专栏&#xff1a;C语言知识 阿哇旭的主页&#xff1a;Awas-Home page 目录 引言 1. 什么是递归&#xff1f; 2. 递归的限制条件 3. 递归应用举例 3.1 求 n 的阶乘 3.2 图例演示 3.3 代码实现 4…

基于JAVA+SpringBoot+Vue的前后端分离的电影院售票管理运营平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 该系统研究背景聚焦于…

解密短视频上火爆的“私董会”现象

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 最近“私董会”一词再一次上了热门&#xff0c;先是一夜暴火的商业博主dada管培生翻车暴雷&#xff0c;后面是三言财经、互联网大V纷纷发表了自己的看法。 国内领先的私董会服务机构通常每年的收费都在3万元起步。…

Stable Diffusion系列(六):原理剖析——从文字到图片的神奇魔法(潜空间篇)

文章目录 LDM概述原理模型架构自编码器模型扩散模型条件引导模型图像生成过程 实验结果指标定义IS&#xff08;越大越好&#xff09;FID&#xff08;越小越好&#xff09; 训练成本与采样质量分析不带条件的图片生成基于文本的图片生成基于语义框的图片生成基于语义图的图片生成…

Open3D在点云上画直线

想在点云上做一些标识&#xff0c;发现画直线比较方便&#xff0c;下面是我画了一个三角形。可以根据自己的情况改变坐标画出不同的形状 pcd.translate(np.array([0,0,20])) points np.asarray(pcd.points) centroid points.mean(axis0) x1 length1[1] y1 centroid[1] z1…

virtualbox虚拟机运行中断,启动报错“获取 VirtualBox COM 对象失败”

文章目录 问题现象排查解决总结 问题现象 2月7日下午四点多&#xff0c;我已经休假了&#xff0c;某县的客户运维方打来电话&#xff0c;说平台挂了&#xff0c;无法访问客户是提供的一台Windows server机器部署平台&#xff0c;是使用virtualbox工具安装的CentOS7.9虚拟机和运…

Mysql事务原理与优化

概述 我们的数据库一般都会并发执行多个事务&#xff0c;多个事务可能会并发的对相同的一批数据进行增删改查操作&#xff0c;可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。 这些问题的本质都是数据库的多事务并发问题&#xff0c;为了解决多事务并发问题&…

华为配置旁挂二层组网隧道转发示例

配置旁挂二层组网隧道转发示例 组网图形 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件扩展阅读 业务需求 企业用户通过WLAN接入网络&#xff0c;以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff0c;不影响用户的业务使用。 组网需求 AC组…

【python学习篇1】python基本语法

目录 一、第一个python程序 二、基本语法&#xff0c;数据类型&#xff0c;字面量&#xff0c;循环语句等内容 2.1字面量 2.2注释 2.2.1单行注释 2.2.2多行注释 2.3变量 2.3.1认识变量 2.3.2查看数据类型 2.3.3数据类型转换 2.3.4字符串的三种定义方式 2.3.5字符串…

Flutter开发环境和打包流程

Flutter开发环境和打包流程 1.本地开发环境 1.1.安装flutter 官网安装flutter有2种方式&#xff0c;一种是下载flutter的sdk包&#xff0c;一种是VS Code直接安装&#xff0c;照着官网的安装flutter的流程走没有什么问题 1.2.安装Android Studio 去Android Studio的官网直…

若依不分离版本部署流程

一、分离与不分离的区别 参考博客&#xff1a;前后端分离与不分离的本质区别&#xff01;_前后端分离本质-CSDN博客 概念适用场景前后端不分离前端页面看到的效果都是由后端控制&#xff0c;由后端渲染页面或重定向适合纯网页应用前后端分离后端仅返回前端所需的数据&#xf…

Android widget基础指南

widget的概念最早是由一名叫Rose的苹果工程师提出&#xff0c;后来经过多方面机缘巧合的发展下&#xff0c;便有了今天Android平台上的小组件widget&#xff0c;一般APP开发可能应用场景较少&#xff0c;最常见的莫过于天气APP的widget。但对于从事IOT或车载方向的同学&#xf…

WebRTC最新版报错解决:FileNotFoundError: LASTCHANGE.committime (二十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

图形渲染基础学习

原文链接&#xff1a;游戏开发入门&#xff08;三&#xff09;图形渲染_如果一个面只有三个像素进行渲染可以理解为是定点渲染吗?-CSDN博客 游戏开发入门&#xff08;三&#xff09;图形渲染笔记&#xff1a; 渲染一般分为离线渲染与实时渲染&#xff0c;游戏中我们用的都是…

【Linux取经路】文件系统之重定向的实现原理

文章目录 一、再来理解重定向1.1 输出重定向效果演示1.2 重定向的原理1.3 dup21.4 输入重定向效果演示1.5 输入重定向代码实现 二、再来理解标准输出和标准错误2.1 同时对标准输出和标准错误进行重定向2.2 将标准输出和标准错误重定向到同一个文件 三、再看一切皆文件四、结语 …

书生开源大模型训练营-第3讲笔记

5.Langchain和InternLM搭建知识库 5.1环境 还是一样&#xff0c;开发机中创建镜像&#xff0c;以及所需依赖 pip install modelscope1.9.5 pip install transformers4.35.2 pip install streamlit1.24.0 pip install sentencepiece0.1.99 pip install accelerate0.24.15.2模…

docker安装一系列镜像

启动docker systemctl start docker docker 启动已经停止的容器 docker start idOrName PS&#xff1a;idOrName为容器的id或者名称 1、安装mysql镜像 拉取mysql5.7的镜像 docker pull mysql:5.7 查看镜像 docker images 启动mysql #启动mysql docker run --name mysql…

云呐电网智能运维包含哪些?智能运维都有哪些框架

电网智能运维是一个复杂的系统&#xff0c;包括多种技术和方法&#xff0c;为提升电力系统的效率和稳定性。以下是你提出的问题的实际答案: 网络智能运维的核心技术与应用&#xff1a; 故障检测&#xff1a;根据实时监测和数据分析&#xff0c;对电网中的故障进行快速、准确的…