项目 1000+例 COVID‐19病人体征深度分析

2024-01-20 06:18

本文主要是介绍项目 1000+例 COVID‐19病人体征深度分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验要求

数据集不可开源

  • 特征选择 获取关键参数判断患者的症状程度
      利用Lasso LassCV ElasticNet RandomForest

  • 通过一组早期参数预测重症或危重
     使用SVM CNN KNN LSTM分类器

  • 通过一组早期参数预测临床结局
     使用SVM CNN KNN LSTM分类器

  • 分析哪些临床参数与抗体水平有关。并考虑时序性
     与上面类似,只是把因变量换成抗体水平

  • 分析不同参数之间的依赖关系(CCA)
     因变量: 症状程度、出院/死亡、抗体水平


相关实验源代码

 

一.特征选择部分
Lass LassCV ElasticNet

import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import train_test_split
from group_lasso import GroupLasso
from sklearn.linear_model import Lasso,Ridge, RidgeCV, ElasticNet, LassoCV
from sklearn.model_selection import train_test_split, cross_val_score,GridSearchCV#行
def del_rows(data):t = int(0.8*data.shape[1])data = data.dropna(thresh=t)#保留至少有70%非空的行return datadf = pd.read_excel(r'C:\Users\Somewhere\PycharmProjects\Machine learning COVID‐19 蔡加欣\临床指标简化整理    实验报告.xlsx')
df = df.drop(['病人ID'],axis=1)
df = df.drop(['发病日期'],axis=1)
df = df.drop(['入院时间'],axis=1)
df = df.drop(['出院/死亡时间'],axis=1)
df = df.drop(['检测日期'],axis=1)
df = df.drop(['发病天数'],axis=1)
df['性别']=df['性别'].astype(str).map({'女':0,'男':1})
df['临床结局 ']=df['临床结局 '].astype(str).map({'出院':0,'死亡':1})
df['严重程度(最终)']=df['严重程度(最终)'].astype(str).map({'无症状感染者':0,'轻型':0,'重型':1,'危重型':1})
df['是否进入ICU']=df['是否进入ICU'].astype(str).map({'否':0,'是':1})
X = df.drop(['严重程度(最终)'],axis=1).fillna(0)
y = df['严重程度(最终)'].fillna(0)
seed=5
x_train,x_test,y_train,y_test = train_test_split(X, y, test_size=0.3, random_state=seed)def rmse_cv(model):rmse= np.sqrt(-cross_val_score(model, x_train,y_train, scoring="neg_mean_squared_error", cv = 3))return(rmse)#调用函数,并进行交叉验证,默认cv=3
model_lasso = LassoCV().fit(x_train,y_train)
#输出看模型最终选择了几个特征向量,剔除了几个特征向量
feature = pd.Series(model_lasso.coef_, index = x_train.columns)
print("Lasso picked " + str(sum(feature != 0)) + " variables and eliminated the other " +  str(sum(feature == 0)) + " variables")
#画出特征变量的重要程度,这里面选出前10个重要的特征
feature_important = pd.concat([feature.sort_values().tail(10)])
print(feature_important)#画图部分
matplotlib.rcParams['figure.figsize'] = (11.0, 5.0)
feature_important.plot(kind="barh")
plt.title("Selections in the Lasso Model")
plt.show()
  •  调用相对应的函数,即可实现Lasso LassCV ElasticNet特征选择

随机森林

import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split#删除缺失值超过20%非空的行
def del_rows(data):t = int(0.8*data.shape[1])data = data.dropna(thresh=t)return data
#数据预处理
df = pd.read_excel(r'C:\Users\Somewhere\PycharmProjects\Machine learning COVID‐19 蔡加欣\临床指标简化整理    实验报告.xlsx')
df = df.drop(['病人ID'],axis=1)
df = df.drop(['发病日期'],axis=1)
df = df.drop(['入院时间'],axis=1)
df = df.drop(['出院/死亡时间'],axis=1)
df = df.drop(['检测日期'],axis=1)
df = df.drop(['发病天数'],axis=1)
df['性别']=df['性别'].astype(str).map({'女':0,'男':1})
df['临床结局 ']=df['临床结局 '].astype(str).map({'出院':0,'死亡':1})
df['严重程度(最终)']=df['严重程度(最终)'].astype(str).map({'无症状感染者':0,'轻型':0,'重型':1,'危重型':1})
df['是否进入ICU']=df['是否进入ICU'].astype(str).map({'否':0,'是':1})
#df = df.dropna(axis=0,how='any',thresh=None,subset=['S1_IgG','N_IgG'],inplace=False)
X = df.drop(['临床结局 '],axis=1).fillna(0)
y = df['临床结局 '].fillna(0)
#切分
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0)
#运用随机森林
feat_labels = df.columns[1:]
model = RandomForestClassifier(n_estimators=10000, random_state=0, n_jobs=-1)
model.fit(x_train, y_train.astype('int'))
importance = pd.Series(model.feature_importances_, index=X.columns)
importance = importance.sort_values().tail(10)
print(importance)
#作图
matplotlib.rcParams['figure.figsize'] = (12.0, 5.0)
importance.plot(kind="barh")
plt.title("Selections in the RandomForest Model")
plt.show()

二.分类器 预测

KNN + 交叉验证选取最优k

import scipy
import numpy as np
import pandas as pd
from pylab import *
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier#去除缺失值超过20%的行
def del_rows(data):t = int(0.8*data.shape[1])data = data.dropna(thresh=t)return data#数据预处理
df = pd.read_excel(r'C:\Users\Somewhere\PycharmProjects\Machine learning COVID‐19 蔡加欣\临床指标简化整理    实验报告.xlsx')
df['性别']=df['性别'].astype(str).map({'女':0,'男':1})
df['临床结局 ']=df['临床结局 '].astype(str).map({'出院':0,'死亡':1})
df['严重程度(最终)']=df['严重程度(最终)'].astype(str).map({'无症状感染者':0,'轻型':0,'重型':1,'危重型':1})
df['是否进入ICU']=df['是否进入ICU'].astype(str).map({'否':0,'是':1})
df = df.dropna(axis=0,how='any',thresh=None,subset=['S1_IgG','N_IgG'],inplace=False)
data = del_rows(df)
X = data[['血_中性粒细胞(%)','血_超敏C反应蛋白','血_肌红蛋白','血_乳酸脱氢酶','血_LDH*0.9','年龄','血_白细胞介素6','血_肌酐','血_白细胞介素8','血_铁蛋白']]
Y = data['临床结局 ']
seed = 5
from sklearn import neighbors
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state = seed)#数据标准化
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
x_train = sc.fit_transform(x_train)
x_test = sc.transform(x_test)#画图选取最优k值
import matplotlib.pyplot as plt
from sklearn.model_selection import validation_curve
param_name = 'n_neighbors'
param_range = range(1, 51)# scoring: 分类用 accuracy, 回归用 mean_squared_error
train_scores, test_scores = validation_curve(KNeighborsClassifier(), X_train, y_train, cv=5,param_name=param_name, param_range=param_range,scoring='accuracy')train_scores_mean = np.mean(train_scores, axis=1)
test_scores_mean = np.mean(test_scores, axis=1)plt.plot(param_range,train_scores_mean, color='red', label='train')
plt.plot(param_range, test_scores_mean, color='green', label='test')
plt.legend('best')
plt.xlabel('param range of k')
plt.ylabel('scores mean')
plt.show()#预测
classifier = KNeighborsClassifier(n_neighbors=16)
classifier.fit(x_train, y_train)
score = classifier.score(x_test, y_test)
print(score)
from sklearn.metrics import classification_report, accuracy_score
y_predict = np.round(classifier.predict(x_test)).astype(int)
print('Results for Binary Model')
print(accuracy_score(y_test,y_predict))
print(classification_report(y_test,y_predict))

SVM+5折交叉验证

# 正常输出中文
import io
import sys
import pandas as pd
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')#去除缺失值超过20%的行
def del_rows(data):t = int(0.8 * data.shape[1])data = data.dropna(thresh=t)return data
#数据预处理
df = pd.read_excel(r'C:\Users\Somewhere\PycharmProjects\Machine learning COVID‐19 蔡加欣\临床指标简化整理    实验报告.xlsx')
df['性别'] = df['性别'].astype(str).map({'女': 0, '男': 1})
df['临床结局 '] = df['临床结局 '].astype(str).map({'出院': 0, '死亡': 1})
df['严重程度(最终)'] = df['严重程度(最终)'].astype(str).map({'无症状感染者': 0, '轻型': 0, '重型': 1, '危重型': 1})
df['是否进入ICU'] = df['是否进入ICU'].astype(str).map({'否': 0, '是': 1})data = del_rows(df)
X = df[['年龄','S1_IgG','血_D-D二聚体定量','血_乳酸脱氢酶','血_LDH*0.9','血_中性粒细胞(%)','血_RBC分布宽度SD','N_IgG','血_淋巴细胞(%)','血_中性粒细胞(#)']].fillna(0)
y = df['严重程度(最终)'].fillna(0)from sklearn import svm
from sklearn.model_selection import cross_val_scoreclf = svm.SVC(probability=True)
scores = cross_val_score(clf, X, y, cv=5, scoring='accuracy')
print(cross_val_score(clf, X, y, cv=5, scoring='accuracy'))
print('Cross_val_score.Mean:')
print(scores.mean())

CNN + validation + loss图

import scipy
import numpy as np
import pandas as pd
from pylab import *
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from keras.layers import Dense, Dropout, Flatten#去除缺失值大于20%的行
def del_rows(data):t = int(0.8*data.shape[1])data = data.dropna(thresh=t)#保留至少有t个非空的行#data = data[(data.T != 0).any()]return data#数据预处理
df = pd.read_excel(r'C:\Users\Somewhere\PycharmProjects\Machine learning COVID‐19 蔡加欣\临床指标简化整理    实验报告.xlsx')
df['性别']=df['性别'].astype(str).map({'女':0,'男':1})
df['临床结局 ']=df['临床结局 '].astype(str).map({'出院':0,'死亡':1})
df['严重程度(最终)']=df['严重程度(最终)'].astype(str).map({'无症状感染者':0,'轻型':0,'重型':1,'危重型':1})
df['是否进入ICU']=df['是否进入ICU'].astype(str).map({'否':0,'是':1})
#df = df.dropna(axis=0,how='any',thresh=None,subset=['S1_IgG','N_IgG'],inplace=False)
data = del_rows(df)
X = df[['年龄','血_LDH*0.9','血_超敏C反应蛋白','血_乳酸脱氢酶','血_肌红蛋白','血_平均血红蛋白浓度','血_白细胞介素2受体','血_氨基末端脑钠肽前体(NT-proBNP)']].fillna(0)
y = df['严重程度(最终)'].fillna(0)
seed = 5
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state = seed)#标准化
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
x_train = sc.fit_transform(x_train)
x_test = sc.transform(x_test)#搭建神经网络
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
from keras import regularizers
import keras
def create_model():model = Sequential()model.add(Dense(8, activation='relu', input_dim=8))Dropout(0.5)model.add(Dense(6, activation='relu'))model.add(Dense(1, activation='sigmoid'))adam = Adam(lr=0.001)model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])return model
model = create_model()
history = model.fit(x_train,y_train, epochs=120,batch_size=64, validation_data=(x_test, y_test), verbose=2, shuffle=False)#评估模块
plt.plot(history.history['loss'], label='train')
plt.plot(history.history['val_loss'], label='test')
plt.legend()
plt.show()

LSTM + validation

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam#excel -> array
def  excel_array(df):resArray=[] #先声明一个空listresArray = df.values.tolist()return resArray#different divide  
def division_X(data):list_new = []  # 处理后的列表,是一个二维列表list_short = []for i in range(0, len(data) - 1):# 遍历列表id  前与后相比,相同的该行进行拼接if data[i][0] == data[i + 1][0]:list_short.append(data[i])else:list_new.append(list_short)list_short = []return list_new
def division_Y(data):list_short = []list_short.append(data[0])for i in range(0, len(data) -1):# 遍历列表id  前与后相比,相同的该行进行拼接if data[i][0] != data[i + 1][0]:list_short.append(data[i+1])return list_short#去除缺失值大于20%的行
def del_rows(data):t = int(0.7*data.shape[1])data = data.dropna(thresh=t)# return data#数据预处理
df =  pd.read_excel(r'C:\Users\Somewhere\PycharmProjects\Machine learning COVID‐19 蔡加欣\临床指标简化整理    实验报告.xlsx')
df['性别']=df['性别'].astype(str).map({'女':0,'男':1})
df['临床结局 ']=df['临床结局 '].astype(str).map({'出院':0,'死亡':1})
df['严重程度(最终)']=df['严重程度(最终)'].astype(str).map({'无症状感染者':0,'轻型':0,'重型':1,'危重型':1})
df['是否进入ICU']=df['是否进入ICU'].astype(str).map({'否':0,'是':1})
#df = df.dropna(axis=0,how='any',thresh=None,subset=['S1_IgG','N_IgG'],inplace=False)
data = df[['病人ID','临床结局 ','血_超敏C反应蛋白','血_肌红蛋白','血_乳酸脱氢酶','血_LDH*0.9','血_白细胞介素6','血_平均血红蛋白浓度','血_铁蛋白','血_白细胞介素2受体','血_氨基末端脑钠肽前体(NT-proBNP)']]
data = del_rows(data)
X =  data[['病人ID','血_超敏C反应蛋白','血_肌红蛋白']]
X = X.fillna(0)
X = excel_array(X)
X = division_X(X)
for i in X:for j in i:j.pop(0)Y = data[['病人ID','临床结局 ']]
Y = Y.fillna(0)
Y = excel_array(Y)
Y = division_Y(Y)
y = []
for i in Y:y.append(i[-1])
y = y[:-1]
print(y)
print(len(y))#构建Lstm模型
from sklearn.model_selection import train_test_split
from keras.layers import Input, Masking
import keras as ks
seed=5
x_train,x_test,y_train,y_test = train_test_split(X, y, test_size=0.2, random_state=seed)
x_train=ks.preprocessing.sequence.pad_sequences(x_train,maxlen=15,padding='post',value=0.)
x_test=ks.preprocessing.sequence.pad_sequences(x_test,maxlen=15,padding='post',value=0.)
from keras import regularizers
from keras.layers import Dropout
def create_model():model = Sequential()model.add(Masking(mask_value=0., input_shape=(np.array(x_train).shape[1],np.array(x_train).shape[2])))model.add(LSTM(32,kernel_regularizer=regularizers.l1_l2(0.2)))model.add(Dense(16,kernel_initializer='uniform', activation='relu'))Dropout(0.1)model.add(Dense(1,kernel_initializer='uniform',activation='sigmoid'))model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])return model
model = create_model()
history = model.fit(x_train,y_train, epochs=120,batch_size=80, validation_data=(x_test, y_test), verbose=2, shuffle=False)#评估模块
from sklearn.metrics import classification_report, accuracy_score
y_predict = np.round(model.predict(x_test)).astype(int)
print('Results for Binary Model')
print(accuracy_score(y_test,y_predict))
print(classification_report(y_test,y_predict))

代码简述

 - excel_array    division_X    division_Y 将特征与标签处理成如下形式[ [[x1,x2,x3],时序性特征[y1,y2,y3],[z1,z2,z3]]     对应标签[1]]   - x_train=ks.preprocessing.sequence.pad_sequences(x_train,maxlen=15,padding='post',value=0.)由于输入的数据是长短不同的时间序列将使用pad_sequences函数补成相同长度的时间序列(使用0补全)在模型中使用Masking层忽略因缺失补的0

其实1-3问题均类似,只是变换了因变量

  • 由于抗体水平是连续数据,因此使用等宽法将连续数据离散化,将抗体水平等宽分为0,1
    即连续数据离散化,预测问题转化为二分类问题
等宽法
d1 = pd.cut(data, k, labels=range(k))
y = d1

三.分析不同参数之间的依赖关系(CCA)

特征选择

import numpy as np
import pandas as pd
from sklearn.cross_decomposition import CCA#去除缺失值大于20%的行
def del_rows(data):t = int(0.8*data.shape[1])data = data.dropna(thresh=t) return data#数据预处理 
df =  pd.read_excel(r'C:\Users\Somewhere\PycharmProjects\Machine learning COVID‐19 蔡加欣\临床指标简化整理    实验报告.xlsx')
df = df.drop(['病人ID'],axis=1)
df = df.drop(['性别'],axis=1)
df = df.drop(['年龄'],axis=1)
df = df.drop(['发病日期'],axis=1)
df = df.drop(['入院时间'],axis=1)
df = df.drop(['出院/死亡时间'],axis=1)
df = df.drop(['检测日期'],axis=1)
df = df.drop(['发病天数'],axis=1)
df = df.dropna(axis=0,how='any',thresh=None,subset=['S1_IgG','N_IgG'],inplace=False)
df['临床结局 ']=df['临床结局 '].astype(str).map({'出院':0,'死亡':1})
df['严重程度(最终)']=df['严重程度(最终)'].astype(str).map({'无症状感染者':0,'轻型':1,'重型':2,'危重型':3})
df['是否进入ICU']=df['是否进入ICU'].astype(str).map({'否':0,'是':1})
k=2
y=df['S1_IgG']
d1 = pd.cut(y, k, labels=range(k))
y = d1
df = df.drop(['S1_IgG'],axis=1)
X = df.fillna(0)#计算输出前6个CCA典型相关性系数最高的系数
L = []
for index in X.columns:New = []cca = CCA(n_components=1)cca.fit(X[[index]],y)X_train_r, Y_train_r = cca.transform(X[[index]], y)New.append(np.corrcoef(X_train_r[:, 0], Y_train_r[:, 0])[0, 1])New.append(index)L.append(New)
def takesecond(elem):return elem[0]
L.sort(key=takesecond,reverse=True)
for x in L[0:7]:print(x)

散点图

color = sns.color_palette()
sns.set_style('darkgrid')
fig, ax = plt.subplots()
#定义颜色
colors1 = '#000000'
colors2 = '#FF0000'
#根据实际需要,划定散点图的范围 
plt.xlim(0,3000)
plt.ylim(0,60000)ax.scatter(x=df['血_铁蛋白'],y=df['S1_IgG'],s=3,c=colors2)
#x,y轴名称
plt.xlabel('血_嗜碱细胞(#)',fontsize=13,fontproperties=font)
plt.ylabel('S1_IgG',fontsize=13,fontproperties=font)
plt.show()

这篇关于项目 1000+例 COVID‐19病人体征深度分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625056

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

MOLE 2.5 分析分子通道和孔隙

软件介绍 生物大分子通道和孔隙在生物学中发挥着重要作用,例如在分子识别和酶底物特异性方面。 我们介绍了一种名为 MOLE 2.5 的高级软件工具,该工具旨在分析分子通道和孔隙。 与其他可用软件工具的基准测试表明,MOLE 2.5 相比更快、更强大、功能更丰富。作为一项新功能,MOLE 2.5 可以估算已识别通道的物理化学性质。 软件下载 https://pan.quark.cn/s/57

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud