2024/9/8周报

文章目录

  • 摘要
  • Abstract
  • 数据挖掘
    • 数据挖掘的目标
    • 数据挖掘的过程
    • 数据挖掘的技术
    • 应用领域
    • 工具与平台
    • 代码示例
  • 总结

摘要

智慧水务项目中,需要对采集的总氮、氨氮、化学需氧量、硝态氮、总磷、硝态氮等数据进行数据处理与挖掘,因此本周对数据挖掘相关内容进行初步学习,数据挖掘是指从大量的数据中通过算法和模型发现有用信息和知识的过程。

Abstract

In the Intelligent Water project, it is necessary to process and mine the collected data such as total nitrogen, ammonia nitrogen, chemical oxygen demand, nitrate nitrogen, total phosphorus, and nitrate nitrogen. Therefore, this week we will conduct preliminary learning on data mining related content. Data mining refers to the process of discovering useful information and knowledge from a large amount of data through algorithms and models.

数据挖掘

数据挖掘(Data Mining)是从大量数据中提取有用信息的过程,这些信息以人类可理解的模式呈现出来,可以用来做出决策或发现知识。数据挖掘涉及多种技术和方法,它融合了统计学、机器学习、数据库技术等多个领域的知识。以下是数据挖掘的一些关键概念和步骤:

数据挖掘的目标

  • 知识发现:从大量的数据中发现隐藏的、有效的、新颖的、潜在有用的信息和知识。
  • 预测建模:建立模型来预测未来的趋势或行为。
  • 描述性建模:总结数据的主要特征,以便更好地理解数据集。

数据挖掘的过程

  1. 业务理解:明确业务目标,确定需要解决的问题。
  2. 数据理解:收集和探索数据,理解其结构和内容。
  3. 数据准备:清洗数据,处理缺失值、异常值,转换数据格式等。
  4. 建模:应用统计和机器学习算法来构建模型。
  5. 评估:验证模型的有效性和实用性。
  6. 部署:将模型应用于实际业务场景,获取商业价值。

数据挖掘的技术

  • 分类:预测数据属于某个特定类别的概率。
  • 回归:预测一个连续值的结果。
  • 聚类:将相似的数据点分组在一起。
  • 关联规则学习:发现数据集中项目的相关性或依赖性。
  • 异常检测:识别不符合预期模式的数据点。
  • 降维:减少数据的维度,简化分析过程。

应用领域

数据挖掘广泛应用于各个行业,包括但不限于金融(信用评分)、零售(购物篮分析)、医疗(疾病预测)、电信(客户流失预测)、营销(客户细分)等。

工具与平台

有许多工具和技术可用于数据挖掘,如Python的Pandas、NumPy、SciPy、Scikit-Learn,R语言,SQL数据库,以及专门的数据挖掘软件如Weka、RapidMiner、KNIME等。

数据挖掘是一个跨学科的领域,它不仅需要掌握技术知识,还需要具备一定的业务洞察力,以便能够正确解释挖掘出的知识并将其转化为实际的应用价值。

代码示例

  1. 分类 (Classification)
    分类是一种监督学习方法,任务是将数据分为预定义的类别。常见的算法包括决策树、支持向量机、K近邻等。

例子:用决策树进行分类
假设我们有一组关于鸢尾花的数据集,目标是根据花的特征预测它的种类。

# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score# 加载数据集
iris = load_iris()
X = iris.data  # 特征
y = iris.target  # 目标# 拆分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 创建决策树分类器
clf = DecisionTreeClassifier()# 训练模型
clf.fit(X_train, y_train)# 预测测试集
y_pred = clf.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f'决策树分类的准确率: {accuracy:.2f}')

运行结果如下:
在这里插入图片描述
2. 聚类 (Clustering)
聚类是一种无监督学习方法,任务是将数据点根据相似性分成若干簇。常见算法有K均值(K-Means)、层次聚类等。

例子:使用K-Means进行聚类
我们可以用K-Means算法将鸢尾花数据集分成三类。

# 导入必要的库
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt# 加载数据集
X = iris.data# 创建K-Means模型,假设有3类
kmeans = KMeans(n_clusters=3, random_state=42)# 训练模型
kmeans.fit(X)# 获取聚类结果
y_kmeans = kmeans.predict(X)# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, cmap='viridis')
plt.title('K-Means聚类结果')
plt.xlabel('特征1')
plt.ylabel('特征2')
plt.show()

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

  1. 关联规则挖掘 (Association Rule Mining)
    关联规则挖掘的目的是找出数据集中项目之间的有趣关系,常用于市场购物篮分析。常见算法包括Apriori和FP-growth。

例子:使用Apriori算法进行关联规则挖掘
假设我们有一组购物交易数据,目标是找出产品之间的关联规则。

# 导入必要的库
from mlxtend.frequent_patterns import apriori, association_rules
import pandas as pd# 构造一个简单的购物篮数据
data = {'牛奶': [1, 0, 1, 1, 0],'面包': [1, 1, 0, 1, 0],'啤酒': [0, 1, 1, 0, 1],'鸡蛋': [1, 0, 0, 1, 0],'苹果': [0, 1, 1, 0, 1]}
df = pd.DataFrame(data)# 使用Apriori算法找到频繁项集
frequent_itemsets = apriori(df, min_support=0.6, use_colnames=True)# 生成关联规则
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1.0)print(frequent_itemsets)
print(rules)

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

  1. 异常检测 (Anomaly Detection)
    异常检测是识别数据中不符合预期模式的异常点的过程,常用于信用卡欺诈检测、网络安全等。

例子:使用Isolation Forest进行异常检测
我们可以使用Isolation Forest来检测数据集中的异常点。

# 导入必要的库
from sklearn.ensemble import IsolationForest
import numpy as np# 生成随机数据,其中一部分是异常点
rng = np.random.RandomState(42)
X = 0.3 * rng.randn(100, 2)
X = np.r_[X + 2, X - 2]  # 正常点
X = np.r_[X, rng.uniform(low=-4, high=4, size=(20, 2))]  # 添加一些异常点# 训练Isolation Forest模型
clf = IsolationForest(random_state=42)
clf.fit(X)# 预测数据中的异常点
y_pred = clf.predict(X)# 正常点为1,异常点为-1
print(y_pred)

运行结果如下:
在这里插入图片描述
5.降维
常用的降维方法包括主成分分析(PCA)、线性判别分析(LDA)和t-SNE等。

例子:使用PCA进行降维
假设我们有一个包含多个特征的二维数据集,我们可以使用PCA将数据从多维降到二维或者一维。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris# 加载示例数据集(Iris数据集)
data = load_iris()
X = data.data  # 特征
y = data.target  # 标签# 使用PCA进行降维(将数据从4维降到2维)
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)# 可视化降维后的数据
plt.figure(figsize=(8, 6))
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis', edgecolor='k', s=100)
plt.title('PCA on Iris Dataset')
plt.xlabel('First Principal Component')
plt.ylabel('Second Principal Component')
plt.colorbar(label='Class')
plt.show()

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

总结

智慧水务项目中需要对采集的数据进行预处理和挖掘特征,通过实时数据进行大数据处理,形成目标数据集,这是进行下一步的基础,故对数据挖掘也进行学习。

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

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

相关文章

CommonCollections1

CommonCollections1 poc展示 这是一段POC,运行后会弹出一个计算器。 import org.apache.commons.collections.*; import org.apache.commons.collections.functors.ChainedTransformer; import org.apache.commons.collections.functors.ConstantTransformer; im…

C#使用MQTT(二):MQTT客户端

上一篇我们初步设计了MQTT服务端 C#使用MQTT(一):MQTT服务端-CSDN博客 这里我们设计客户端MQTT Client,接上一篇 新建Windows窗体FormMqttClient 窗体FormMqttClient设计如图: 窗体FormMqttClient设计器相关代码如下 文件FormMqttClient.Designer.cs namespace…

uni-app--》打造个性化壁纸预览应用平台(四)完结篇

🏙️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名前端工程师 🌄个人主页:亦世凡华、 🌆系列专栏:uni-app 🌇座右铭:人生亦可燃烧,亦可腐败&#xf…

论文写作神器!分享5款AI论文写作常用软件推荐

在当今学术研究和写作领域,AI论文写作工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿,还能进行内容优化、查重和排版等操作。以下是五款目前最好用的AI论文写作软件推荐: 1. 千笔-AIPassPaper 千笔-…

SpringCache之本地缓存

针对不同的缓存技术,需要实现不同的cacheManager,Spring定义了如下的cacheManger实现。 CacheManger 描述 SimpleCacheManager 使用简单的Collection来存储缓存,主要用于测试 ConcurrentMapCacheManager 使用ConcurrentMap作为缓存技术&…

mac 安装redis

官网下载指定版本的redis https://redis.io/ 目前3.2.0 是最新最稳定的 版本 这里是历史版本下载 下载指定版本 安装 1.放到自定义目录下并解压 2.打开终端,执行命令 cd redis的安装目录下 make test -- 此命令的作用是将redis源代码编译成可执行文件&#xff0c…

java基础概念21-权限修饰符、代码块

一、权限修饰符 1-1、作用 权限修饰符,是用来控制一个成员能够被访问的范围的。 可以修饰:成员变量,方法,构造方法,内部类。 1-2、权限修饰符的分类 二、代码块 局部代码块构造代码块静态代码块 2-1、局部代码块 …

day1 QT

作业 #include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//设置窗口大小this->resize(1025,533);//固定窗口大小this->setFixedSize(1025,533);//设置窗口背景色,设置弧度//this->setStyleSheet("background-image:url(E:/…

肖扬老师好书《微权力下的项目管理(第3版)》读书笔记1

肖扬老师好书《微权力下的项目管理(第3版)》,的确不错,分别共读之。 第2章 精华 为了在项目过程中成为一名优秀的导演,项目经理要同时修炼领导和管理这两种不同的能 力,因为项目管理模式就是一种游走于领导…

计算机网络知识点复习——TCP协议的三次握手与四次挥手(连接与释放)

TCP协议的三次握手与四次挥手(连接与释放) 一、前言二、简单的知识准备1. TCP协议的主要特点2. TCP报文段 三、TCP连接的建立(三次握手)四、TCP连接的释放(四次挥手)五、TCP连接与释放的总结六、结束语 一、…

MySQL record 01 part

更改密码: alter user rootlocalhost identified with mysql_native_password by ‘123456’; 注意: 在命令行方式下,每条MySQL的命令都是以分号结尾的,如果不加分号,MySQL会继续等待用户输入命令,直到MyS…

vue2-elementUI-初始化启动项目-git

前置基础 资料下载-阿里云盘 vueaxioselement-uinpmvscode 初始化项目 1.创建vue2工程 1.1 vue create projectName1.2 选择 1.3 初始化 vue-cli 的核心步骤: Manually select features (*) Babel ( ) TypeScript ( ) Progressive Web App (PWA) Support …

【深度学习讲解笔记】前言

小编为AI专业的本科学生,最近入手了一本《深度学习讲解》的书,由于封面画了苹果🍎,所以也叫苹果书,这本书目前在全网的热度很高。 本书是根据李宏毅老师讲授的《机器学习》课程编写的,作者是来自DataWhale…

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击&#xf…

Uniapp基于uni拦截器+Promise的请求函数封装

最近在学Uniapp,到封装请求的时候本来还想用axios,但是看到一些教学视频有更简单的方法, 基于uni的拦截器和Promise封装的请求函数 但是他们是用TS写的,还没学到TS,我就把JS写了,最终也是请求成功 // src/…

电动机制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型

电动机制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型。5G智能工厂与物联数字孪生平台的融合应用,为电动机制造业的数字化转型铺设了一条高速通道。这一创新模式不仅极大地提升了生产效率,还深刻改变了产品的设计、生产、管理及运…

EasyExcel模板导出与公式计算(下)

目录 环境要求 功能预览 需求分析 导入依赖 制作模板 编写代码 格式优化 最终效果 总结 在上一篇 EasyExcel模板导出与公式计算(上)-CSDN博客 文章中我们知道了在若依中使用自带的Excel注解来实现表格数据的导出,并且通过重写相关接…

【Python 千题 —— 算法篇】无重复字符最长子段

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 在编程过程中,处理字符串的任务时常遇到,其中一个经典问题是查找无重复字符的最长子串。这在很多应用场景中…

redisson中的分布式锁

我的博客大纲 我的后端学习大纲 a.redisson概述: 1.Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)2.redisson介绍官方文档地址:3.Redisson它不仅提供了一系列的分布式的Java常用对象,还…

使用vscode编辑matlab完美解决方法

vscode里面的matlab插件都不好用,需要搭配互补一下 1先安装MATLAB 这个插件可以进行代码高亮、格式化、跳转,F5运行所有代码,或者选中要运行的代码,右键单独运行, 优点:运行速度很快,和matlab里…