版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年IOI国际信息学奥林匹克模拟试卷(人工智能基础编程)附答案问题1智能社区房价预测(线性回归模型实现)某智能社区需根据房屋特征预测交易价格,给定包含n个样本的训练集,每个样本包含d个特征(如面积、房龄、学区评分等)和一个目标值(价格,单位:万元)。要求通过梯度下降法训练线性回归模型,并对m个测试样本进行价格预测。输入格式第一行包含两个整数n和d,表示训练样本数和特征维度。接下来n行,每行d个浮点数(特征值)和1个浮点数(目标价格),用空格分隔。之后一行包含整数m,表示测试样本数。接下来m行,每行d个浮点数(测试特征值)。输出格式第一行输出d+1个浮点数(模型参数w₀,w₁,...,w_d,保留6位小数),其中w₀为偏置项。第二行输出m个浮点数(测试样本的预测价格,保留2位小数),用空格分隔。样例输入5260.02.0180.085.03.0260.0100.04.0320.0120.03.0350.090.02.0280.0375.02.5110.03.580.02.0样例输出-12.3456793.21000025.678901212.50345.60240.00答案代码(Python)```pythonimportnumpyasnpdefnormalize(X):mean=np.mean(X,axis=0)std=np.std(X,axis=0)std[std==0]=1防止除零return(X-mean)/std,mean,stddeftrain_linear_regression(X_train,y_train,lr=0.01,epochs=1000):n,d=X_train.shapeX=np.hstack((np.ones((n,1)),X_train))添加偏置项w=np.zeros(d+1)for_inrange(epochs):y_pred=X.dot(w)loss=(y_pred-y_train).reshape(-1,1)grad=(2/n)X.T.dot(loss).flatten()w-=lrgradreturnwdefpredict(X_test,w,mean,std):X_test_norm=(X_test-mean)/stdX=np.hstack((np.ones((X_test_norm.shape[0],1)),X_test_norm))returnX.dot(w)读取输入n,d=map(int,input().split())train_data=[list(map(float,input().split()))for_inrange(n)]X_train=np.array([x[:d]forxintrain_data])y_train=np.array([x[d]forxintrain_data])m=int(input())X_test=np.array([list(map(float,input().split()))for_inrange(m)])特征归一化X_train_norm,mean,std=normalize(X_train)训练模型w=train_linear_regression(X_train_norm,y_train,lr=0.001,epochs=5000)预测测试集y_pred=predict(X_test,w,mean,std)输出结果print(''.join(f'{x:.6f}'forxinw))print(''.join(f'{x:.2f}'forxiny_pred))```问题2电商用户价值分类(K近邻算法)某电商平台需根据用户行为数据分类高价值用户(标签1)与普通用户(标签0)。给定n个训练样本(每个样本包含d个特征:月消费额、活跃天数、购物车转化率等),要求实现K近邻(KNN)算法,支持欧氏距离与曼哈顿距离,对m个测试样本分类。输入格式第一行包含三个整数n,d,k,分别表示训练样本数、特征维度、近邻数k(k≤n)。第二行包含一个字符串("euclidean"或"manhattan"),表示距离度量方式。接下来n行,每行d个浮点数(特征值)和1个整数(标签0或1),用空格分隔。之后一行包含整数m,表示测试样本数。接下来m行,每行d个浮点数(测试特征值)。输出格式输出m个整数(测试样本的预测标签,0或1),用空格分隔。若投票平局,优先判为1。样例输入833euclidean1500.0250.31800.0120.102000.0300.41600.080.0501800.0280.351900.0150.1202200.0320.451700.0100.08041600.0260.32750.090.061900.0290.38850.0140.11样例输出1010答案代码(Python)```pythonimportnumpyasnpdefdistance(x1,x2,metric):ifmetric=='euclidean':returnnp.sqrt(np.sum((x1-x2)2))elifmetric=='manhattan':returnnp.sum(np.abs(x1-x2))defknn_predict(X_train,y_train,X_test,k,metric):predictions=[]forxinX_test:dists=[distance(x,x_train,metric)forx_traininX_train]indices=np.argsort(dists)[:k]labels=y_train[indices]count_1=np.sum(labels==1)count_0=k-count_1predictions.append(1ifcount_1>=count_0else0)returnpredictions读取输入n,d,k=map(int,input().split())metric=input().strip()train_data=[list(map(float,input().split()))for_inrange(n)]X_train=np.array([x[:d]forxintrain_data])y_train=np.array([int(x[d])forxintrain_data])m=int(input())X_test=np.array([list(map(float,input().split()))for_inrange(m)])预测predictions=knn_predict(X_train,y_train,X_test,k,metric)输出结果print(''.join(map(str,predictions)))```问题3社交媒体评论情感分析(朴素贝叶斯分类)某社交平台需自动识别用户评论的情感倾向(正面/负面)。给定n条训练评论(已标注情感,1为正面,0为负面),要求实现基于词袋模型的朴素贝叶斯分类器,处理文本时需过滤停用词(停用词表:["的","了","是","在","我","你","他"]),并使用拉普拉斯平滑。输入格式第一行包含整数n,表示训练样本数。接下来n行,每行一个字符串(评论内容,仅包含汉字和空格)和一个整数(情感标签),用|分隔(如:"价格合理服务好|1")。之后一行包含整数m,表示测试样本数。接下来m行,每行一个字符串(测试评论)。输出格式输出m个整数(测试评论的情感标签,0或1),用空格分隔。若概率相等,优先判为1。样例输入6物流快包装好|1价格贵服务差|0客服耐心解决问题|1等待久商品破损|0性价比高值得购买|1发货慢态度差|03包装好客服耐心价格贵等待久性价比高服务好样例输出101答案代码(Python)```pythonimportrefromcollectionsimportdefaultdictstop_words={"的","了","是","在","我","你","他"}defpreprocess(text):words=re.findall(r'[\u4e00-\u9fa5]+',text)提取汉字词return[wordforwordinwordsifwordnotinstop_words]deftrain_naive_bayes(train_data):统计词频和标签分布pos_words=defaultdict(int)neg_words=defaultdict(int)pos_total=0neg_total=0pos_count=0neg_count=0fortext,labelintrain_data:words=preprocess(text)iflabel==1:pos_count+=1forwordinwords:pos_words[word]+=1pos_total+=1else:neg_count+=1forwordinwords:neg_words[word]+=1neg_total+=1计算先验概率total=pos_count+neg_countprior_pos=(pos_count+1)/(total+2)拉普拉斯平滑prior_neg=(neg_count+1)/(total+2)计算条件概率(带拉普拉斯平滑)vocab=set(pos_words.keys()).union(set(neg_words.keys()))cond_pos={}cond_neg={}V=len(vocab)forwordinvocab:cond_pos[word]=(pos_words.get(word,0)+1)/(pos_total+V)cond_neg[word]=(neg_words.get(word,0)+1)/(neg_total+V)returnprior_pos,prior_neg,cond_pos,cond_neg,vocabdefpredict(text,prior_pos,prior_neg,cond_pos,cond_neg,vocab):words=preprocess(text)计算后验概率(对数防止下溢)log_pos=np.log(prior_pos)log_neg=np.log(prior_neg)forwordinwords:ifwordinvocab:log_pos+=np.log(cond_pos.get(word,1e-9))未登录词概率极小log_neg+=np.log(cond_neg.get(word,1e-9))return1iflog_pos>=log_negelse0读取输入n=int(input())train_data=[]for_inrange(n):line=input().strip()text,label=line.split('|')train_data.append((text,int(label)))m=int(input())test_texts=[input().strip()for_inrange(m)]训练模型prior_pos,prior_neg,cond_pos,cond_neg,vocab=train_naive_bayes(train_data)预测predictions=[predict(text,prior_pos,prior_neg,cond_pos,cond_neg,vocab)fortextintest_texts]输出结果print(''.join(map(str,predictions)))```问题4手写数字快速识别(感知机模型)某教育平台需快速识别学生手写数字(0-9),给定n个28×28的灰度图像(像素值0-255,0为白色,255为黑色),要求实现多类感知机模型(一对多策略),对m个测试图像分类。输入格式第一行包含两个整数n,m,表示训练样本数和测试样本数。接下来n行,每行785个整数(前784为像素值,第785为标签0-9)。接下来m行,每行784个整数(测试图像像素值)。输出格式输出m个整数(测试图像的预测标签0-9),用空格分隔。样例输入5300...2550...0300...180255180...0700...255255255...0800...128200128...0100...2550255...092550...0255...00...180255180...00...2550255...0样例输出379答案代码(Python)```pythonimportnumpyasnpclassPerceptron:def__init__(self,n_classes,n_features,lr=0.01,epochs=100):self.n_classes=n_classesself.n_features=n_featuresself.lr=lrself.epochs=epochsself.weights=np.zeros((n_classes,n_features+1))含偏置项deftrain(self,X,y):X=np.hstack((np.ones((X.shape[0],1)),X))添加偏置列for_inrange(self.epochs):forxi,yiinzip(X,y):scores=self.weights.dot(xi)pred=np.argmax(scores)ifpred!=yi:self.weights[yi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供应协议书分析仪厂家
- 收购基金公司合作协议书
- 茯苓种植股东协议书
- 众筹认购协议书
- 行痹针灸病历书写规范
- 协议书离婚再起诉胜诉条件
- 2026山东烟台市中级人民法院招聘聘用制司法辅助人员8人备考题库附参考答案详解(预热题)
- 2026绵阳科达人才安居有限责任公司员工招聘1人备考题库及答案详解一套
- 2026福州鼓楼攀登信息科技有限公司招聘1人备考题库及参考答案详解(培优a卷)
- 2026甘肃甘南州舟曲县城关镇社区卫生服务中心招聘3人备考题库及参考答案详解(b卷)
- 2024-2025学年度金华职业技术学院单招《英语》考试彩蛋押题附答案详解AB卷
- 2026年中诚国际海洋工程勘察设计有限公司公开招聘12名笔试参考题库及答案解析
- 2025年宣城市辅警招聘考试真题(附答案)
- GB/T 47048-2026自然保护地标识通用要求
- 2026年春季人教PEP版四年级下册英语Unit 2 Family rules 教案(共6课时)
- 2025年山东青岛职业技术学院招聘笔试备考试题有答案
- EAST5.0数据结构一览表
- 【民宿空间设计(论文)6200字】
- GB/T 4893.9-1992家具表面漆膜抗冲击测定法
- GB/T 14039-2002液压传动油液固体颗粒污染等级代号
- FZ/T 98008-2011电子织物强力仪
评论
0/150
提交评论