数据分类分析-惰性学习法

本文介绍了惰性学习法的概念,重点讲解了KNN(K最近邻)算法的工作原理。通过一个具体的Python实现,展示了如何使用欧式距离计算样本间的相似性,并通过K值的变化观察预测结果的影响。实验数据包括天气情况,预测结果取决于训练集中最接近的K个邻居的标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



一、惰性学习法与急切学习法

急切学习法:指在利用算法进行判断之前,先利用训练集数据通过训练得到一个目标函数,在需要进行判断时利用已经训练好的函数进行决策。
惰性学习法:在最开始的时候不会根据已有的样本创建目标函数,只是简单的把训练用的样本储存好,后期需要对新进入的样本进行判断的时候才开始分析新进入样本与已存在的训练样本之间的关系。

典型的惰性学习法是KNN,它不会根据训练集训练一个模型,而是将训练集存储起来,当需要预测的时候,从训练集中找到最相似的样本,把其结果作为预测结果。

二、KNN算法实现

假设训练数据集如下:

train_data = np.array([[700,500],[750,460],[1000,230],[800,420],[690,500],[730,490],[60,1200],[80,1100],[1260,200],[240,1200],[200,1090],[1200,200],[900,320],[97,1170],[118,1108],[1203,200],[1180,88],[1111,99],[67,1222]])

train_label = np.array(['多云','多云','晴','多云','多云','多云','雨','雨','晴','雨','雨','晴','晴','雨','雨','晴','晴','晴','雨'])

训练数据集有两列特征,标签为1列,有’多云‘,’晴‘,’雨‘三种情况。

测试数据如下:

test_data = [800,400]

距离度量方式采用的是欧式距离,代码如下:

def Euclidean_distance(x,y):
    distance = 0
    for i in range(0,len(x)):
        distance = distance + x[i]**2 + y[i]**2
    return distance ** 1/2

我们将K从1取到19(一共有19条数据),观察最后的结果:
在这里插入图片描述
完整代码如下:

import numpy as np

def Euclidean_distance(x,y):
    distance = 0
    for i in range(0,len(x)):
        distance = distance + x[i]**2 + y[i]**2
    return distance ** 1/2

train_data = np.array([[700,500],[750,460],[1000,230],[800,420],[690,500],[730,490],[60,1200],[80,1100],[1260,200],[240,1200],[200,1090],[1200,200],[900,320],[97,1170],[118,1108],[1203,200],[1180,88],[1111,99],[67,1222]])

train_label = np.array(['多云','多云','晴','多云','多云','多云','雨','雨','晴','雨','雨','晴','晴','雨','雨','晴','晴','晴','雨'])

test_data = [800,400]
distance = []
for i in train_data:
    distance.append(Euclidean_distance(i,test_data))
distance_new = sorted(distance,reverse=True)
for k in range(1,20):
    num = 0
    predict_label = []
    for i in distance_new:
        if num == k:
            break
        predict_label.append(train_label[distance.index(i)])
        num = num + 1
    print("K值为{k}时,预测结果为{weather}".format(k = k,weather = max(predict_label)))
<think>好的,用户想了解大数据分析的全流程,包括步骤、工具和方论。首先,我需要回忆一下之前提供的引用内容,看看有没有相关的信息可以整合进来。引用1提到了数据资源化的过程,包括数据治理和能力体系建设,这可能对应数据准备阶段。引用2详细讲了Spark的处理机制和分布式计算原理,还有应用场景的例子,这部分可以用于数据处理和分析步骤。引用3关于数据预处理中的对数处理,虽然具体是生物信息学的例子,但可以说明数据清洗的重要性。引用4涉及商业分析,比如市场规模和盈利模式,这可能对应数据应用和商业决策阶段。 接下来,我需要组织大数据分析的全流程步骤。通常流程包括数据收集、存储、处理、分析和应用。每个步骤需要对应的工具和方论。比如数据收集可能需要爬虫或ETL工具,存储可能用Hadoop或云数据库,处理用Spark,分析机器学习库,可视化用Tableau等。 要注意用户提到的工具和方论,所以每个步骤都要列举常用工具,并说明方论,比如数据治理、分布式计算、CRISP-DM模型等。还要结合引用中的内容,比如引用2中的Spark的惰性求值机制,引用1的数据治理,引用4的商业分析。 然后需要生成相关问题,这些问题应该覆盖流程中的关键点,如数据清洗方、工具对比、分布式计算应用、数据治理挑战等。确保问题有针对性,帮助用户深入理解。 最后检查是否符合系统指令:行内公式用$...$,独立公式用$$...$$,正确的中文回答,结构清晰,引用标识自然。比如在讲数据建模时提到回归方程$y = \beta_0 + \beta_1x_1 + \epsilon$,引用2提到Spark的处理机制,引用1的数据治理部分,引用4的商业分析。</think>### 大数据分析全流程指南 #### 一、流程步骤与核心方论 1. **数据资源化(准备阶段)** - **目标**:将原始数据转化为可分析的结构化数据集合 - **步骤**: - 数据采集:通过爬虫、API、传感器、日志系统等获取多源数据 - 数据清洗:处理缺失值(如插补)、异常值(如IQR)、重复数据 - 数据集成:使用ETL工具(如Apache Nifi)整合异构数据- 数据规范化:对量级差异大的数据自动取对数处理[^3] - **工具**:Python(Pandas)、Apache Kafka(实时采集)、OpenRefine(数据清洗) - **方论**:数据治理体系构建(引用[1])、数据质量评估六维度(完整性/准确性/一致性等) 2. **数据存储与管理** - **分布式存储**: - Hadoop HDFS(适合非结构化数据- NoSQL数据库(如MongoDB处理JSON文档) -数据库(AWS Redshift列式存储) - **核心原理**:通过分片存储与副本机制实现高可用性,如HDFS默认3副本策略 3. **数据处理与分析** - **批量处理**: - **工具**:Spark(基于RDD的惰性求值优化计算DAG[^2]) - **示例代码**: ```python rdd = sc.textFile("hdfs://data.log") filtered_rdd = rdd.filter(lambda line: "ERROR" in line) error_count = filtered_rdd.count() ``` - **流式计算**: - 工具:Flink(事件时间语义)、Spark Streaming(微批处理) - **分析**: - 统计分析:假设检验(如T检验$t = \frac{\bar{X}-\mu}{s/\sqrt{n}}$) - 机器学习:随机森林分类(基尼指数$Gini(D) = 1 - \sum p_i^2$) 4. **数据建模与可视化** - **建模方**: - 回归模型:多元线性回归方程$$y = \beta_0 + \beta_1x_1 + \epsilon$$ - 聚类分析:K-means目标函数$$\min \sum_{i=1}^k \sum_{x \in C_i} \|x - \mu_i\|^2$$ - **可视化工具**:Tableau(交互式仪表盘)、Superset(开源BI) - **方论**:CRISP-DM跨行业数据挖掘标准流程 5. **决策与应用** - **商业分析框架**(引用[4]): - 市场规模预测:复合增长率公式$$CAGR = (\frac{EV}{BV})^{1/n} - 1$$ - 竞争格局分析:波特五力模型 - **应用场景**: - 实时风控(如Spark Streaming检测欺诈交易) - 气候模拟分布式计算(引用[2]区域划分并行计算) #### 二、关键工具对比 | 环节 | 开源工具 | 商业工具 | 适用场景 | |------------|-------------------------|--------------------|---------------------------| | 数据清洗 | OpenRefine, Pandas | Trifacta | 中小规模结构化数据 | | 分布式计算 | Spark, Flink | Databricks | 实时/批量混合负载 | | 可视化 | Apache Superset | Tableau | 企业级交互式报告 | #### 三、质量保障体系 1. **数据血缘追踪**:记录数据从源端到应用的完整变换路径 2. **计算验证**:通过抽样对比MapReduce结果与单机计算结果 3. **监控指标**:数据管道延迟(如Flink的Watermark机制)、计算资源利用率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值