规范
构建矩阵规范:
行:样本对象
列:指标
归一化的细节:
全局归一化(量纲相同)
局部归一化(量纲不同)
建模的模型
分析问题的方法
- 5W2H分析法
数学模型问题分类
- 优化类
- 评价类
- 预测类
优化类问题 1.1 数学规划模型 适用情况:要求一些变量有限制后,某一个变量或结果最大或最小,一般是最值问题
包括:线性规划、整数线性规划、非线性规划、多目标规划、动态规划。 (1)线性规划模型:目标函数和约束条件都是线性函数的数学规划模型; (2)整数规划模型:决策变量要求取整数值的线性规划模型; (3)非线性规划模型:目标函数或者约束条件中有非线性函数的数学规划模型; (4)多目标规划模型:具有多个目标函数的数学规划模型
1.2 微分方程组模型 经常适用于人口预测,求最值极值点则为优化的目标
1.3 图论算法 最短路径问题、网络最大流问题、最小费用最大流问题、最小生成树问题(MST)、旅行商问题(TSP)、图的着色问题
评价类问题 2.1 层次分析法
是最基本的评价问题分析方法,能够求出某个因素的权重。以看出指标的影响力。有权重,用层次分析,分析指标 主观性比较强,要自己定指标,所以一般是辅助问题。
2.2 TOPSIS法 TOPSIS法根据有限个评价对象与理想化目标的接近程度进行排序的方法,是在现有的对象中进行相对优劣的评价。 可以加入熵权法分析权重
2.3 主成分分析 在实际问题中,研究多指标(变量)问题是经常遇到的,然而在多数情况下,不同指标之间是有一定相关性。由于指标较多并且指标之间有一定的相关性,势必增加了分析问题的复杂性。 数据降维,方便计算,指标太多,减少点 主成分分析就是设法将原来众多具有一定相关性的指标(比如p个指标),重新组合成一组新的相互无关的综合指标来代替原来指标。通常数学上的处理就是将原来p个指标作线性组合,作为新的综合指标
2.4 模糊评价 运用模糊综合评价法可以有效的 将一些定性指标进行定量化分析 比如,A大坝建设的过程中融资可能出现多个风险因素,而每个风险因素对A大坝的影响程度无法进行精准的量化评估,具有一定的模糊特征。基于此,采用模糊综合评价法对A大坝融资过程中可能发生的不确定性进行量化评估
预测类问题 般的抽象系统,如社会系统、经济系统、农业系统、生态系统等都包含有众多的因素来共同决定了该系统的发展态势,所以系统分析就是要找出哪些是主要因素,那些事次要因素,那些因素对系统发展的影响最大,那些因素对系统发展的影响最小,那些因素对系统发展起推动作用不要强化发展,哪些因素对系统发展起阻碍作用要加以抑制
3.1 回归分析 当样本个数n较大时,一般使用标准化回归,做数据拟合,算参数
3.2 微分方程预测 一般适用于短中期预测。 例如: 传染病的预测模型、经济增长(或人口)的预测模型、Lanchester战争预测模型、药物在体内的分布与排除预测模型、烟雾的扩散与消失模型
构建方程,拟合参数
3.3 主成分分析 3.4 灰色关联分析 作用:给出各个指标和结果,算权重,得到哪个影响力大。 可以是预测也可以是评价某个指标 当样本数n较少时,才使用灰色关联分析。
最后得出的灰色关联度在经过归一化后即为各个指标的权重。 到这一步得出的权重,谁的值大,那么哪个指标对系统的影响就大
3.4 元胞自动机 一般以分子的方式模拟一些情况的变化。有益于当题目中分析不到指标,或者指标太过于抽象和学术时,以分子的形式创建指标。
3.5 神经网络模型 贝叶斯预测模型 小样本情况用贝叶斯预测模型 大样本用神经网络模型比较准确
数据处理
数据清洗
- 异常值(过大,过小,不在范围内,负数)(判断为异常值的标准)
- 空值
- 数据类型
- 结合实际情况
- 重复值
数据整理
- 同类项处理
Python Pandas
dates = pd.date_range('today',periods=6) # 生成日期 从今天开始往后的一共 6 天
df = pd.DataFrame(data_arr, index = index, columns = columns) # 设置 行索引 跟 列标题
# 使用字典格式创建 DataFrame 时,键 是列名称,值 是数据
# 输出数据相关信息
df.info()
print(df.describe())
# 获取 行列 的数据
df.loc(, []) # 通过 行列的标签(index),名称(name) 来获取数据
df.iloc() # 通过 索引 找值 (左闭右开原则)(切片原则)
.isnull() # 判断 为空 的数据
.between(2, 4) # 取 2 到 4 行的数据 (双开区间)
.sum() # 求和
.mean() # 平均
.value_counts() # 每个不同数据的出现次数
.counts() # 数据条数
.sort_values(by=[], ascending=[False, True]) # 排序, False降序, True升序
.replace(a, b) # 将 a 替换为 b (注意数据类型)
# & and