当前位置: 首页 > news >正文

【数据挖掘】

数据挖掘

  • 目录:
      • 1. 数据转换
      • 2. 属性选择
      • 3. 独立于方案的选择
      • 4. 探索空间
      • 5. 具体方案的选择
      • 6. 离散化数值属性
        • 无监督离散化
        • 基于熵的离散化
        • 其他离散化方法
      • k-means算法
      • 原理
      • 算法步骤
      • 优缺点
        • 优点
        • 缺点
      • 代码示例(使用Python和`scikit-learn`库)
      • 代码解释
      • 确定最优`k`值的方法
        • 基于熵的离散化与基于误差的离散化
      • 7. 离散化属性转化成数值属性
      • 8. 投影
        • 主成分分析(PCA)
        • 随机投影
        • 偏最小二乘回归(PLS)
      • 9. 从文本到属性向量
      • 10. 时间序列
      • 11. 抽样
      • 12. 数据清洗
      • 13. 改进决策树
      • 14. 稳健回归
      • 15. 检测异常
      • 16. 一分类学习
      • 17. 多分类转化成二分类
      • 18. 嵌套二分法

目录:

1. 数据转换

数据转换是对原始数据进行处理,使其更适合模型训练的过程。常见的数据转换方法包括归一化、标准化、对数变换等。

  • 归一化:将数据缩放到 [0, 1] 区间,公式为 x n o r m = x − x m i n x m a x − x m i n x_{norm}=\frac{x - x_{min}}{x_{max}-x_{min}} xnorm=xmaxxminxxmin
  • 标准化:将数据转换为均值为 0,标准差为 1 的分布,公式为 x s t d = x − μ σ x_{std}=\frac{x - \mu}{\sigma} xstd=σxμ,其中 μ \mu μ 是均值, σ \sigma σ 是标准差。

2. 属性选择

属性选择旨在从原始特征中挑选出 最具有代表性和区分度的特征,以减少数据维度,提高模型性能和训练效率。常见方法有过滤法(如方差分析、相关系数)、包装法(如递归特征消除)和嵌入法(如决策树中的特征重要性)

from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest, chi2iris = load_iris()
X, y = iris.data, iris.target
selector = SelectKBest(score_func=chi2, k=2)
X_new = selector.fit_transform(X, y)

3. 独立于方案的选择

这指的是属性选择过程不依赖于具体的学习算法,而是基于数据本身的特征进行选择。例如,使用方差分析选择方差较大的特征,因为方差大的特征可能包含更多信息。在这里插入图片描述

4. 探索空间

在属性选择中,探索空间是指所有可能的特征子集的集合。搜索算法在这个空间中寻找最优的特征子集。例如,穷举搜索会遍历所有可能的子集,但当特征数量较多时,计算复杂度会非常高。
在这里插入图片描述

5. 具体方案的选择

根据不同的应用场景和数据特点选择合适的属性选择方法。例如,当数据量较大且特征维度高时,过滤法可能更合适;当希望结合特定模型进行特征选择时,包装法或嵌入法更适用。

6. 离散化数值属性

将连续的数值属性转换为离散的类别属性,可降低数据复杂度,提高模型对数据的理解能力。常见方法有无监督离散化和基于熵的离散化等。
在这里插入图片描述

无监督离散化
  • 等宽离散化将属性值的取值范围划分为若干个等宽的区间。例如,将年龄属性划分为 [0, 10)、[10, 20) 等区间。
  • 等频离散化:将属性值划分为若干个区间,使得每个区间内的样本数量大致相等。
基于熵的离散化

基于信息熵来确定最优的划分点,使得划分后的子集信息熵最小。通过不断尝试不同的划分点,选择信息增益最大的划分。

import numpy as npdef entropy(y):classes, counts = np.unique(y, return_counts=True)probabilities = counts / len(y)return -np.sum(probabilities * np.log2(probabilities))def information_gain(X, y, split_point):left_indices = X < split_pointright_indices = X >= split_pointentropy_before = entropy(y)entropy_left = entropy(y[left_indices])entropy_right = entropy(y[right_indices])weight_left = len(y[left_indices]) / len(y)weight_right = len(y[right_indices]) / len(y)entropy_after = weight_left * entropy_left + weight_right * entropy_rightreturn entropy_before - entropy_after# 示例数据
X = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = np.array([0, 0, 0, 0, 1, 1, 1, 1, 1, 1])# 寻找最佳划分点
best_split = None
best_gain = 0
for split in X:gain = information_gain(X, y, split)if gain > best_gain:best_gain = gainbest_split = splitprint("最佳划分点:", best_split)
其他离散化方法
  • 基于聚类的离散化使用聚类算法(如 K - Means)将属性值聚类,每个簇作为一个离散类别

k-means算法

K-means聚类是一种广泛应用的无监督学习算法,用于将数据集划分为k个不同的簇(类别),使得同一簇内的数据点相似度较高,不同簇之间的数据点相似度较低。以下将从原理、算法步骤、优缺点、代码示例等方面详细介绍K-means聚类。

原理

K-means算法的核心思想是通过迭代的方式寻找k个簇的质心(中心点),并将每个数据点分配到距离最近的质心所在的簇中,然后不断更新质心的位置,直到质心不再发生明显变化或达到最大迭代次数。

算法步骤

  1. 初始化:随机选择k个数据点作为初始质心。
  2. 分配数据点:对于数据集中的每个数据点,计算它与每个质心的距离(通常使用欧氏距离),并将其分配到距离最近的质心所在的簇中。
  3. 更新质心:对于每个簇,计算该簇内所有数据点的均值,将这个均值作为新的质心。
  4. 重复步骤2和3:不断重复分配数据点和更新质心的过程,直到质心不再发生明显变化或达到最大迭代次数。

优缺点

优点
  • 简单易实现:算法原理简单,易于理解和实现。
  • 计算效率高:时间复杂度相对较低,对于大规模数据集具有较好的处理能力。
  • 可扩展性强:可以应用于各种领域,如图像分割、客户细分等。
缺点
  • 需要预先指定kk值的选择对聚类结果影响较大,但在实际应用中很难确定最优的k值。
  • 对初始质心敏感不同的初始质心选择可能会导致不同的聚类结果,甚至可能陷入局部最优解
  • 对噪声和离群点敏感噪声和离群点可能会影响质心的计算,从而影响聚类结果

代码示例(使用Python和scikit-learn库)

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs# 生成示例数据集
X, y = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)# 创建K-means模型并进行聚类
kmeans = KMeans(n_clusters=4, init='k-means++', max_iter=300, n_init=10, random_state=0)
pred_y = kmeans.fit_predict(X)# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=pred_y, s=50, cmap='viridis')
# 绘制质心
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.5)
plt.title('K-means Clustering')
plt.show()

代码解释

1

. 数据生成:使用make_blobs函数生成一个包含300个样本、4个簇的二维数据集。
2. 创建K-means模型:使用KMeans类创建一个K-means模型,指定簇的数量为4,使用k-means++方法初始化质心,最大迭代次数为300,重复初始化质心的次数为10。
3. 进行聚类:使用fit_predict方法对数据进行聚类,并返回每个数据点所属的簇的标签。
4. 绘制聚类结果:使用plt.scatter函数绘制数据点,根据所属簇的标签进行着色,同时绘制质心。

确定最优k值的方法

  • 手肘法(Elbow Method):计算不同k值下的簇内误差平方和(SSE),随着k值的增加,SSE会逐渐减小。当k值达到某个点后,SSE的下降速度会明显变缓,这个点对应的k值就是最优的k值。
sse = []
for k in range(1, 11):kmeans = KMeans(n_clusters=k, init='k-means++', max_iter=300, n_init=10, random_state=0)kmeans.fit(X)sse.append(kmeans.inertia_)plt.plot(range(1, 11), sse)
plt.title('Elbow Method')
plt.xlabel('Number of clusters')
plt.ylabel('SSE')
plt.show()
  • 轮廓系数法(Silhouette Coefficient):计算每个样本的轮廓系数,轮廓系数越接近1表示样本聚类效果越好。选择轮廓系数最大的k值作为最优的k值。
from sklearn.metrics import silhouette_scoresilhouette_scores = []
for k in range(2, 11):kmeans = KMeans(n_clusters=k, init='k-means++', max_iter=300, n_init=10, random_state=0)labels = kmeans.fit_predict(X)score = silhouette_score(X, labels)silhouette_scores.append(score)best_k = np.argmax(silhouette_scores) + 2
print("最优的k值:", best_k)
  • 基于决策树的离散化:使用决策树对属性进行划分,每个叶子节点对应一个离散类别。
基于熵的离散化与基于误差的离散化
  • 基于熵的离散化侧重于信息的纯度,通过最大化信息增益来确定划分点。
  • 基于误差的离散化则关注划分后的预测误差,例如最小化均方误差来确定划分点。

7. 离散化属性转化成数值属性

可以使用编码的方式将离散属性转换为数值属性,常见的编码方法有:

  • 独热编码(One - Hot Encoding):为每个离散值创建一个二进制向量,只有对应的值为 1,其余为 0。
from sklearn.preprocessing import OneHotEncoder
import numpy as npX = np.array([['red'], ['green'], ['blue']])
encoder = OneHotEncoder()
X_encoded = encoder.fit_transform(X).toarray()
print(X_encoded)
  • 标签编码(Label Encoding):为每个离散值分配一个唯一的整数。

8. 投影

投影是将高维数据映射到低维空间的过程,目的是减少数据维度,同时保留数据的主要特征。常见的投影方法有主成分分析、随机投影和偏最小二乘回归等。在这里插入图片描述

主成分分析(PCA)

通过线性变换将原始数据转换为一组各维度线性无关的主成分,选取方差最大的前 k 个主成分作为新的特征。

from sklearn.decomposition import PCA
import numpy as npX = np.array([[1, 2], [3, 4], [5, 6]])
pca = PCA(n_components=1)
X_pca = pca.fit_transform(X)
print(X_pca)
随机投影

随机生成一个投影矩阵,将高维数据投影到低维空间。该方法计算速度快,适用于大规模数据

偏最小二乘回归(PLS)

同时考虑自变量和因变量的信息,寻找一组能够最大程度解释自变量和因变量变异的成分进行投影。

9. 从文本到属性向量

将文本数据转换为数值向量,以便机器学习模型处理。常见方法有词袋模型、TF - IDF 模型和词嵌入(如 Word2Vec、GloVe)。

from sklearn.feature_extraction.text import TfidfVectorizercorpus = ['This is the first document.', 'This document is the second document.']
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(corpus)
print(X.toarray())

10. 时间序列

时间序列是按时间顺序排列的观测值序列。处理时间序列数据通常涉及到平滑、预测等任务。常见的时间序列模型有 ARIMA、LSTM 等。

11. 抽样

从原始数据集中选取一部分样本作为训练集,常见的抽样方法有随机抽样、分层抽样和欠抽样、过抽样等。欠抽样用于处理类别不平衡问题,减少多数类样本;过抽样则增加少数类样本。

12. 数据清洗

处理数据中的缺失值、异常值和重复值等问题。例如,使用均值、中位数或众数填充缺失值,通过统计方法(如 Z - score)检测和处理异常值。

import pandas as pd
import numpy as npdata = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8]})
data_filled = data.fillna(data.mean())
print(data_filled)

13. 改进决策树

可以通过剪枝(预剪枝和后剪枝)、特征选择、集成学习(如随机森林)等方法改进决策树的性能,避免过拟合。

14. 稳健回归

对异常值具有较强鲁棒性的回归方法,如 RANSAC(随机抽样一致性)、Huber 回归等。

15. 检测异常

通过统计方法(如 Z - score、箱线图)、基于模型的方法(如孤立森林、One - Class SVM)等检测数据中的异常值。

from sklearn.ensemble import IsolationForest
import numpy as npX = np.array([[1], [2], [3], [4], [5], [100]])
clf = IsolationForest(contamination=0.1)
clf.fit(X)
predictions = clf.predict(X)
print(predictions)

16. 一分类学习

用于识别属于某一类别的样本,而不需要明确的负类样本。常见的一分类算法有 One - Class SVM、单类高斯模型等

17. 多分类转化成二分类

将多分类问题转化为多个二分类问题进行求解,常见方法有一对一(One - vs - One)和一对其余(One - vs - Rest)。

18. 嵌套二分法

将多分类问题通过一系列的二分类问题逐步分解,每次将类别集合划分为两个子集,直到每个子集只包含一个类别

相关文章:

【数据挖掘】

数据挖掘 目录&#xff1a;1. 数据转换2. 属性选择3. 独立于方案的选择4. 探索空间5. 具体方案的选择6. 离散化数值属性无监督离散化基于熵的离散化其他离散化方法 k-means算法原理算法步骤优缺点优点缺点 代码示例&#xff08;使用Python和scikit-learn库&#xff09;代码解释…...

位操作符 练习

一、异或&#xff08;^) 参与运算的两个值&#xff0c;如果两个相应bit位相同&#xff0c;则结果为0&#xff0c;否则为1。 即&#xff1a; 0^0 0&#xff0c;1^0 1&#xff0c; 0^1 1&#xff0c;1^1 0 按位异或的3个特点&#xff1a; &#xff08;1&#xff09; 0异…...

解决Python升级导致PySpark任务异常方案

背景 上一篇文章中写了 Linux 多Python版本统一和 PySpark 依赖 python 包方案&#xff0c;但是最近升级 Linux 服务器 上 Python 版本&#xff08;3.6.8 -> 3.7.16&#xff0c;手动编译Python官方的二进制源码&#xff09;之后&#xff0c;发现之前文章提到 python3 -m v…...

Linux中线程创建,线程退出,线程接合

线程的简单了解 之前我们了解过 task_struct 是用于描述进程的核心数据结构。它包含了一个进程的所有重要信息&#xff0c;并且在进程的生命周期内保持更新。我们想要获取进程相关信息往往从这里得到。 在Linux中&#xff0c;线程的实现方式与进程类似&#xff0c;每个线程都…...

机器视觉检测中,2D面阵相机和线扫相机的区别

2D面阵相机和线扫相机是工业视觉系统中常用的两种相机类型&#xff0c;各有其特点和应用场景。 2D面阵相机 特点&#xff1a; 成像方式&#xff1a;通过二维传感器一次性捕捉整个场景的图像。 分辨率&#xff1a;分辨率由传感器的像素数决定&#xff0c;常见的有百万像素到几千…...

LeetCode 热题 100_N 皇后 (62_51_困难_C++)(递归(回溯))

LeetCode 热题 100_N 皇后&#xff08;62_51&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;递归&#xff08;回溯&#xff09;&#xff09;&#xff1a; 代码实现代码实现&#xff08;思路一&#xff08;递…...

Winform(C#) 项目保存页面

上一张我们已经实现了TCP和串口页面的数据展示&#xff0c;和保存控件 我们这一章&#xff0c;实现如何去&#xff0c;控制保存。 一、控件展示 CheckBox TextBox Button label Name: checkSaveImage checkDelete txtSaveDays txtSaveImagePath btnSelectIm…...

【LeetCode: LCR 126. 斐波那契数 + 动态规划】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

OSPF(开放路径最短优先)

ospf优先级&#xff1a;内部优先级默认为10&#xff0c;外部优先级默认为150 1.ospf的三张表 &#xff08;1&#xff09;邻居表 <记录邻居状态和关系> &#xff08;2&#xff09;拓扑表 <链路状态数据库> &#xff08;3&#xff09;路由表 <对链路状态数据库进…...

JAVA EE初阶 - 预备知识(四)

一、API API 即应用程序编程接口&#xff08;Application Programming Interface&#xff09;&#xff0c;是一组定义、协议和工具&#xff0c;用于不同软件组件、应用程序或系统之间进行交互和通信。以下从多个方面详细介绍 API&#xff1a; 基本概念 接口规范&#xff1a;A…...

如何解决服务器端口被攻击:全面防护与快速响应

服务器端口被攻击是网络安全中常见的问题之一&#xff0c;尤其是当服务器暴露在公共网络上时&#xff0c;容易成为黑客的目标。攻击者可能通过扫描开放端口、利用漏洞或发动拒绝服务&#xff08;DoS/DDoS&#xff09;攻击来破坏服务器的正常运行。本文将详细介绍如何检测、防御…...

golang panic原理

数据结构与底层实现 Goroutine结构体 stack&#xff08;栈内存范围&#xff09; 结构体类型&#xff0c;包含 lo&#xff08;低地址&#xff09;和 hi&#xff08;高地址&#xff09;两个 uintptr 字段&#xff0c;描述 Goroutine 的栈内存区间 [lo, hi)。初始栈大小为 2KB&a…...

scratch猜年龄互动小游戏 2024年12月scratch四级真题 中国电子学会 图形化编程 scratch四级真题和答案解析

scratch猜年龄互动小游戏 2024年12月电子学会图形化编程Scratch等级考试四级真题 一、题目要求 老爷爷的年龄是1-100的随机数,老爷爷询问“请猜猜我的年龄是多少?”,输入年龄,老爷爷会回答"大了"或者"小了,直到最后成功猜出年龄。 1、准备工作 (1)删…...

【Elasticsearch】查询规则_query_rules

1.Query Rules 的定义与作用 Query Rules 是 Elasticsearch 提供的一种功能&#xff0c;允许用户根据预定义的规则动态调整搜索结果。它通过匹配查询的元数据&#xff08;如用户输入、地理位置、用户兴趣等&#xff09;&#xff0c;对搜索结果进行定制化调整&#xff0c;例如固…...

Git备忘录(三)

设置用户信息: git config --global user.name “itcast” git config --global user.email “ helloitcast.cn” 查看配置信息 git config --global user.name git config --global user.email $ git init $ git remote add origin gitgitee.com:XXX/avas.git $ git pull or…...

用户的声音 | 文档结构化信息提取方案测评:LLM、开源模型部署与云端API,谁是合适选择?

文档预处理之文本化 近日&#xff0c;我们收到来自专业用户的使用心得&#xff0c;浅析结构化信息提取技术、技术选型及一些个人测试。 结构化信息提取的重要性 数据作为大模型时代的核心生产资料&#xff0c;其结构化处理能力直接影响AI系统的实用价值。尽管知识图谱、RAG等…...

vite调试node_modules下面插件

在使用vite进行开发的时候,我们可能想要修改node_modules中插件的源码.特别是集成一个SDK&#xff0c;需要调试去判断问题时&#xff0c;或者研究第三方源码时后; vite默认是走缓存的&#xff0c;所以当修改后不会看到你打印的日志&#xff0c;这个时候有几种方法可以选择; 方式…...

ES12 weakRefs的用法和使用场景

ES12 (ECMAScript 2021) 特性总结&#xff1a;WeakRef 1. WeakRef 概述 描述 WeakRef 是 ES12 引入的一个新特性&#xff0c;用于创建对对象的弱引用。弱引用不会阻止垃圾回收器回收对象&#xff0c;即使该对象仍然被弱引用持有。WeakRef 通常与 FinalizationRegistry 结合使…...

【Python】集合set详细讲解(语法、操作、集合运算、性能、使用场景)

文章目录 1. 语法1.1 使用 {} 定义1.2 使用 set() 定义 2. 特点3. 常用操作3.1 访问元素3.2 查找数据3.3 添加元素3.3.1 add() 方法3.3.2 update()方法 3.4 删除元素3.4.1 remove()方法3.4.2 discard()方法3.4.3 pop()方法3.4.4 clear()方法 3.5 集合运算3.5.1 并集&#xff1a…...

网络安全大数据架构 网络安全之数据安全

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 网络安全和数据安全 从狭义来说&#xff0c;网络安全指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或恶意的原因遭到破坏、更改、泄露&…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是&#xff0c;要注意以下几点&#xff1a; Django的表单验证与null无关&#xff1a;null参数控制的是数据库层面字段是否可以为NULL&#xff0c;而blank参数控制的是Django表单验证时字…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...