商务智能课设
《商务智能应用方法》期末课程设计
基于历史数据的天气预测模型
组员:2115090116 卢家业 2115090118 覃庆烽
一、摘要
随着气候变化的加剧和极端天气事件的频发,准确的天气预测变得越来越重要。本文提出了一种基于历史数据的天气预测模型,旨在提高短期和中期天气预报的精度。该模型利用多年的气象观测数据,通过数据清洗、特征提取和机器学习算法,建立了一套完整的预测系统。我们选用了多种算法,包括线性回归、决策树、随机森林和深度神经网络,对比分析其在不同气象条件下的预测性能。研究表明,结合多种算法的集成模型在温度、降水量、风速等指标上的预测精度显著优于单一模型。特别是深度神经网络在处理复杂非线性关系方面表现出色。模型经过交叉验证和实地测试,结果显示其在实际应用中具有较高的可靠性和稳定性。本研究的创新点在于利用历史数据的多样性和丰富性,结合先进的机器学习技术,为天气预测提供了一种有效的解决方案,为相关领域的进一步研究和应用提供了参考依据。
二、研究背景与意义
全球气候变化的加剧和人类活动对环境的影响日益显著,天气预测的重要性愈加凸显。准确的天气预报不仅能够帮助人们合理安 ...
Java
基础语法注释
单行注释:
1//这是单行注释
多行注释:
12/*这是一个多行注释*/
文档注释:
12/**这是文档注释*/
命名
Java 是大小写敏感的
类名:类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写
变量名、方法名、包名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写
常量:所有字母都大写
所有标识符都应该以:字母、美元符或下划线开始。关键字不能用作标识符
修饰符
访问控制修饰符 : public , protected, default, private
public : 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
修饰符
当前类
同一包内
子孙类(同一包)
子孙类(不同包)
其他包 ...
Mysql
小黑框下的操作登录mysql
mysql -u用户名 -p密码 -h要连接的mysql服务器IP地址(默认是127.0.0.1) -p端口号(默认是3306)
退出mysql
exit
quit
卸载mysql
net stop mysql
mysqld -remove mysql
删除mysql目录及相关的环境变量
SQL通用语句
SQL语句可以单行或多行书写,以分号结尾。
MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
单行注释:– 注释或#注释
多行注释:/* 注释 */
DDL
DDL(Data Definition Language)数据定义语言,用来定义数据库对象︰数据库,表,列等
操作数据库
查询:show databases;(查询所有数据库)
select database();(查询当前使用的数据库)
创建:create database 数据库名称;
create database if not exists 数据库名称;
删除:drop database 数据库名称;
drop datab ...
HtmlCssJs
Html排版标签标题标签h
<h1>1级标题</h1>
<h2>1级标题</h2>
<h3>1级标题</h3>
<h4>1级标题</h4>
<h5>1级标题</h5>
<h6>1级标题</h6>
特点:文字都加粗,且逐级减小,独占一行
段落标签p
<p>段落1</p>
<p>段落2</p>
特点:段落之间存在间隙,独占一行
换行标签br
特点:单标签,让文字强制换行
水平分割线标签hr
文本格式化标签
加粗
b或strong
倾斜
i或em
下划线
u或ins
删除线
s或del
媒体标签特点:单标签
图片标签img
<>
<img src=”图片路径” alt=” 替换文本” title=”提示文本“ width=”宽度” height=”高度”>
替换文本:当图片不显示的时候显示的文字
提示文本:当鼠标悬停时显示的文本,title属性不仅仅可以用于图片标签,还可以用于其他标签
宽度和高度只给一个值时,另一个值会等比例缩放
...
Spring
Spring分层解耦
内聚:软件中各个功能模块内部的功能联系。
耦合:衡量软件中各个层/模块之间的依赖、关联的程度。
软件设计原则:高内聚低耦合。
三层架构
controller:表现层,接收前端发送的请求,对请求进行处理,并响应数据。
service:业务逻辑层,处理具体的业务逻辑。
dao:数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增、删、改、查。
控制反转
控制反转:Inversion Of Control,简称IOC。对象的创建控制权由程序自身转移到外部(IOC容器),这种思想称为控制反转(使用对象时,由主动new产生对象转换为由外部提供对象)。
加上@Component注解,即可将当前类交给IOC容器管理,成为IOC容器中的bean
@Componnent的衍生注解,因为@Component往往不会用在三层架构上。
@Controller:标注在控制器类(Controller层)上
@Service::标注在业务类(Service层)上
@Repository:标注在数据访问类上(Dao层)上
注意
使用以上四 ...
Mybatis
Mybatis介绍
MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。
官网:https://mybatis.org/mybatis-3/zh/index.html
https://mybatis.net.cn/getting-started.html
Mybatis入门
准备工作(创建springboot工程、数据库表、实体类)
引入Mybatis的相关依赖,配置Mybatis(数据库连接信息)
相关依赖就是MyBatis Framework和MySQL Driver。如果是springboot工程可以在创建项目时直接勾选即可
基础配置,在resource文件夹下的application文件进行配置
123456789101112#驱动类名称spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver#数据库连接urlspring.datasource.url=jdbc:mysql://localhost:3306/mybatis#连接数据库的用户名spring.datasource.username ...
MybatisPlus
MyBatisPlus建议一些很简单的crud可以用mp写,稍微复杂一点点带各种参数和范围的在dao里面写,很复杂的动态sql就用xml写
介绍
官网:https://mybatis.plus/ 或者https://mp.baomidou.com/
MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率
特性
无侵入︰只做增强不做改变,不会对现有工程产生影响
强大的CRUD操作:内置通用Mapper,少量配置即可实现单表CRUD操作
支持Lambda:编写查询条件无需担心字段写错
支持主键自动生成
内置分页插件
入门案例
导坐标
在dao层对应的接口中写@Mapper,继承BaseMapper<Pojo类>即可
注意事项
数据库的表名要和实体类类名(实体类类名)一样
表中的主键id要改成bigint类型,实体类中的id要改成Long类型
分页查询时要添加分页查询的拦截器
映射匹配兼容性
表中字段名和类中的属性名不一样,在类对应的属性上方添加
@TableField(value=“表中对应的字段名”)
...
Redis
Redis介绍简介
官网:https://redis.io
教程网站:https://redis.net.cn
Redis是一个基于内存的(key-value)结构数据库,也被称为结构化的NoSql数据库。
NoSql(Not Only Sql):泛指非关系型数据库。如:Redis、Mongodb
应用场景:缓存、任务队列、消息队列、分布式锁
数据类型Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型
String:普通字符串,常用
hash:适合存储对象
list:按照插入顺序排序,可以有重复元素
set:无序集合,没有重复元素
sorted set:有序集合,没有重复元素
常用命令String
SET key value:设置指定key的值
GET key:获取指定key的值
SETEX key seconds value:设置指定key的值,并将key的过期时间设为seconds秒
SETNX key value:只有在 key不存在时设置key的值
listRedis列表是简单的字符串列表,按照插入顺序排序
LP ...
Vue-Elementui-Nginx
Vue介绍
Vue是一套前端框架,免除原生JavaScript中的DOM操作,简化书写
框架:是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。基于框架进行开发更加快捷、更加高效
基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定
Vue项目的创建
环境要求:node.js、npm、Vue CLI
使用VueCLI创建前端工程
方式一:vue create 项目名称
方式二:vue ui(推荐)
重点文件目录
配置文件vue.config.js
修改端口号
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true,
devServer: {
port: 7070
}
})
123456789101112131415161718192021 - 配置代理(解决跨越 ...
常见面试题
Java基础字符
操作少量字符数据用 String;单线程操作大量数据用 StringBuilder;多线程操作大量数据用 StringBuffer。
String
String 由 char[] 数组构成,使用了 final 修饰,对 String 进行改变时每次都会新生成一个 String 对象,然后把指针指向新的引用对象。
StringBuffer
StringBuffer可变并且线程安全
StringBuilder
StringBuilder可变但线程不安全。
equalsequals和==
quals是Object的方法,默认比较的是对象的地址值。可以通过重写从而比较的对象的值。如String
“==”是运算符,如果是基本数据类型,则比较存储的值;如果是引用数据类型,则比较所指向对象的地址值。
equals和hashCode
hashCode()默认是通过地址来计算hash码,可以通过重写从而通过对象的值计算hash码
若两个对象相等,他们的hashCode和equals一定相等
hashCode相等的两个对象未必相 ...