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

逻辑回归简单案例分析--鸢尾花数据集

文章目录

    • 1. IRIS数据集介绍
    • 2. 具体步骤
      • 2.1 手动将数据转化为numpy矩阵
        • 2.1.1 从csv文件数据构建Numpy数据
        • 2.1.2 模型的搭建与训练
        • 2.1.3 分类器评估
        • 2.1.4 分类器的分类报告总结
        • 2.1.5 用交叉验证(Cross Validation)来验证分类器性能
        • 2.1.6 完整代码:
      • 2.2 使用sklearn内置的iris数据集(多分类)
        • 2.2.1 导入数据集
        • 2.2.2 划分训练集和测试集
        • 2.2.3 定义逻辑回归模型并训练
        • 2.2.5 用训练好的模型在训练集和测试集上做预测
        • 2.2.6 对预测结果进行可视化

1. IRIS数据集介绍

Iris也称鸢尾花卉数据集,是常用的分类实验数据集,由R.A. Fisher于1936年收集整理的。其中包含3种植物种类,分别是山鸢尾(setosa)变色鸢尾(versicolor)和维吉尼亚鸢尾(virginica),每类50个样本,共150个样本。

该数据集包含4个特征变量,1个类别变量。iris每个样本都包含了4个特征:花萼长度,花萼宽度,花瓣长度,花瓣宽度,以及1个类别变量(label)。我们需要建立一个分类器,分类器可以通过这4个特征来预测鸢尾花卉种类是属于山鸢尾,变色鸢尾还是维吉尼亚鸢尾。其中有一个类别是线性可分的,其余两个类别线性不可分,这在最后的分类结果绘制图中可观察到。

变量名变量解释数据类型
sepal_length花萼长度(单位cm)numeric
sepal_width花萼宽度(单位cm)numeric
petal_length花瓣长度(单位cm)numeric
petal_width花瓣长度(单位cm)categorical

2. 具体步骤

Step1:数据集预览

df=pd.read_csv('./data/iris.data.csv',header=0)
print(df.head())

image-20231221205143932

2.1 手动将数据转化为numpy矩阵

2.1.1 从csv文件数据构建Numpy数据

Step 1:构造映射函数iris_type。因为实际数据中,label并不都是便于学习分类的数字型,而是string类型。

Step 2:对于文本类的label, 将label列的所有内容都转变成映射函数的输出,存成新的dataframe
Step 3:将Step2的结果转换成numpy矩阵
Step 4:划分训练集与测试集

def iris_type(s):class_label={'Iris-setosa':0,'Iris-versicolor':1,'Iris-virginica':2}return class_label[s]
df=pd.read_csv('./data/iris.data.csv',header=0)
#2.将第4列内容映射至iris_type函数定义的内容
df['Species']=df['Species'].apply(iris_type)
print(df.head())
#3.将df解析到numpy_arrat
data=np.array(df)
# print(data[:2])#4.将原始数据集分为测试集合和验证集合
# 用np.split按列(axis=1)进行分割
# (4,):分割位置,前4列作为x的数据,第4列之后都是y的数据
x,y=np.split(data,(4,),axis=1)
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.7,random_state=0)
2.1.2 模型的搭建与训练
  • Pipeline(steps)

    利用sklearn提供的管道机制

    Pipeline

    来实现对全部步骤的流式化封装与管理。

    • 第一个环节:可以先进行 数据标准化 StandardScaler()
    • 中间环节:可以加上 PCA降维处理 取2个重要特征
    • 最终环节:逻辑回归分类器
pip_LR=Pipeline([('sc',StandardScaler()),('pca',PCA(n_components=2)),('clf_lr',LogisticRegression(random_state=1))])#开始训练
pip_LR.fit(x_train,y_train.ravel())#显示当前管道的配置和参数设置,它并没有直接运行或产生实际的影响,只展示了机器学习管道的配置
Pipeline(memory=None,steps=[('sc', StandardScaler(copy=True, with_mean=True, with_std=True)), ('pca', PCA(copy=True, iterated_power='auto', n_components=2, random_state=None,svd_solver='auto', tol=0.0, whiten=False)), ('clf_lr', LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,penalty='l2', random_state=1, solver='liblinear', tol=0.0001,verbose=0, warm_start=False))])
2.1.3 分类器评估
print("训练准确率:%0.2f"%pip_LR.score(x_train,y_train))print("测试准确率:%0.2f"%pip_LR.score(x_test,y_test))y_hat=pip_LR.predict(x_test)
accuracy=metrics.accuracy_score(y_test,y_hat)
print("逻辑回归分类器的准确率:%0.2f" % accuracy)
2.1.4 分类器的分类报告总结
  • 精确度(Precision):指的是在所有模型预测为某一类别的样本中,真正属于该类别的比例。计算方式为该类别的 True Positives / (True Positives + False Positives)。
  • 召回率(Recall):指的是在所有实际属于某一类别的样本中,被模型正确预测为该类别的比例。计算方式为该类别的 True Positives / (True Positives + False Negatives)
  • F1 Score:是精确度和召回率的调和平均数,综合考虑了两者的性能。计算方式为 2 ∗ P r e c s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l 2*\frac{Precsion*Recall}{Precision+Recall} 2Precision+RecallPrecsionRecall
  • support:指的是属于该类别的样本数。
  • accuracy(准确度):指的是模型在所有类别上正确预测的比例。计算方式为 Sum of True PositivesTotal SamplesTotal SamplesSum of True Positives。
  • macro avg(宏平均):对所有类别的指标取平均,不考虑类别样本数量的差异。
  • weighted avg(加权平均):对所有类别的指标取加权平均,考虑类别样本数量的差异。
#描述分类器的精确度,召回率,F1Score
target_names=['Iris-setosa','Iris-versicolor','Iris-virginica']
print(metrics.classification_report(y_test,y_hat,target_names=target_names))

image-20231222152004185

2.1.5 用交叉验证(Cross Validation)来验证分类器性能

交叉验证常用于防止模型过于复杂而造成过拟合,同时也称为循环估计。基本思想是将原始数据分成K组(一般是平均分组),每个子集数据分别做一次验证集或测试集,其余的K-1个子集作为训练集。这样就会得到K个模型,取这K个模型的分类准确率的平均数作为分类器的性能指标更具说服力。

比如说在这里我们使用的是5折交叉验证(5-fold cross validation),即数据集被分成了5份,轮流将其中4份作为训练数据集,剩余1份作为测试集,进行试验。每次试验都会得出相应的正确率,将5次试验得出的相应正确率的平均值作为分类器的准确率的估计。同样的,K也可以取10,20等。

iris_data=x
iris_target=y
scores=cross_val_score(pip_LR,iris_data,iris_target.ravel(),cv=5,scoring='f1_macro')
print("5折交叉验证:\n逻辑回归分类器的准确率:%.2f 误差范围:(+/- %.2f)"%(scores.mean(), scores.std()*2))
X_trainval, X_test, y_trainval, y_test = train_test_split(iris_data, iris_target, random_state=0)
X_train, X_val, y_train, y_val = train_test_split(X_trainval, y_trainval, random_state=1)
print("训练集大小:{} 验证集大小:{} 测试集大小:{}".format(X_train.shape[0],X_val.shape[0],X_test.shape[0]))
2.1.6 完整代码:
#将原始数据文件转为机器学习可用的numpy数据
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import plotly.express as px
import chart_studio.grid_objs as go
from sklearn.decomposition import PCA
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import GridSearchCVdef iris_type(s):class_label={'Iris-setosa':0,'Iris-versicolor':1,'Iris-virginica':2}return class_label[s]
df=pd.read_csv('./data/iris.data.csv',header=0)
#2.将第4列内容映射至iris_type函数定义的内容
df['Species']=df['Species'].apply(iris_type)
print(df.head())
#3.将df解析到numpy_arrat
data=np.array(df)
# print(data[:2])#4.将原始数据集分为测试集合和验证集合
# 用np.split按列(axis=1)进行分割
# (4,):分割位置,前4列作为x的数据,第4列之后都是y的数据
x,y=np.split(data,(4,),axis=1)
# X = x[:,0:2] # 取前两列特征
# 用train_test_split将数据按照7:3的比例分割训练集与测试集,
# 随机种子设为1(每次得到一样的随机数),设为0或不设(每次随机数都不同)
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.7,random_state=0)
pip_LR=Pipeline([('sc',StandardScaler()),('pca',PCA(n_components=2)),('clf_lr',LogisticRegression(random_state=1))])#开始训练
pip_LR.fit(x_train,y_train.ravel())#显示当前管道的配置和参数设置,它并没有直接运行或产生实际的影响,只展示了机器学习管道的配置
Pipeline(memory=None,steps=[('sc', StandardScaler(copy=True, with_mean=True, with_std=True)), ('pca', PCA(copy=True, iterated_power='auto', n_components=2, random_state=None,svd_solver='auto', tol=0.0, whiten=False)), ('clf_lr', LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,penalty='l2', random_state=1, solver='liblinear', tol=0.0001,verbose=0, warm_start=False))])
print("训练准确率:%0.2f"%pip_LR.score(x_train,y_train))
print("测试准确率:%0.2f"%pip_LR.score(x_test,y_test))
y_hat=pip_LR.predict(x_test)
accuracy=metrics.accuracy_score(y_test,y_hat)
print("逻辑回归分类器的准确率:%0.2f" % accuracy)#描述分类器的精确度,召回率,F1Score
target_names=['Iris-setosa','Iris-versicolor','Iris-virginica']
print(metrics.classification_report(y_test,y_hat,target_names=target_names))#交叉验证(Cross Validation)来验证分类器的性能
iris_data=x
iris_target=y
scores=cross_val_score(pip_LR,iris_data,iris_target.ravel(),cv=5,scoring='f1_macro')
print("5折交叉验证:\n逻辑回归分类器的准确率:%.2f 误差范围:(+/- %.2f)"%(scores.mean(), scores.std()*2))
X_trainval, X_test, y_trainval, y_test = train_test_split(iris_data, iris_target, random_state=0)
X_train, X_val, y_train, y_val = train_test_split(X_trainval, y_trainval, random_state=1)
print("训练集大小:{} 验证集大小:{} 测试集大小:{}".format(X_train.shape[0],X_val.shape[0],X_test.shape[0]))

网格搜索验证见:用逻辑回归实现鸢尾花数据集分类(2) - Heywhale.com

2.2 使用sklearn内置的iris数据集(多分类)

2.2.1 导入数据集
#导入内置数据集,已经处理空置,无需进行预处理
iris = load_iris()print('数据集的前5个样例', iris.data[0:5])
image-20231222155315033
2.2.2 划分训练集和测试集
y = iris.target
X = iris.data
X_train, X_test, Y_train, Y_test = train_test_split(X, y, train_size=0.8, random_state=2020)
2.2.3 定义逻辑回归模型并训练
logistic = LogisticRegression(random_state=0,solver='lbfgs')
logistic.fit(X_train, Y_train)
print('the weight of Logistic Regression:\n',logistic.coef_)
print('the intercept(w0) of Logistic Regression:\n',logistic.intercept_)
y_train_predict=logistic.predict(X_train)
y_test_predict = logistic.predict(X_test)
image-20231222155536681

可以看到此处打印出了三组参数,这是因为这里我们是三分类问题。

2.2.5 用训练好的模型在训练集和测试集上做预测
#由于逻辑回归模型是概率预测模型,所有我们可以利用 predict_proba 函数预测其概率
train_predict_proba = logistic.predict_proba(X_train)
test_predict_proba = logistic.predict_proba(X_test)
print('The test predict Probability of each class:\n',test_predict_proba)# 利用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(Y_train,y_train_predict))
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(Y_test,y_test_predict))confusion_matrix_result = metrics.confusion_matrix(y_test_predict,Y_test)
print('The confusion matrix result:\n',confusion_matrix_result)

image-20231222155832143

2.2.6 对预测结果进行可视化
confusion_matrix_result = metrics.confusion_matrix(y_test_predict,Y_test)
print('The confusion matrix result:\n',confusion_matrix_result)# 利用热力图对于结果进行可视化
plt.figure(figsize=(8, 6))
sns.heatmap(confusion_matrix_result, annot=True, cmap='Blues')
plt.xlabel('Predicted labels')
plt.ylabel('True labels')
plt.show()
image-20231222155920181

通过结果我们可以发现,其在三分类的结果其在测试集上的准确度为: 86.67% ,这是由于’versicolor’(1)和 ‘virginica’(2)这两个类别的特征,我们从可视化的时候也可以发现,其特征的边界具有一定的模糊性(边界类别混杂,没有明显区分边界),所有在这两类的预测上出现了一定的错误。

从混淆矩阵中可以看出:标签值y=0的10个样本都被正确分类;标签值y=1的10个样本中,有8个被正确分类,其中有两个被误分类为y=2;标签值y=2的10个样本中,有8个被正确分类,其中有两个被误分类为y=1。

相关文章:

逻辑回归简单案例分析--鸢尾花数据集

文章目录 1. IRIS数据集介绍2. 具体步骤2.1 手动将数据转化为numpy矩阵2.1.1 从csv文件数据构建Numpy数据2.1.2 模型的搭建与训练2.1.3 分类器评估2.1.4 分类器的分类报告总结2.1.5 用交叉验证(Cross Validation)来验证分类器性能2.1.6 完整代码&#xf…...

Python print 高阶玩法

Python print 高阶玩法 当涉及到在Python中使用print函数时,有许多方式可以玩转文本样式、字体和颜色。在此将深入探讨这些主题,并介绍一些print函数的高级用法。 1. 基本的文本样式与颜色设置 使用ANSI转义码 ANSI转义码是一种用于在终端&#xff0…...

Wpf 使用 Prism 实战开发Day09

设置模块设计 1.效果图 一.系统设置模块,主要有个性化(用于更改主题颜色),系统设置,关于更多,3个功能点。 个性化的颜色内容样式,主要是从 Material Design Themes UI简称md、提供的demo里复制代码过来使用的。 1.设置…...

网络端口(包括TCP端口和UDP端口)的作用、定义、分类,以及在视频监控和流媒体通信中的定义

目 录 一、什么地方会用到网络端口? 二、端口的定义和作用 (一)TCP协议和UDP协议 (二)端口的定义 (三)在TCP/IP体系中,端口(TCP和UDP)的作用 (…...

flink如何写入es

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、写入到Elasticsearch5二、写入到Elasticsearch7总结 前言 Flink sink 流数据写入到es5和es7的简单示例。 一、写入到Elasticsearch5 pom maven依赖 <d…...

Java、Python、C++和C#的界面开发框架和工具的重新介绍

好的&#xff0c;以下是Java、Python、C和C#的界面开发框架和工具的重新介绍&#xff1a; Java界面开发&#xff1a; Swing: 是Java提供的一个基于组件的GUI工具包&#xff0c;可以创建跨平台的图形用户界面。它提供了丰富的组件和布局管理器&#xff0c;使得界面开发相对简单。…...

Java二叉树的遍历以及最大深度问题

Java学习面试指南&#xff1a;https://javaxiaobear.cn 1、树的相关概念 1、树的基本定义 树是我们计算机中非常重要的一种数据结构&#xff0c;同时使用树这种数据结构&#xff0c;可以描述现实生活中的很多事物&#xff0c;例如家谱、单位的组织架构、等等。 树是由n&#…...

Apollo 9.0搭建问题记录

虚拟机安装 可以看这个&#xff1a;https://blog.csdn.net/qq_45138078/article/details/129815408 写的很详细 内存 为了学习 Apollo &#xff0c;所以只是使用了虚拟机&#xff0c;内存得大一点&#xff08;128G&#xff09;&#xff0c;第一次&#xff0c;就是因为分配内…...

【心得】PHP文件包含高级利用攻击面个人笔记

目录 一、nginx日志文件包含 二、临时文件包含 三、php的session文件包含 四、pear文件包含 五 、远程文件包含 文件包含 include "/var/www/html/flag.php"; 一 文件名可控 $file$_GET[file]; include $file.".php"; //用php伪协议 &#xff0…...

[scala] 列表常见用法

文章目录 不可变列表 List可变列表 ListBuffer 不可变列表 List 在 Scala 中&#xff0c;列表是一种不可变的数据结构&#xff0c;用于存储一系列元素。列表使用 List 类来表示&#xff0c;它提供了许多方法来操作和处理列表。 下面是一些常见的使用列表的示例&#xff1a; 创…...

python 使用urllib3发起post请求,携带json参数

当通过python脚本&#xff0c;发起http post请求&#xff0c;网络上大多是通过fields传递数据&#xff0c;然而这样&#xff0c;服务器收到的请求&#xff0c;但无法解析json数据。类似这些链接&#xff1a; Python urllib3库使用指南 软件测试|Python urllib3库使用指南 p…...

深入理解堆(Heap):一个强大的数据结构

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 前言堆的实现基本操作结构体定义初始化堆&#xff08;HeapInit&#xff09;销毁堆&#xff08;HeapDestroy&#xff09; 重要函数交换函数&#xff08;…...

抖音在线查权重系统源码,附带查询接口

抖音权重在线查询只需输入抖音主页链接&#xff0c;即可查询作品情况。 搭建教程 上传源码并解压 修改数据库“bygoukai.sql” 修改“config.php” 如需修改水印请修改第40行 如需修改限制次数&#xff0c;请修改第156行 访问域名user.php即可查看访问用户&#xff0c;停…...

Spring Framework和SpringBoot的区别

目录 一、前言 二、什么是Spring 三、什么是Spring Framework 四、什么是SpringBoot 五、使用Spring Framework构建工程 六、使用SpringBoot构建工程 七、总结 一、前言 作为Java程序员&#xff0c;我们都听说过Spring&#xff0c;也都使用过Spring的相关产品&#xff0…...

2024--Django平台开发-Django知识点(三)

day03 django知识点 项目相关路由相关 urls.py视图相关 views.py模版相关 templates资源相关 static/media 1.项目相关 新项目 开发时&#xff0c;可能遇到使用其他的版本。虚拟环境 老项目 打开项目虚拟环境 1.1 关于新项目 1.系统解释器命令行【学习】 C:/python38- p…...

Github 2024-01-08开源项目周报 Top14

根据Github Trendings的统计&#xff0c;本周(2024-01-08统计)共有14个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目5TypeScript项目3C项目2Dart项目1QML项目1Go项目1Shell项目1Rust项目1JavaScript项目1C#项目1 免费…...

vue3 的内置组件汇总

官方给出的说明&#xff1a; Fragment: Vue 3 组件不再要求有一个唯一的根节点&#xff0c;清除了很多无用的占位 div。Teleport: 允许组件渲染在别的元素内&#xff0c;主要开发弹窗组件的时候特别有用。Suspense: 异步组件&#xff0c;更方便开发有异步请求的组件。 一、fr…...

ARM工控机Node-red使用教程

嵌入式ARM工控机Node-red安装教程 从前车马很慢书信很远&#xff0c;而现在人们不停探索“科技改变生活”。 智能终端的出现改变了我们的生活方式&#xff0c;钡铼技术嵌入式工控机协助您灵活布建能源管理、大楼自动化、工业自动化、电动车充电站等各种多元性IoT应用&#xff…...

Visual Studio 发布程序自动更新 ClickOnce和AutoUpdater测试

文章目录 前言运行环境ClickOnce&#xff08;Visual Studio 程序发布&#xff09;IIS新建文件夹C# 控制台测试安装测试更新测试卸载 AutoUpdaterDotNET实现原理简单使用新建一个WPF项目 代码封装自动更新代码封装简单使用 总结 前言 虽然写的大部分都是不联网项目&#xff0c;…...

Codeforces Round 761 (Div. 2) E. Christmas Chocolates(思维题 树的直径 二进制性质 lca)

题目 n(n<2e5)个值&#xff0c;第i个值ai(0<ai<1e9)&#xff0c;所有ai两两不同 初始时&#xff0c;选择两个位置x,y(x≠y)&#xff0c;代表需要对这两个位置进行操作&#xff0c;要把其中一个值变成另一个 你可以执行若干次操作&#xff0c;每一次&#xff0c;你可…...

知识图谱之汽车实战案例综述与前瞻分析

知识图谱的前置介绍 什么是知识图谱 知识图谱本质(Knowledge Graph&#xff09;上是一种叫做语义网络(semantic network &#xff09; 的知识库&#xff0c;即具有有向图结构的一个知识库&#xff1b;图的结点代表实体&#xff08;entity&#xff09;或者概念&#xff08;con…...

网关Gateway

什么是网关? 网关实质上是一个网络通向其他网络的 IP 地址&#xff0c;是当前微服务项目的"统一入口"。 网关能做什么&#xff1f; 反向代理 、鉴权、 流量控制、 熔断、 日志监控等 图片原文&#xff1a;http://t.csdnimg.cn/SvUJh 核心概念 Router&#xff08;…...

java 生成一个当前时间的时间搓

开发过程中 用时间搓数值格式存储 会更加精准 那么 我们在一些日常增删查改中就可以用时间搓来记录操作时间 就一行代码 long timestamp System.currentTimeMillis();他就能生成当前时间的时间搓 运行结果如下 然后 我们可以在 http://shijianchuo.wiicha.com/ 上进行转换查…...

金融中IC和IR的定义

当谈到金融领域时&#xff0c;IC&#xff08;Information Coefficient&#xff09;和IR&#xff08;Information Ratio&#xff09;通常是用来评估投资组合管理绩效的指标。它们都涉及到投资者对信息的利用和管理的效果。 信息系数&#xff08;IC - Information Coefficient&a…...

Git(2):Git环境的安装

本教程里的git命令例子都是在Git Bash中演示的&#xff0c;会用到一些基本的linux命令&#xff0c;在此为大家提前列举&#xff1a; ls/ll 查看当前目录cat 查看文件内容touch 创建文件vi vi编辑器&#xff08;使用vi编辑器是为了方便展示效果&#xff0c;学员可以记事本、edi…...

Pytest单元测试系列[v1.0.0][pytest插件常用技巧]

使用pytest-xdist并发执行测试 pytest-xdist&#xff1a;Run Tests in Parallel [https://pypi.python.org/pypi/pytest-xdist] 在自动化测试中有些资源只能同时被一个测试用例访问&#xff0c;如果不需要同时使用同一个资源&#xff0c;那么测试用例便可以并行执行 执行命令…...

嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第五天-Linux消息共享内存练习题(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…...

04set注入专题/简单类型/数组/List/Set/Map/空字符串/null/特殊符号

1.1注入外部Bean 在之前使用的案例就是注入外部Bean的方式。 <!-- class属性声明要管理哪个类中的对象 property标签的name是提示set方法名ref标签指明注入的bean的id--><bean id"userServiceBean" class"com.powernode.spring6.service.UserService…...

Linux引导和服务管理

目录 一.Linux引导&#xff1a; 1、Linux开机启动的完整过程&#xff1a; 2、bios的作用&#xff1a; 3、boot&#xff1a; 4.mbr: 5、grub&#xff1a; 6、加载内核文件&#xff1a; 7、启动进程&#xff1a; 8、centos6与centos7的区别&#xff1a; 9、完整的过程 …...

HarmonyOS 应用开发学习笔记 ets自定义组件及其引用 @Component自定义组件

Component注解的作用是用来构建自定义组件 Component组件官方文档 自定义组件具有以下特点&#xff1a; 可组合&#xff1a;允许开发者组合使用系统组件、及其属性和方法。 可重用&#xff1a;自定义组件可以被其他组件重用&#xff0c;并作为不同的实例在不同的父组件或容器…...

网站开发者模式下载视频/软文范例大全800

文章目录一、spring-mvc.xml 中组件转化为注解形式二、DispatcherServlet加载核心配置类三、消除web.xml一、spring-mvc.xml 中组件转化为注解形式 跟之前全注解开发思路一致&#xff0c; xml配置文件使用核心配置类替代&#xff0c;xml中的标签使用对应的注解替代 <!-- 组件…...

定制微信小程序/济南seo网站优化公司

1、tracert -d 10.129.218.21 2、然后会出来路由的轨迹如下&#xff1a; 通过最多 30 个跃点跟踪到 10.129.218.21 的路由 1 2 ms 1 ms 1 ms 10.4.46.193 2 6 ms 1 ms 3 ms 10.129.218.21 跟踪完成。...

庆元建设局网站/营销方式有哪几种

11111111111111111111...

做网站让人来注册/成都竞价托管多少钱

头文件添加&#xff1a; #include <unistd.h>...

js插件打开wordpress/网络推广工作室

从概念上说&#xff0c; I P路由选择是简单的&#xff0c;特别对于主机来说。如果目的主机与源主机直接相连&#xff08;如点对点链路&#xff09;或都在一个共享网络上&#xff08;以太网或令牌环网&#xff09;&#xff0c;那么I P数据报就直接送到目的主机上。否则&#xff…...

同仁县wap网站建设公司/网站制作企业有哪些

以前用Keil MDK总喜欢用一个串口&#xff0c;使用printf函数往串口助手上打印一些提示信息。发现使用ITM比使用串口调试好使一点&#xff0c;但是前提是&#xff0c;必须要用调试器&#xff0c;J-Link或者ST-Link&#xff0c;ST-Link还必须要有SWO这根线&#xff0c;也就是一般…...