根据数据集选取适当的评价指标并对合理性进行说明;
用三种不同的分类算法与回归算法,进行预测;并以最后10天的数据作为验证;
使用图表对预测结果进行展示,并对预测结果进行分析,包括但不限于结果的意义、合理性等
并且根据结果给出解决方案
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
已结题
代码+预测分析,文件私信发哦(价格可商量)
- ¥40
- 机器学习
收起
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
追加酬金 (90%的用户在追加酬金后获得了解决方案)
当前问题酬金
¥ 40 (您已提供 ¥ 20, 还可追加 ¥ 460)
支付方式
扫码支付
加载中...
4条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
BitGPT 2023-06-14 08:58关注运行结果
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
关注
文件给我一下
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
Jackyin0720 2023-06-11 08:54关注import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler from sklearn.linear_model import LinearRegression from sklearn.svm import SVC from sklearn.neighbors import KNeighborsRegressor from sklearn.ensemble import RandomForestRegressor from sklearn.tree import DecisionTreeRegressor from sklearn.metrics import mean_squared_error, r2_score data = pd.read_csv("data.csv") X = data.drop("target", axis=1) y = data["target"] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) lr = LinearRegression() lr.fit(X_train, y_train) y_pred_lr = lr.predict(X_test) mse_lr = mean_squared_error(y_test, y_pred_lr) r2_lr = r2_score(y_test, y_pred_lr) print("线性回归结果:") print("均方误差:", mse_lr) print("R^2 得分:", r2_lr) svm = SVC(kernel="linear") svm.fit(X_train, y_train) y_pred_svm = svm.predict(X_test) mse_svm = mean_squared_error(y_test, y_pred_svm) r2_svm = r2_score(y_test, y_pred_svm) print("支持向量机结果:") print("均方误差:", mse_svm) print("R^2 得分:", r2_svm) knn = KNeighborsRegressor(n_neighbors=5) knn.fit(X_train, y_train) y_pred_knn = knn.predict(X_test) mse_knn = mean_squared_error(y_test, y_pred_knn) r2_knn = r2_score(y_test, y_pred_knn) print("K最近邻回归结果:") print("均方误差:", mse_knn) print("R^2 得分:", r2_knn) #未完待续,如有帮助,恭请采纳
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容 - 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
yy64ll826 2023-06-13 16:32关注可以参考下
#include<iostream> #include<iomanip> #include<vector> #include<set> #include<stack> using namespace std; class WF{ public: string *VN; //非终结符集 string *VT; //终结符集 string *P; //产生式集 string S; //开始符号 string Token; //待分析串 string *head; //存储产生式->的左半部分 vector<string> *tail;//存储产生式->的右半部分 set<string> *first; //用以存储First集 set<string> *follow;//用以存储Follow集 int length[3]; //记录VN,VT,P的长度 set<string>::iterator tt;//用作iterator读取set集合内容 int **M;//二维数组,可以用存储预测分析表的内容, //某位置没有产生式标记为-1,否则标记为产生式的序列号 void init(){ //init函数用于初始化 char ch; string token; cin>>length[0]; //获得非终结符符集数目 M=new int *[length[0]]; VN=new string[length[0]]; head=new string[length[2]]; tail=new vector<string>[length[2]]; first=new set<string>[length[0]]; follow=new set<string>[length[0]]; for(int i=0;i<length[0];i++) cin>>VN[i]; cin>>length[1]; //获得终结符符集数目 for(int i=0;i<length[0];i++) M[i]=new int[length[1]+1]; VT=new string[length[1]+1]; for(int i=0;i<length[1];i++) cin>> VT[i]; VT[length[1]]="ε"; cin>>length[2]; //获得产生式集数目 P=new string[length[2]]; getline(cin,P[0]); //跳转到下一行 for(int i=0;i<length[2];i++){ getline(cin,P[i]); head[i]=P[i].substr(0,P[i].find(" ")); for(int j=P[i].find(" ")+4;j<P[i].size();j++){ if(P[i][j]==' '){ tail[i].push_back(token); token.clear(); continue; } else{ token+=P[i][j]; } } if(!token.empty()) tail[i].push_back(token); token.clear(); } cin>>S; //获得开始符号 cin>>Token; //获得待分析串 } void getFirstSet(){ //求解其Frist集 int k,l; int firstSetLength[length[0]]; bool flag=true; for(int i=0;i<length[0];i++){ for(int j=0;j<length[2];j++){ if(!VN[i].compare(head[j])){ if(isVT(tail[j][0])){ //cout<<tail[j][0]<<endl; first[i].insert(tail[j][0]); } } } } for(int i=0;i<length[0];i++){ firstSetLength[i]=first[i].size(); } //保存初始长度 do{ flag=false; for(int i=0;i<length[0];i++){//遍历VN for(int j=0;j<length[2];j++){//遍历产生式 if(!VN[i].compare(head[j])){//遇到VN对应产生式 k=0,l=0; while(k<tail[j].size()&&!isVT(tail[j][k])){ for(int loc=0;loc<length[0];loc++) if(!tail[j][k].compare(VN[loc])){ for(tt=first[loc].begin();tt!=first[loc].end();tt++) //添加LOC所定位的非终结符对应的First集\ε if(!(*tt).compare("ε")) k++; else first[i].insert(*tt); break; } if(k>l) l=k;//当前VN的的first集含有ε,继续添加下一个 else break; } if(k==tail[j].size()) first[i].insert("ε"); //对于所有Yi都含有ε的,添加ε到first集 else if(isVT(tail[j][k])){ //添加可以推导出ε部分临近的终结符 first[i].insert(tail[j][k]); } } } } for(int i=0;i<length[0];i++){ if(firstSetLength[i]!=first[i].size()){ firstSetLength[i]=first[i].size(); flag=true; } } }while(flag);//保证各个Frist集不再发生变化 } void getFollowSet(){ //求解其Follow集 set<string> temp; int l,h; int followSetLength[length[0]]; bool flag; for(int i=0;i<length[0];i++) if(!VN[i].compare(S)){ follow[i].insert("#"); break; } for(int i=0;i<length[0];i++){ followSetLength[i]=follow[i].size(); } //保存每个Follow集的长度 do{ flag=false; for(int i=0;i<length[0];i++) for(int j=0;j<length[2];j++) for(int k=0;k<tail[j].size();k++){ temp.clear(); if(!isVT(tail[j][k])){ if((k+1)==tail[j].size()){ int loc=locVN(head[j]); for(tt=follow[loc].begin();tt!=follow[loc].end();tt++){ temp.insert(*tt); } }else if(isVT(tail[j][k+1])){ temp.insert(tail[j][k+1]); }else { l=k+1; h=k+1; while(h<tail[j].size()&&!isVT(tail[j][h])){ int loc=locVN(tail[j][l]); for(tt=first[loc].begin();tt!=first[loc].end();tt++){ if(!(*tt).compare("ε")) h++; else{ temp.insert(*tt); } } if(h>l) l=h; else break; } if(h==tail[j].size()) { int loc=locVN(head[j]); for(tt=follow[loc].begin();tt!=follow[loc].end();tt++) temp.insert(*tt); }else if(isVT(tail[j][h])){ temp.insert(tail[j][h]); } } } for(tt=temp.begin();tt!=temp.end();tt++){ follow[locVN(tail[j][k])].insert(*tt); } } for(int i=0;i<length[0];i++) if(followSetLength[i]!=follow[i].size()){ followSetLength[i]=follow[i].size(); flag=true; } }while(flag);//当Follow集长度不在发生变化时,求解完毕,跳出该循环 } void printPredictionAnalysisTable(){ //对M初始化并输出预测分析表 set<string> temp[length[2]]; int i,j; bool flag; for(i=0;i<length[0];i++) for(j=0;j<=length[1];j++) M[i][j]=-1;//为预测分析表中的状态进行初始化,-1代表 for(i=0;i<length[2];i++){ flag=false; for(j=0;j<tail[i].size();j++){ if(isVT(tail[i][j])){ temp[i].insert(tail[i][j]); break; }else{ int loc=locVN(tail[i][j]); for(tt=first[loc].begin();tt!=first[loc].end();tt++) if((*tt).compare("ε")) temp[i].insert(*tt); else flag=true;//表明当前添加的First集中含有ε,可以继续向下进行 } if(!flag) break; } if(j==tail[i].size()) temp[i].insert("ε"); } for(i=0;i<length[0];i++) for(j=0;j<length[1];j++) for(int loc=0;loc<length[2];loc++) if(!head[loc].compare(VN[i])&&temp[loc].count(VT[j])) M[i][j]=loc; for(int loc=0;loc<length[2];loc++) if(temp[loc].count("ε")){ int k=locVN(head[loc]);//获得VN下标 for(tt=follow[k].begin();tt!=follow[k].end();tt++){ if(!(*tt).compare("#")) M[k][length[1]]=loc; else for(j=0;j<length[1];j++) if(!VT[j].compare(*tt)){ M[k][j]=loc; break; } } } cout<<"预测分析表:\n"<<setw(8)<<left<<" "; for(i=0;i<length[1];i++) cout<<setw(6)<<left<<VT[i]; cout<<"#\n"; cout<<"-----+"; for(i=0;i<=length[1];i++) cout<<"-----+"; for(i=0;i<length[0];i++){ cout<<"\n"<<setw(8)<<left<<VN[i]; for(j=0;j<=length[1];j++){ if(M[i][j]!=-1) cout<<"P"<<setw(5)<<left<<M[i][j]; else cout<<setw(6)<<left<<" "; } } cout<<"\n-----+"; for(i=0;i<=length[1];i++) cout<<"-----+"; } void analyse(string token){ //分析读取的待分析串 stack<string> LL; vector<string> temp; string X; string a; int i=0; int step=1; int loc; bool flag=true; LL.push("#"); LL.push(S);//#和开始符号均入栈 token+='#'; cout<<"\n\n"<<token<<"分析过程:\n"; cout<<"\n初始化:#入栈,"<<S<<"入栈;"; a.clear(); a+=token[i]; while(flag){ X=LL.top(); LL.pop(); cout<<"\n"<<setfill('0')<<setw(3)<<right<<step<<":出栈X="<<X<<",输入c="<<a<<","; if(isVT(X)){ if(!X.compare(a)){ step++; cout<<"匹配,输入指针后移;\n"; a.clear(); a+=token[++i]; }else{ cout<<"ERROR!!"<<endl; break; } }else if(!X.compare("#")){ if(!X.compare(a)){ flag=false;//完成 cout<<"匹配,成功。"<<endl; break; }else{ cout<<"ERROR!!"<<endl; break; } }else if((loc=M[locVN(X)][locVT(a)])!=-1){ step++; cout<<"查表,M[X,c]="<<X<<"->"; for(int j=0;j<tail[loc].size();j++){ cout<<tail[loc][j]; } cout<<",产生式右部逆序入栈(ε不入栈);\n"; for(int j=tail[loc].size();j;j--) if(tail[loc][j-1].compare("ε")) LL.push(tail[loc][j-1]); }else{ cout<<"ERROR!!"<<endl; break; } } } bool isVT(string str){ //判断是否为VT,若是则返回true,否则返回false for(int i=0;i<length[1]+1;i++) if(!str.compare(VT[i])) return true; return false; } int locVN(string str){ //返回VN的位置序号 for(int i=0;i<length[0];i++) if(!str.compare(VN[i])) return i; return -1; } int locVT(string str){ //返回VT的列位置序号,对于符号#返回其为最后一列的序号 for(int i=0;i<length[1];i++) if(!str.compare(VT[i])) return i; if(!str.compare("#")) return length[1]; return -1; } }; int main(){ //实验6程序,输入文件请采用ANSI编码格式,否则无法正常读取!!!!!! WF G; G.init(); //文法初始化 G.getFirstSet(); //获得First集 G.getFollowSet(); //获得Follow集 G.printPredictionAnalysisTable(); //构建并输出预测分析表 G.analyse(G.Token); //输出对G.Token的分析 system("pause"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
提交
- 2018-10-24 10:54回答 3 已采纳 你用户表肯定有区分男女的......私信前判断一下是否一样 一样则FALSE
- 2022-07-16 16:49回答 2 已采纳 用个数组保存莫尔斯码和字符对应上就好了
- 2022-10-10 09:02回答 1 已采纳 发消息可以是要用消息队列呀,mq什么的都可以,并没要求说要在一秒内同时发送几千万数据,可以异步实现
- 2023-06-03 14:51DreamCoders的博客 AI正在改变我们的工作方式,我不想错过充分利用它的机会,所以我尝试了一系列AI工具来节省时间,提高我的工作效率。这里有个集合了600+工具的合集包。除了ChatGPT,那你也会喜欢这些其他的AI工具。
- 2021-08-02 12:06回答 5 已采纳 返回给前段的信息下一次消息id从多少开始查,如图中所示本次接口返回的最近一条私聊信息id为4683,那么该接口下一次请求带上4684那么在查询数据库时就可以带上消息id >= 4684的条件去消
- 2022-12-25 02:09回答 1 已采纳 有人做了吗?
- 2021-02-09 17:38回答 2 已采纳 目前是可以shift+enter换行的~
- 2016-03-09 10:46代立冬的博客 数据分析侠A的成长故事面包君 同学A:22岁,男,大四准备实习,计算机专业,迷茫期作为一个很普通的即将迈入职场的他来说,看到周边的同学都找了技术开发的岗位,顿觉自己很迷茫,因为自己不是那么喜欢钻研写代码,...
- 2019-07-26 11:47回答 3 已采纳 你是要代码还是不知道怎么去实现? 解决的办法有很多种, 1:私信按钮隐藏显示,session获取当前用户性别,循环判断好友列表,性别相同的隐藏私信按钮,或者反之; 2:私信时判断性别,相同时提示
- 2021-11-26 11:02回答 5 已采纳 你的思路很好, 但具体,需要看你的即时通信的处理, 有方法的,你看看他们的对接的文档, 或者,直接点,直接找他们的技术支持
- 2021-05-23 22:17回答 2 已采纳 可以用airtest去做人工模拟操作,电脑插上手机,在电脑运行程序就行了
- 2022-02-18 15:55AI_Plus的博客 二、量子随机数发生器——不可预测性的源泉 表22021年量子随机数发生器研究进展 来源:ICV 三、量子隐形传态—通往量子互联网 表32021年量子隐形传态主要进展 来源:ICV 量子通信产业主要...
- 2022-07-27 14:47回答 8 已采纳 请根据你的数据存储情况修改应用代码中的路径。如果匹配数据文件较多,建议将debug设置为False # -*- coding: utf-8 -*- import os, sys, time impo
- 2021-03-05 09:17明翰弗里曼的博客 下面的所有词汇与例句都是在英国留学期间, 学到的、听到的、见到的,都来自英语母语使用者,其中包括: 学校、同学、教授、教职人员、以及生活中形形色色的人, 这篇文章有助于还没去英国的同学提前掌握一些高频...
- 2021-02-01 09:34赫兹/Herzz的博客 2021最全面、最详细web前端面试题及答案总结 总结不易,希望可以帮助到即将面试或还在学习中的web前端小伙伴,祝面试顺利,拿高薪!...⽂档,不同的渲染模式会影响到浏览器对于 CSS 代码甚⾄ JavaScript
- 没有解决我的问题, 去提问
问题事件
悬赏问题
- ¥15 关于PROCEDURE和FUNCTION的问题
- ¥100 webapi的部署(标签-服务器)
- ¥20 怎么加快手机软件内部计时的时间(关键词-日期时间)
- ¥15 C语言除0问题的检测方法
- ¥15 为什么四分管的内径有的是16mm有的15mm,四分不应该是12.7mm吗
- ¥15 macos13下 ios交叉编译的问题
- ¥15 bgz压缩文件怎么打开
- ¥15 封装dll(引入了pcl的点云设计库)
- ¥30 关于#开发语言#的问题:我需要在抄板的基础上再抄板抄程序,根据RDA8851CM基础上开发
- ¥15 oracle 多个括号,怎么删除指定的括号及里面的内容?