版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章习题6.1机器学习对数据集,特别是训练集有什么要求?答:数据是机器学习的基础,通常训练集规模越大、质量越高,数据越有代表性,训练得到的模型效果会越好。具有足够大规模和多样性的数据可以支撑复杂模型的表征能力,避免出现过拟合现象。当样本较少时,模型会误把数据的个性(样本的独特性)当成共性(待学习的规律),这里可以理解为“聪明的模型”不仅拟合数据中蕴含的规律,还主动去拟合那些看似规律的噪声模式。当数据库规模增大且数据多样性提高时,样本噪声是随机的,不像数据自身特征具有稳定性,这些随机噪声被消解掉了,不会被模型认为是统一的模式。因此,这些随机性的干扰不会被模型作为稳定特征而学习到。6.2试阐述分类模型选择并参数确定的一般过程。答:候选模型的选择取决于具体的任务和已有的经验,没有统一的标准,通常需要尝试从简单到复杂的多种模型,选择能够与训练集符合的尽可能简单的模型。在训练开始前,需要为模型确定超参数的取值,超参数调节是机器学习中优化模型性能的关键步骤,涉及多种方法。常见方法包括:网格搜索和随机搜索分别以系统性和随机性尝试不同超参数组合,但可能计算成本高昂或无法保证找到最优解;贝叶斯优化利用概率模型预测超参数的效果,更高效地指导搜索过程;手动调优依赖个人经验,而自动化机器学习(AutoML)旨在通过自动化流程寻找最优配置;进化算法模仿自然选择过程逐步改进超参数,梯度基准化适用于可微分的超参数优化;交叉验证用于准确评估模型泛化能力,同时需要根据任务选择合适的性能指标。在实际应用中,通常会结合这些方法来获取最优的模型性能。6.3有监督学习的性能评价指标如何选择?答:常见的回归性能评价指标有误差平方和(sumofsquaresduetoerror,SSE)、均方误差(meansquarederror,MSE)、均方根误差(rootmeansquareerror,RMSE)、平均绝对误差(meanabsoluteerror,MAE)和决定系数(coefficientofdetermination,R2)。前四个指标是基于拟合误差的,而决定系数是相对于输出值的均值来定义的。均方根误差容易受到少数异常点的影响而变得过大,误差平方和与均方误差也有类似的性质。平均绝对误差具有与预测输出值和真实值相同的量纲,比较直观。决定系数表征在因变量的变异中有多大比例可由其关于自变量的回归模型来解释。常见的分类性能评价指标有如下几种。准确率(Accuracy)准确率是最常用的指标之一,特别是当类别分布基本均衡时,它可以简单地度量模型正确分类样本的比例。(2)精确率(Precision)和召回率(Recall)精确率和召回率通常在面对类别不平衡或关注某个类别时使用。精确率指的是被分类器预测为正例的样本中实际为正例的比例,而召回率指的是所有正例中被分类器正确识别出来的比例。(3)F1值(F1-Score)。F1值是综合考虑了精确率和召回率的指标,可用于比较不同分类器的性能。(4)AUC值AUC是二元分类器性能的另一个重要指标,AUC是ROC曲线下的面积,反映了模型对正反样本的区分能力。适用于处理类别不平衡问题。6.4简述强化学习的主要分支和研究历程。答:强化学习是一种机器学习方法,主要研究如何在一个环境中,通过不断尝试和交互的过程,使Agent学会最优策略以达到某个目标。强化学习发展至今,已经涌现出很多分支。其中比较重要的有以下几个。(1)基于价值的强化学习,此类方法通过学习状态值函数或动作值函数来指导决策,常见的算法包括Q-learning和Sarsa等。(2)基于策略的强化学习,如策略梯度方法,此类方法直接学习策略函数,无需估计值函数,常见的算法包括REINFORCE、Actor-Critic等。(3)深度强化学习,此类方法将深度神经网络应用到强化学习中,以处理高维、非线性、连续动作空间等问题,常见的算法包括DQN、DDPG、A3C等。(4)逆强化学习,此类方法试图从专家的行为中反向推断其奖励函数,以此来理解其行为背后的动机和目标。(5)多Agent强化学习,此类方法研究多个Agent协同或竞争的问题,常见的算法包括马尔可夫博弈、Multi-AgentDeepQ-Learning(MADDPG)等。强化学习的研究历程起源于20世纪50年代到60年代的控制理论和应用研究,随着计算机技术的发展,强化学习开始在计算机科学领域得到广泛关注。20世纪80年代,Sutton和Barto等人提出了经典的强化学习框架,这个框架包括马尔可夫决策过程、价值函数、策略等概念,并提出了基于时序差分(TemporalDifference,TD)算法的Q-learning方法。之后,强化学习在控制、游戏、智能交通、机器人等领域得到了广泛应用。近年来,随着深度学习技术的发展,深度强化学习取得了一系列重要进展,应用于图像处理、自然语言处理、智能对话等方面。6.5试解释强化学习与其他机器学习方法的异同。答:强化学习与其他机器学习方法相比有以下不同。样本提供的信息以及反馈方式不同强化学习与有监督学习和无监督学习的学习方式不同。有监督学习通过训练数据对模型进行有监督的学习;无监督学习则是在没有人工标签的情况下从数据中学习特征。而强化学习不需要数据包含明确目标值或人工标签,而是通过奖励信号来反馈行为的好坏。强化学习需要权衡探索和利用因为强化学习没有训练数据集,所以它需要在环境中进行实时交互以获得经验。这就涉及到了探索和利用之间的权衡。探索是指尝试新的行动以更好地了解环境,而利用是指选择目前已知最优行动以最大化奖励。其他机器学习算法通常只需要在训练过程中做出决策,而不需要在实验环境中进行交互。强化学习适合于时间序列预测强化学习是一种时间序列预测方法,它通过学习如何在连续时间步之间做决策来最大化长期收益。其他机器学习算法通常对每个样本独立进行训练和预测,而不考虑时间序列中相邻样本之间的相关性。强化学习有奖励信号强化学习通过奖励信号来反馈行动的好坏,而其他机器学习算法通常使用损失函数或代价函数来度量模型在训练数据上的性能。总体而言,强化学习与其他机器学习方法区别较大,更适合解决连续的决策问题以及具有长期奖励的任务。它需要在实践中不断探索以学习最优策略,可用于解决很多现实问题,如机器人控制、自然语言处理等。然而,它的一个主要局限是学习过程较慢,并且对参数调整和环境建模较为敏感。6.6基于波士顿房价数据集,建立多元线性回归的房价预测模型,考察回归模型的性能。该数据集是在20世纪70年代收集建立的,包括506个样本,每个样本包括13个特征和一个房价值。数据下载地址为:/ml/machine-learning-databases/housing/housing.data。答:Python参考例程如下。已下载的housing.txt文件保存在本地文件夹中。importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromsklearn.preprocessingimportStandardScaler#加载数据data=pd.read_csv("D:/教学/人工智能/编程实验/机器学习/housing.txt",delim_whitespace=True,header=None)data.columns=['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX','PTRATIO','B','LSTAT','MEDV']#计算相关系数矩阵rho=data.corr(method='pearson')#绘制相关性热图plt.figure(1)plt.imshow(rho,cmap='coolwarm',interpolation='none')plt.colorbar()plt.xticks(range(len(rho)),rho.columns,rotation=90)plt.yticks(range(len(rho)),rho.columns)plt.title('CorrelationCoefficient')plt.xlabel('Features')plt.ylabel('Features')#绘制房价关于各特征的散点图plt.figure(2)foriinrange(4):forjinrange(4):number=4*i+j+1ifnumber>13:breakplt.subplot(4,4,number)plt.scatter(data[data.columns[number-1]],data['MEDV'])plt.xlabel(data.columns[number-1])plt.ylabel('MEDV')plt.tight_layout()#自动调整子图参数,使之填充整个图像区域#将数据划分为特征和标签X=data[['RM','LSTAT']].valuesY=data['MEDV'].values#数据归一化scaler=StandardScaler()X=scaler.fit_transform(X)X=np.hstack((np.ones((X.shape[0],1)),X))#添加偏置项#构建预测模型#采用梯度下降法plt.figure(3)alphas=[0.001,0.003,0.007,0.01,0.05,0.1,0.2]iterations=50m,n=X.shapetheta=np.random.randn(n)J_history=[]forainrange(len(alphas)):alpha=alphas[a]theta=np.random.randn(n)J=np.zeros(iterations)foriterinrange(iterations):H=X.dot(theta)J[iter]=(1/(2*m))*np.sum((H-Y)**2)gradients=(1/m)*X.T.dot(H-Y)theta-=alpha*gradientsJ_history.append(J)plt.subplot(3,3,a+1)plt.plot(range(iterations),J)plt.title(f"alpha={alpha}")plt.xlabel('Iterations')plt.ylabel('Cost')plt.tight_layout()#自动调整子图参数,使之填充整个图像区域#NormalEquation,利用正规方程计算参数值theta1=np.linalg.inv(X.T.dot(X)).dot(X.T).dot(Y)H=X.dot(theta1)J_normal=(1/(2*m))*np.sum((H-Y)**2)#绘制目标函数散点图plt.subplot(3,3,9)plt.scatter(range(iterations),[J_normal]*iterations)plt.title("NormalEquation")plt.xlabel('Iterations')plt.ylabel('Cost')#预测结果与真实值比较Z=np.hstack((X[:,1:],Y.reshape(-1,1)))plt.figure(4)plt.scatter(Y,H,color='blue')plt.plot([min(Y),max(Y)],[min(Y),max(Y)],'g--')plt.xlabel('ActualPrices')plt.ylabel('PredictedPrices')plt.title('ActualvsPredictedPrices')plt.show()变量间相关性热图如下。各变量与房价真实值分布的散点图如下。以误差平方和作为目标函数,下图中前7个子图为学习率分别为0.001、0.003、0.007、0.01、0.05、0.1、0.2时对应的目标函数值随迭代下降过程,最后一个子图显示了最终方程对应的目标函数值。模型拟合结果如下,蓝点为真实值,绿色直线为拟合线。6.7假设某数据集包括三个样本,输入为,输出为(见下表)。对于图中显示的三种线性回归模型,分别计算它们在数据集上的均方误差。输入/输出值023221答:均方误差的计算公式为其中,yi为真实值;f(xi)为预测值;n为样本数。三种线性回归模型分别为将各样本的预测值和真实值代入公式,得到三种模型的均方误差分别为6.5已知如下两类样本,第1类:{(4,2)T,(2,4)T,(2,3)T,(3,6)T,(4,4)T},第2类:{(9,10)T,(6,8)T,(9,5)T,(8,7)T,(10,8)T},每个样本包括两维特征,请利用线性判别分析算法求解该分类问题的判别函数。答:第1步计算均值第2步计算协方差第3步计算类间散度和类内散度第4步求特征值第5步求最大特征值对应的特征向量根据和得到,6.8用线性判别分析、支持向量机和CART决策树算法分别对下表中的数据进行分类。编号特征1特征2标签编号特征1特征2标签1108191170285110158035411120404811122190512611322160638114243207931151617087211618140答:对于二维特征,线性判别分析的思路是将数据投影到一维的新特征空间上,然后选择一个阈值来划分样本属于哪个类别。Python参考例程如下。importnumpyasnpimportmatplotlib.pyplotasplt#数据初始化data=np.array([[10,8,5,8,12,3,9,7,11,15,20,21,22,24,16,18],[8,5,4,1,6,8,3,2,7,8,4,9,16,32,17,14],[1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0]]).Tm,n=data.shape#绘制散点图foriinrange(m):ifdata[i,2]==1:plt.plot(data[i,0],data[i,1],'g*',markersize=7)elifdata[i,2]==0:plt.plot(data[i,0],data[i,1],'ro',markersize=7)#计算均值向量cen1=np.zeros(2)cen0=np.zeros(2)sum1=np.zeros(2)sum0=np.zeros(2)num1=0num0=0foriinrange(m):ifdata[i,2]==1:sum1+=data[i,:2]num1+=1elifdata[i,2]==0:sum0+=data[i,:2]num0+=1cen1=sum1/num1cen0=sum0/num0#计算类内散度矩阵Sw和类间散度矩阵SbSw=np.zeros((2,2))Sb=np.outer(cen0-cen1,cen0-cen1)foriinrange(m):ifdata[i,2]==1:Sw+=np.outer(data[i,:2]-cen1,data[i,:2]-cen1)elifdata[i,2]==0:Sw+=np.outer(data[i,:2]-cen0,data[i,:2]-cen0)#计算最大特征值和特征向量L,D=np.linalg.eig(np.linalg.inv(Sw).dot(Sb))idx=np.argmax(np.abs(L))k=L[idx]/D[idx,idx]#显示投影线xx=np.linspace(-5,30,400)yy=k*xxplt.plot(xx,yy)#计算投影点并显示new_data=np.zeros((m,3))new_data[:,0]=(k*data[:,1]+data[:,0])/(k**2+1)new_data[:,1]=k*new_data[:,0]new_data[:,2]=data[:,2]foriinrange(m):ifnew_data[i,2]==1:plt.plot(new_data[i,0],new_data[i,1],'g+',markersize=7)elifnew_data[i,2]==0:plt.plot(new_data[i,0],new_data[i,1],'r+',markersize=7)plt.axis([-5,30,-5,35])plt.xlabel('x')plt.ylabel('y')plt.show()#初始化正确分类计数器correct_count=0#留一法交叉验证foriinrange(m):#分离出测试点和训练集test_point=data[i,:]train_data=np.delete(data,i,axis=0)#重新计算均值向量cen1=np.zeros(2)cen0=np.zeros(2)sum1=np.zeros(2)sum0=np.zeros(2)num1=0num0=0forjinrange(len(train_data)):iftrain_data[j,2]==1:sum1+=train_data[j,:2]num1+=1eliftrain_data[j,2]==0:sum0+=train_data[j,:2]num0+=1ifnum1>0:cen1=sum1/num1ifnum0>0:cen0=sum0/num0#计算类间散度矩阵SbSb=np.outer(cen0-cen1,cen0-cen1)#计算类内散度矩阵SwSw=np.zeros((2,2))forjinrange(len(train_data)):iftrain_data[j,2]==1:Sw+=np.outer(train_data[j,:2]-cen1,train_data[j,:2]-cen1)eliftrain_data[j,2]==0:Sw+=np.outer(train_data[j,:2]-cen0,train_data[j,:2]-cen0)#计算最大特征值和特征向量L,D=np.linalg.eig(np.linalg.inv(Sw).dot(Sb))idx=np.argmax(np.abs(L))k=L[idx]/D[idx,idx]#计算投影点projected_test_x=(k*test_point[1]+test_point[0])/(k**2+1)projected_test_y=k*projected_test_x#计算距离并分类distance_to_class1=np.sqrt((projected_test_x-cen1[0])**2+(projected_test_y-cen1[1])**2)distance_to_class0=np.sqrt((projected_test_x-cen0[0])**2+(projected_test_y-cen0[1])**2)predicted_label=0ifdistance_to_class0<distance_to_class1else1#检查预测是否正确ifpredicted_label==test_point[2]:correct_count+=1#计算准确率accuracy=correct_count/mprint("Leave-one-outcross-validationaccuracy:",accuracy)样本分布和投影结果如下。对于线性判别器模型进行留一法验证的平均准确率为93.75%。支持向量机是一种常用的二分类模型,通过寻找具有最大间隔的分类超平面以区分不同类别的样本。Python参考例程如下。importnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportsvm#数据和标签data=np.array([[10,8],[8,5],[5,4],[8,1],[12,6],[3,8],[9,3],[7,2],[11,7],[15,8],[20,4],[21,9],[22,16],[24,32],[16,17],[18,14]])labels=np.array([1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0])x,y=11.5,7.5test_data=np.array([x,y])#绘制数据点plt.plot(data[:8,0],data[:8,1],'g*',label='患病')plt.plot(data[8:,0],data[8:,1],'ro',label='不患病')plt.plot(x,y,'b+',label='新个体')plt.legend()plt.show()#留一法交叉验证traindatanum=len(data)correctnum=0foriiinrange(traindatanum):train_data=np.delete(data,ii,axis=0)train_label=np.delete(labels,ii)clf=svm.SVC(kernel='linear')clf.fit(train_data,train_label)predictlabel=clf.predict([data[ii]])[0]ifpredictlabel==labels[ii]:correctnum+=1accuracy=correctnum/traindatanumprint("留一法准确率:",accuracy)#训练最终模型并绘制决策边界clf=svm.SVC(kernel='linear')clf.fit(data,labels)#绘制决策边界xx,yy=np.meshgrid(np.linspace(0,25,500),np.linspace(0,40,500))Z=clf.decision_function(np.c_[xx.ravel(),yy.ravel()])Z=Z.reshape(xx.shape)plt.contourf(xx,yy,Z,levels=[Z.min(),0,Z.max()],colors=['red','green'],alpha=0.8)plt.scatter(data[:8,0],data[:8,1],c='green',marker='*')plt.scatter(data[8:,0],data[8:,1],c='red',marker='o')plt.plot(x,y,'b+')plt.title('SVMDecisionBoundarywithNewDataPoint')plt.xlabel('x')plt.ylabel('y')plt.show()对于支持向量机模型进行留一法验证的平均准确率为81.25%。由于选择了线性核,决策边界是线性的,分类结果如下。CART决策树是一种基于树结构的分类模型,通过递归地将数据集划分为子集并在每个子集上重复进行决策来分类。Python参考例程如下。importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.treeimportDecisionTreeClassifierfromsklearn.model_selectionimporttrain_test_split#设置中文字体plt.rcParams['font.sans-serif']=['SimHei']#用黑体显示中文plt.rcParams['axes.unicode_minus']=False#解决负号'-'显示为方块的问题#数据和标签data=np.array([[10,8],[8,5],[5,4],[8,1],[12,6],[3,8],[9,3],[7,2],[11,7],[15,8],[20,4],[21,9],[22,16],[24,32],[16,17],[18,14]])label=np.array([1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0])x,y=11.5,7.5test_data=np.array([x,y])#新个体的坐标#绘制数据点plt.plot(data[:8,0],data[:8,1],'g+',label='患病')plt.plot(data[8:,0],data[8:,1],'ro',label='不患病')plt.plot(x,y,'b*',label='新个体')plt.legend()#计算训练数据的数目traindatanum=len(data)//2correctnum=0#交叉验证foriiinrange(traindatanum):test_data=data[ii]test_label=label[ii]train_data=np.delete(data,ii,axis=0)train_label=np.delete(label,ii)clf=DecisionTreeClassifier()clf.fit(train_data,train_label)predictlabel=clf.predict([test_data])[0]ifpredictlabel==test_label:correctnum+=1accuracy=correctnum/traindatanumprint("Accuracy:",accuracy)#重新训练模型并绘制决策边界clf=DecisionTreeClassifier()clf.fit(data,label)fig,ax=plt.subplots()ax.plot(data[:8,0],data[:8,1],'gs',label='患病')ax.plot(data[8:,0],data[8:,1],'ro',label='不患病')xx,yy=np.meshgrid(np.arange(0,25,1),np.arange(0,40,1))Z=clf.predict(np.c_[xx.ravel(),yy.ravel()])Z=Z.reshape(xx.shape)ax.contourf(xx,yy,Z,alpha=0.3)plt.xlabel('x')plt.ylabel('y')plt.show()对于CART决策树进行留一法验证的平均准确率为87.5%。决策边界如下。6.9用支持向量机方法构建判断肿瘤是良性还是恶性的分类器,样本特征为肿瘤体积和患者年龄。已知训练集如下表所示,标签为1表示该样本为良性,标签为0表示该样本为恶性。序号123456789101112131415肿瘤体积/cm1.261.31.281.241.361.381.381.381.41.481.541.56年龄/岁535956605960525249555751555562标签111111000000000答:程序基本流程如下:1)导入必要的库:导入numpy用于数组操作,svm模块用于支持向量机分类器,以及LeaveOneOut用于留一法交叉验证。2)定义数据和标签:定义给定的数据和对应的标签。3)创建SVM分类器:使用线性核函数创建一个SVM分类器。4)留一法交叉验证:使用LeaveOneOut进行留一法交叉验证。对于每一个训练/测试分割,训练模型并进行预测,然后检查预测结果是否与实际标签一致。如果一致,则增加正确计数。5)计算准确率:计算并打印留一法交叉验证的准确率。Python例程如下。importnumpyasnpfromsklearnimportsvmfromsklearn.model_selectionimportLeaveOneOutimportmatplotlib.pyplotasplt#数据和标签data=np.array([[1.14,53],[1.18,59],[1.2,56],[1.26,60],[1.3,59],[1.28,60],[1.24,52],[1.36,52],[1.38,49],[1.38,55],[1.38,57],[1.4,51],[1.48,55],[1.54,55],[1.56,62]])labels=np.array([1,1,1,1,1,1,0,0,0,0,0,0,0,0,0])#创建SVM分类器clf=svm.SVC(kernel='linear')#留一法交叉验证loo=LeaveOneOut()correct_count=0fortrain_index,test_indexinloo.split(data):X_train,X_test=data[train_index],data[test_index]y_train,y_test=labels[train_index],labels[test_index]#训练模型clf.fit(X_train,y_train)#预测测试点prediction=clf.predict(X_test)#检查预测是否正确ifprediction==y_test:correct_count+=1#计算准确率accuracy=correct_count/len(data)print("Leave-one-outcross-validationaccuracy:",accuracy)#绘制数据点和决策边界plt.figure(figsize=(8,6))#绘制数据点class_1_points=data[labels==1]class_0_points=data[labels==0]plt.scatter(class_1_points[:,0],class_1_points[:,1],color='blue',marker='o',label='Class1')plt.scatter(class_0_points[:,0],class_0_points[:,1],color='red',marker='x',label='Class0')#获取网格点用于绘制决策边界xx,yy=np.meshgrid(np.linspace(1.1,1.6,500),np.linspace(45,65,500))Z=clf.decision_function(np.c_[xx.ravel(),yy.ravel()])Z=Z.reshape(xx.shape)#绘制决策边界plt.contour(xx,yy,Z,levels=[0],colors='k',linestyles='--')#设置图例和标题plt.legend()plt.title('SVMClassificationwithDecisionBoundary')plt.xlabel('Feature1')plt.ylabel('Feature2')plt.show()采用线性支持向量机构建模型,留一法的平均分类准确率为73.33%。分类边界如下。6.10某银行的历史贷款记录包括用户的4种特征(年龄、银行流水、婚姻状况和房产状况)以及是否给予贷款,用ID3决策树算法建立是否给予贷款的分类模型,用于辅助决策者。银行的历史贷款记录如下表所示。序号年龄银行流水是否结婚拥有房产是否给予贷款1>30高否是否2>30高否否否320~30高否是是4<20中否是是5<20低否是是6<20低是否否720~30低是否是8>30中否是否9>30低是是是10<20中否是是11>30中是否是1220~30中否否是1320~30高是是是14<20中否否否答:Python参考例程如下。这里选择前12个样本用于训练,后2个样本用于测试,根据实际需要可对其进行修改,采用k折交叉验证等方法进行模型分类性能评估。importpandasaspdfromsklearn.treeimport
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江苏省如皋市高二生物下册期末考试试卷【典型题】附答案
- 2026年山东省邹城市高二生物下册期末考试测试卷附答案(黄金题型)
- 2026年海南省琼海市高二生物下册期末考试模拟卷完整附答案
- 2026年浙江省义乌市高二生物下册期末考试考试卷含答案【轻巧夺冠】
- 2026年吉林省和龙市高二生物下册期末考试检测卷及完整答案【历年真题】
- 2025年云南省瑞丽市高二生物下册期末考试模拟卷1套附答案
- 2025年江苏省如皋市高二生物下册期末考试试卷含完整答案【典优】
- 2026年河北省定州市高二生物下册期末考试模拟卷及完整答案(易错题)
- 文物保护工程从业资格考试(责任设计师保护规划)经典试题及答案(2026年株洲)
- 黄冈市注册测绘师考试模拟题及答案(测绘管理与法律法规)(2026年)
- 带电作业安全课件
- YY/T 0107-2024眼科A型超声测量仪
- 某某医院食堂承包投标书
- 湖北省武汉市常青第一中学2025届化学高一下期末经典试题含解析
- 2024年甘肃省天水市中考地理试题卷(含答案)
- GB/T 5683-2024铬铁
- 山西国开2024年《农业经营学》形考1-4答案
- 行政助理聘用协议
- JJG(新) 33-2023 密度类专用玻璃量器
- 店长培训手册
- 高等职业学校建设标准(2022年版)
评论
0/150
提交评论