机器学习算法基础 2

机器学习算法基础 DAY 2 特征选择 特征选择原因 冗余:部分特征的相关度高,容易消耗计算性能 噪声:部分特征对预测结果有负影响 特征选择是什么 特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征, 特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯 定比选择前小,毕竟我们只选择了其中的一部分特征。 主要方法(三大武器): Filter(过滤式):VarianceThreshold Embedded(嵌入式):正则化、决策树 Wrapper(包裹式) VarianceThres 阅读详情

数据降维

特征选择

特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分特征。

特征选择原因:

  • 冗余:部分特征的相关度高,容易消耗计算性能
  • 噪声:部分特征对预测结果有负影响

主要方法

  • Filter(过滤式):VarianceThreshold(方差Variance)
  • Embedded(嵌入式):正则化、决策树
  • Wrapper(包裹式)
  • 其他特征选择方法-神经网络
from sklearn.feature_selection import VarianceThreshold

# 删除低方差的特征
# threshold 需要根据实际选取
var = VarianceThreshold(threshold=0.0)
data = var.fit_transform([[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]])
print(data)

输出

[[2 0]
 [1 4]
 [1 1]]

主成分分析(PCA)

PCA(principal component analysis)是什么
本质:PCA是一种分析、简化数据集的技术
目的:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
应用场景:特征数量达到上百个的时候,考虑数据简化,此时,数据也会改变,特征数量也会减少
作用:可以削减回归分析或者聚类分析中特征的数量
高维度数据容易出现的问题:特征之间通常是线性相关的,此时就需要PCA

在这里插入图片描述

在这里插入图片描述

from sklearn.decomposition import PCA

# n_components为小数(0-1)表示百分比,动态指定保留多少特征 经验值:90%~95% 
pca = PCA(n_components=0.9)
data = pca.fit_transform([[2, 8, 4, 5], [6, 3, 0, 8], [5, 4, 9, 1]])
print(data)
[[ 1.28620952e-15  3.82970843e+00]
 [ 5.74456265e+00 -1.91485422e+00]
 [-5.74456265e+00 -1.91485422e+00]]

案例

https://www.kaggle.com/c/instacart-market-basket-analysis/data

用户对物品类别的喜好细分降维:

# 导入模块
import pandas as pd
from sklearn.decomposition import PCA

# 读取四张表数据
# 订单与商品信息
prior = pd.read_csv('./data/order_products_prior.csv')
# 商品信息
products = pd.read_csv('./data/products.csv')
# 用户的订单信息
orders = pd.read_csv('./data/orders.csv')
# 商品所属具体物品类别
aisles = pd.read_csv('./data/aisles.csv')

# 合并4张表到一张表  (用户-物品类别)
_mg = pd.merge(prior, products, on=('product_id', 'product_id'))
_mg = pd.merge(_mg, orders, on=('order_id', 'order_id'))
_mg = pd.merge(_mg, aisles, on=('aisle_id', 'aisle_id'))

# 查看合并表的前10行
print(_mg.head(10))

# 建立行、列数据,行是用户、列是物品类别
# 交叉表(特殊分组工具)
cross = pd.crosstab(_mg['user_id'], _mg['aisle'])
print(cross.head(10))
print(cross.shape)

# PCA主成分分析-列表中冗余信息较多
pca = PCA(n_components=0.9)
data = pca.fit_transform(cross)
print(data.shape)

输出:

   order_id  product_id  ...  days_since_prior_order  aisle
0         2       33120  ...                     8.0   eggs
1        26       33120  ...                     7.0   eggs
2       120       33120  ...                    10.0   eggs
3       327       33120  ...                     8.0   eggs
4       390       33120  ...                     9.0   eggs
5       537       33120  ...                     3.0   eggs
6       582       33120  ...                    10.0   eggs
7       608       33120  ...                    12.0   eggs
8       623       33120  ...                     3.0   eggs
9       689       33120  ...                     3.0   eggs
aisle    air fresheners candles  asian foods  ...  white wines  yogurt
user_id                                       ...                     
1                             0            0  ...            0       1
2                             0            3  ...            0      42
3                             0            0  ...            0       0
4                             0            0  ...            0       0
5                             0            2  ...            0       3
6                             0            0  ...            0       0
7                             0            0  ...            0       5
8                             0            1  ...            0       0
9                             0            0  ...            0      19
10                            0            1  ...            0       2
(206209, 134)
# 特征减少到 27 个
(206209, 27)

机器学习算法分类

  1. 算法是核心,数据和计算是基础
  2. 找准定位,大部分复杂模型的算法设计都是算法工程师在做,而我们
  • 分析很多的数据
  • 分析具体的业务
  • 应用常见的算法
  • 特征工程、调参数、优化
  1. 我们应该怎么做
  • 学会分析问题,使用机器学习算法的目的,想要算法完成何种任务
  • 掌握算法基本思想,学会对问题用相应的算法解决
  • 学会利用库或者框架解决问题

机器学习算法判别依据

数据的类型将是机器学习模型不同问题不同处理的依据

数据类型

  • 离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所有这些数据全部都是整数,而且不能再细分,也不能进一步提高他们的精确度。
  • 连续型数据:变量可以在某个范围内取任一数,即变量的取值可以是连续的,如,长度、时间、质量值等,这类整数通常是非整数,含有小数部分。
    注:只要记住一点,离散型是区间内不可分,连续型是区间内可分

机器学习算法分类

监督学习:特征值+目标值
非监督学习:特征值

监督学习

概念:(英语:Supervised learning),可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值称为回归),或是输出是有限个离散值(称作分类)。

  • 分类—k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络**(目标值离散型)**
  • 回归—线性回归、岭回归**(目标值连续型)**
  • 标注—隐马尔可夫模型 (不做要求)

监督学习=输入数据有特征有标签,既有标准答案

分类问题

概念:分类是监督学习的一个核心问题,在监督学习中,当输出变量取有限个离散值时,预测问题变成为分类问题。最基础的便是二分类问题,即判断是非,从两个类别中选择一个作为预测结果

分类问题应用:
分类在于根据其特性将数据“分门别类”,所以在许多领域都有广泛的应用

  • 在银行业务中,构建一个客户分类模型,按客户按照贷款风险的大小进行分类
  • 图像处理中,分类可以用来检测图像中是否有人脸出现,动物类别等
  • 手写识别中,分类可以用于识别手写的数字
  • 文本分类,这里的文本可以是新闻报道、网页、电子邮件、学术论文

回归问题

概念:回归是监督学习的另一个重要问题。回归用于预测输入变量和输出变量之间的关系,输出是连续型的值。

回归问题的应用
回归在多领域也有广泛的应用

  • 房价预测,根据某地历史房价数据,进行一个预测
  • 金融信息,每日股票走向

无监督学习

概念:英语:Supervised learning,可以由输入数据中学到或建立一个模型,并依此模式推测新的结果。输入数据是由输入特征值所组成.

  • 聚类—k-means

无监督学习=输入数据有特征无标签,既无标准答案

机器学习开发流程

数据:

  1. 公司本身就有的数据
  2. 合作过来的数据
  3. 购买的数据

建立模型:根据数据类型划分应用种类

  1. 原始数据明确问题做什么
  2. 数据的基本处理:pd去处理数据(缺失值、合并表)
  3. 特征工程(特征进行处理)重要
  4. 找到合适算法去进行预测
  5. 模型的评估,判定效果,如果没有合格:
  • 换算法 参数
  • 特征工程
  1. 上线使用,以API形式提供

数据的划分和介绍

数据集的划分

机器学习一般的数据集会划分为两个部分:

  • 训练数据:用于训练,构建模型
  • 测试数据:在模型检验时使用,用于评估模型是否有效
    训练集与测试集的划分一般控制在 75%、25%

sklearn 数据集接口介绍

from sklearn.datasets import load_iris, fetch_20newsgroups, load_boston

li = load_iris()

print("获取特征值")
print(li.data.shape)

print("目标值")
print(li.target.shape)

print("特征描述")
print(li.DESCR)
获取特征值
(150, 4)
目标值
(150,)
特征描述
.. _iris_dataset:
from sklearn.datasets import fetch_20newsgroups, load_boston

# 获取量大的数据(新闻数据)
news = fetch_20newsgroups(subset='all')

print(len(news.data))
print(news.target.size)
from sklearn.datasets import fetch_20newsgroups, load_boston

# 波士顿房价
lb = load_boston()

print("获取特征值")
print(lb.data.shape)
print("目标值")
print(lb.target.shape)
print(lb.DESCR)
获取特征值
(506, 13)
目标值
(506,)

转换器与预估器

转换器

转换器类(Transformer)—实现了特征工程的API

例子:

from sklearn.preprocessing import StandardScaler

# 特征工程(标准化)
std = StandardScaler()

std.fit()            # 输入数据,但不做事,计算均值、方差等
std.transform()      # 进行数据的转换
std.fit_transform()  = fit() + transform()

预估器(估计器)

估计器(estimator)—分类器和回归器都属于estimator—是一类实现了算法的API

用于分类的估计器

  • sklearn.neighbors k-近邻算法
  • sklearn.naive_bayes 贝叶斯
  • sklearn.linear_model.LogisticRegression 逻辑回归

用于回归的估计器

  • sklearn.linear_model.LinearRegression 线性回归
  • sklearn.linear_model.Ridge 岭回归
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier()

# fit, predict,score
knn.fit(x_train, y_train)

# 得出预测结果
print("预测的目标签到位置为:", knn.predict(x_test))

# 得出准确率
print("预测的准确率:", knn.score(x_test, y_test))
【深度学习】图像多标签分类任务,百度PaddleClas 百度PaddleClas GitHub链接:https://github.com/PaddlePaddle/PaddleClas。 在项目中目录下面是对多标签分类任务的指导,版本迭代找不到的话就搜索multilabel应该就能找到。本文跟着这个指导实战一遍。 阅读详情

相关推荐

2、机器学习算法:从基础到Python实现

本博客全面介绍了机器学习的应用与重要性,深度学习的基础知识,包括人工神经网络、激活函数、损失函数等核心概念,并探讨了优化技术在模型训练中的关键作用。博客还介绍了Python中常用的机器学习库,如Keras和Scikit-learn,并通过具体代码示例展示了如何构建和评估机器学习模型。内容覆盖从数据预处理到模型优化的完整流程,为开发者提供了一套完整的机器学习实践指南。

rgv2345678的博客 55

《机器学习实战:基于Scikit--Learn、Keras和TensorFlow(第2版)》学习笔记——前言

《机器学习实战:基于Scikit--Learn、Keras和TensorFlow(第2版)》学习笔记

m0_46778675的博客 964

C# 实现文件和字符串的AES加密解密

C# 实现文件和字符串的AES128加密解密

m0_72044573的博客 5935

spark 逻辑回归算法案例_黄美灵的Spark ML机器学习实战

原标题:黄美灵的Spark ML机器学习实战本课程主要讲解基于Spark 2.x的ML,ML是相比MLlib更高级的机器学习库,相比MLlib更加高效、快捷;ML实现了常用的机器学习,如:聚类、分类、回归等算法。本课拒绝枯燥的讲述,将循序渐进从Spark2.x的基础知识开始,然后再透彻讲解各个算法的理论、详细展示Spark实现,最后均会通过实例进行解析实战,帮助大家真正从理论到实践全面掌握Spar...

weixin_29174385的博客 486

K-means算法代码实现(python)

K-means算法代码实现以及解决质心选择问题 计算距离 距离通常使用欧几里得距离来衡量 def euclDistance(vector1, vector2): return np.sqrt(sum((vector2 - vector1) ** 2)) 初始化质心 def initCentroids(data, k): numSamples, dim = data.shape ...

江南小帅瓜的博客 1万+

Gartner《构建可扩展数据产品建设框架》心得

数据产品化:从概念到落地的实践指南 当前企业正从传统数据需求模式转向数据产品化新范式。本文系统阐述了数据产品的核心价值、定义分类和实施框架,指出成功关键是将数据包装为可复用、可扩展的产品。Gartner框架强调产品思维,提出4阶段12步实施路径,涵盖设计、工程、发布和监控全流程。文章特别提醒要避免7大常见误区,如简单重命名报表、忽视元数据治理等,建议采取MVP策略,90天内完成从价值验证到产品落地的闭环。实施中需平衡技术选型与业务需求,建立跨职能团队,并通过AARRR模型持续追踪产品价值。

2501_91410404的博客 1006

机器学习算法基础2-机器学习大致了解

文章目录1.机器学习开发流程2.机器学习模型是什么3.机器学习算法判别依据4.机器学习算法分类1)监督学习分类问题回归问题2)无监督学习 1.机器学习开发流程 2.机器学习模型是什么 3.机器学习算法判别依据 数据的类型将是机器学习模型不同问题不同处理的依据 数据类型 离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所有这些数据全部都是整数,而且不能再细分,也不能进一步提高他们的精确度。 连续型数据:变量可以在某个范围内取任一数,即变量的取值可以是连续的,如,长度、时间、质量值等,这类整

柳杰的博客 271

手把手教你用STM32的SPI驱动MCP2517FD实现CAN FD通信(附完整代码)

本文详细介绍了如何使用STM32通过SPI驱动MCP2517FD实现CAN FD通信,涵盖硬件连接、SPI驱动编写、寄存器配置及数据收发实战。提供完整代码示例和常见问题排查指南,帮助开发者快速构建高可靠性的CAN FD通信系统,适用于汽车电子和工业控制等领域。

weixin_30607029的博客 676

机器学习算法基础2

机器学习算法KNN、朴素贝叶斯 以及API

yxy618的博客 477

stm32H743IIT6 cubemx HAL USB UVC摄像头基础

stm32性能已经很强了, 可以驱动ov5640摄像头, 所以可以把摄像头接在stm32上, 当作一个摄像头驱动器, 连接到电脑上 开发环境: stm32cubemx 6.0.1 单片机: 自己做的stm32h743iit6核心板,兼容正点原子 学习资料: 圈圈学USB 鱼鹰谈单片机 从零开始学习USBhttps://to-run-away.blog.youkuaiyun.com/article/details/85038393 整个项目是基于CDC串口上修改 1 stm32 USB 代码概览 ..

紫枫洛天的博客 7754

微信小程序 - 完美解决“code“:“NO_AUTH“,“message“:“商户号该产品权限未开通,请前往商户平台>产品中心检查后重试“(微信小程序报错问题排查解决)

微信小程序NO_AUTH: 商户号该产品权限未开通,请前往商户平台>产品中心检查后重试?微信小程序提示商户号该产品权限未开通,请前往商户平台>产品中心检查后重试,微信小程序"code":"NO_AUTH"错误码怎么解决,报错信息如下:httpResponseBody[{"code":"NO_AUTH","message":"商户号该产品权限未开通,请前往商户平台>产品中心检查后重试"}],微信小程序支付问题,如何解决这个问题,虚拟支付商户号,虚拟支付商户号里面没有产品支付的页面,排查商户号没问题,商户号配置

🏆 前端领域优质创作者 4447

机器学习算法基础day2

特征选择 特征选择原因 冗余:部分特征的相关度高,容易消耗计算性能 噪声:部分特征对预测结果有负影响 特征选择是什么 特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也不改变值,但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分特征。 主要方法(三大武器):Filter(过滤式):VarianceThreshold Embedded(嵌入式):正则化、决策树 Wrapper(包裹式) sklearn特征选择API sklearn.featu

prettygirlman的博客 249

华为OD机试真题2025双机位A卷 Java&Go 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 1260

机器学习基础算法2 - 机器学习算法概述及分类算法

机器学习算法分类 **监督学习**:输入数据有特征也有标签值 分类:k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络 回归:线性回归、岭回归 标注:隐马尔可夫模型 **无监督学习**:输入数据有特征但无标签值 聚类:k-means 机器学习开发流程 (1)收集原始数据,明确需解决问题 (2)数据的基本处理(缺失值、合并等) (3)特征工程 (4)找到合适的算法建立模型 (5)模型的评估,判断效果 (6)若效果不好,继续重复(3)、(4)、(5)步 机器学习数据集 训练集:用于训.

cmaster1219的博客 567

93.华为路由器:IPSec加密GRE通道(GRE over IPsec)

IPSec加密GRE通道 由于GRE隧道不提供安全性保障,使用ipsec加密gre隧道是现网中比较常用的VPN部署,它的加密方式分为两种: 可以使用IPsec来加密隧道进行传输,叫做IPsec over GRE; 加密数据流后从隧道传输,称为GRE over IPsec。 下面将配置一个简单的IPsec over GRE实验。 一、搭建模拟环境 首先我们先搭建环境,先根据拓扑图把基本的IP地址配好,然后分别在AR1、AR3加两条静态路由,使得两个公网互通。 [AR1]in g0/0/0 [AR

迷逝 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

机器学习基础入门2——分类算法

KNN核心思想:你的“邻居”来推断出你的类别1、K-近邻算法(KNN)原理k = 1 容易受到异常值的影响如何确定谁是邻居?计算距离:距离公式:欧氏距离曼哈顿距离(绝对值距离)明可夫斯基距离2、电影类型分析k = 1 爱情片k = 2 爱情片······k = 6 无法确定k = 7 动作片k值取得过大,样本不均衡的影响k值取得过小,容易受到异常点的影响结合前面的约会对象数据,分析K-近邻算法需要无量纲化的处理。标准化n_neighbors: k值。

2501_93696036的博客 1097

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ML基础-k近邻算法-2

【事例:关于约会网站配对的效果】Python程序解析 准备数据 def file2matrix(filename): love_dictionary = {'largeDoses': 3, 'smallDoses': 2, 'didntLike': 1} fr = open(filename) # 打开文件 arrayOLines = fr.readlines

想进步总不是坏事 343

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

机器学习——算法基础2

机器学习——算法基础2数据降维特征选择特征选择的原因特征选择是什么特征选择的方法sklearn特征选择API主成分分析(PCA)PCA是什么sklearn主成分分析APIkaggle降维案例数据来源代码与结果机器学习算法和分类监督学习非监督学习分类问题什么是分类问题分类问题的应用回归问题什么是回归问题回归问题的应用 数据降维 这里的降维指的是减少特征的数量。 特征选择 特征选择的原因 冗余:部分特征的相关度高,容易消耗计算性能 噪声:部分特征对预测结果有负影响 特征选择是什么 特征选择就是单纯地从提取到的所

dichao1020的博客 192

机器学习算法基础2-j机器学习算法分类以及开发流程

目录注意1.机器学习开发流程2.机器学习模型是什么3.机器学习算法判别依据4.机器学习算法分类1)监督学习分类问题回归问题2)无监督学习 注意 1.算法是核心,数据和计算是基础 2.找准定位,大部分复杂模型的算法设计都是算法工程师在做,而我们 分析很多的数据 分析具体的业务 应用常见的算法 特征工程、调参数、优化 3.我们应该怎么做 学会分析问题,使用机器学习算法的目的,想要算法完成何种任务 掌握算法基本思想,学会对问题用相应的算法解决 学会利用库或者框架解决问题 1.机器学习开发流程 数据: 1

qq_42749341的博客 437

机器学习2(算法,基础)

算法是核心,数据和计算是基础 数据类型 1、离散数据类型 2、连续数据类型 机器学习算法分类 监督学习:特征值+目标值 无监督学习:只有特征值,无目标值 分类:目标值离散型 回归:目标值连续型 分类算法 k-近邻算法:根据你的邻居来判断你的类别 ...

qq_35224503的博客 204

机器学习算法基础-day2

数据集与模型

qq_36896268的博客 1530

机器学习算法基础-打卡-day2

Task02:朴素贝叶斯一、贝叶斯是什么?1.联合概率、条件概率和边缘概率2.Bayes法则可表述为:3.机器学习中的贝叶斯公式二、朴素贝叶斯分类1.条件独立性假设2.朴素贝叶斯分类定义 注意!!!! 本文没有代码! 想看代码实现的请前往下方地址 https://github.com/datawhalechina/team-learning/blob/master/%E6%9C%BA%E5%99%...

ban1818的博客 523

Week 2:机器学习核心基础算法与模型泛化能力优化

同时,结合泰勒一阶展开公式,我推导证明了负梯度方向是局部最优下降方向,也明确了梯度下降的局限性,在高原区域、鞍点、局部最优解等场景下,算法容易出现梯度停滞、收敛失效的问题。同时,我梳理出标准化的误差诊断流程,通过对比模型在训练集和测试集的误差差异,能够快速判断模型存在欠拟合、过拟合问题,并匹配对应的优化解决方案,形成了完整的问题排查与优化思路。5. 整合理论公式、底层原理与实践应用,夯实机器学习的数学基础,养成规范的算法学习与模型优化思维,切实补齐机器学习的数学与算法基础,夯实自身的算法理解与建模能力。

2401_88039874的博客 387

机器学习基础算法篇——2、回归

一、零碎知识点 1、wordcloud和jieba库的安装 用Anaconda3安装:网页链接 2、线性回归当中的复杂度惩罚因子(正则项,罚项) ①L2-norm——Ridge回归 ②L1-norm——LASSO LASSO可以进行特征选择,意味着可以用来降维。 ③Elastic Net 二、Xmind ...

weixin_42106987的博客 181

机器学习基础算法梳理-2

逻辑回归算法梳理 一、逻辑回归与线性回归的联系与区别 1.1 联系 逻辑回归于线性回归实际上有很多相似之处,它们都属于一个族群,即广义线性模型。 这一模型中的形式基本差不多,基于模型中数据的特征进行建模,所解决的问题均以数据为导向的连续或者分类的结果。作为机器学习中最为常见的算法,这两类大方向基本囊括了所有的可能。 1.2 区别 1.2.1 线性回归 线性回归解决的是连续值预测的问题,利用数理统计...

p515659704的博客 289
上一篇: 机器学习算法基础 1
下一篇: 机器学习算法基础 3
eddiechen10081
博客等级 码龄11年 1粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值