当前位置: 首页 > news >正文

Datawhale_数学建模导论_笔记

task1

6.1

信息的不同形式——“模态”

  • 数值类

  • 文本类

  • 图像类

  • 音频类

  • 信号类

可以用来做数学建模,进行“数化”操作,个人认为是记录(转化为)重要数据信息。

对于一个事物,往往要用不同模态去做描述;也由此出现了“多模态模型”——用于建模

6.2

把混乱、不全面的原始数据处理成有效、有特征的数据

——数据的预处理

  • 数据和特征决定处理效果的上限

  • 模型和算法是为了逼近这个上限

 

对于一个数据集(excel为例)

表格的体量是它有多少行多少列,如果列数超过了行数的1/2就可以说是有些稀疏了,如果列数是行数的3倍那它就是严重稀疏的数据。

 

对缺失数据项的处理1——填充

方法:常数填充、均值填充

 

那些py例子都运行了一遍,了解了pd的DataFrame的对象的用法

.interpolate()

pandas的插值方法,用于填补缺失值

  • 默认线性插值,用前后已知值的平均值来填补

  • 只对数值型数据有效

.astype(int)

把插值后的数据值强制转换成整数类型

import pandas as pd
import numpy as np
"""
data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat','snake', 'cat', 'dog', 'dog'],'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no','yes', 'no', 'no']}
​
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
df = pd.DataFrame(data)
​
#print(df.describe())#只返回数值类型的数据信息——个数、平均之类的内容
​
#print(df.head(5))#前5个数据
​
#print(df[['animal']])#df[[]] / df[]
​
#print(df.loc[[3,4,8], ['animal','age']])#df.loc[行,列]
​
#print(df.loc[df['visits']==3, :])#通过特定行值选行
​
#print(df.loc[df['age'].isna(), :])#同上,这个是选age值为空的
​
df.loc[(df['animal']=='cat'& (df['age']<3), :]
df.loc[(df['age']>=2)&(df['age']<=4), :]
​
#修改
df.index = labels
df.loc[['f'],['age']] = 1.5
​
#求和
df['visits'].sum()
#计平均值
df.groupby(['animal'])['age'].mean()#每种animal的age平均值
"""
​
df = pd.DataFrame({'From_To': ['LoNDon_paris', 'MAdrid_miLAN', 'londON_StockhOlm','Budapest_PaRis', 'Brussels_londOn'],'FlightNumber': [10045, np.nan, 10065, np.nan, 10085],'RecentDelays': [[23, 47], [], [24, 43, 87], [13], [67, 32]],'Airline': ['KLM(!)', '<Air France> (12)', '(British Airways. )','12. Air France', '"Swiss Air"']})
#print(df)
​
df['FllightNumber'] = df['FlightNumber'].interpolate().astype(int)#线性
​
temp = df['From_To'].str.split("_", expand=True)
temp.columns = ['From', 'To']#改列值
​
#首字母大写
temp['From'] = temp['From'].str.capitalize()
temp['To'] = temp['To'].str.capitalize()
#print(temp)
​
#From_To ==> From, To
df.drop('From_To', axis=1, inplace=True)
df[['From', 'To']] = temp
​
#清除特殊字符
df['Airline'] = df['Airline'].str.extract(r'([a-zA-z\s]+)', expand=False).str.strip()
​
​
#比较
print(df['RecentDelays'])
#把RecentDelays中的数组值
delays = df['RecentDelays'].apply(pd.Series)#Series——一维数组,
#把每行的RecenDelays列表展成一维数组
#print(delays)
delays.columns = ['delay_%s' % i for i in range(1, len(delays.columns)+1)]
df = df.drop('RecentDelays', axis=1).join(delays, how='left')#axis=1表示,left表示以原表的行顺序为准
#print(df)
​
#填补平均值
for i in range(1, 4):df[f'delay_{i}'] = df[f'delay_{i}'].fillna(np.mean(df[f'delay_{i}']))
#print(df)
​
#add
print(df)
df = df._append(df.loc[df['FlightNumber'] == 10085, :], ignore_index=True)
print(df)
​
#去重
df = df.drop_duplicates()
print(df)

 

规约方式

min-max规约

==> 实现消除量纲的影响,范围缩为[0,1],减小数据偏差

 

当出现某个非常大的异常数值时,上面的方法会导致数据的分别异常

这时用Z-score规约

——一列数据-其均值,再除以标准差

6.3

  • 回归分析——因变量为连续变量

  • 分类分析——因变量为属性变量

 

假设检验

对假设检验问题进行数理上的检验,bi并给予回答

——这个过程是假设检验,通过样本验证样本所在总体的性质

  • 参数假设检验:用参数来进行操作

  • 非参数假设检验

 

  • 正态性检验

  • 单组样本均值假定检验

  • 两组样本的均值相等性检验

    • 成对检验:

      • 总体服从正态分布,使用成对t检验

      • 不服从,则使用成对wilcoxon秩和检验

  • 方差分析-多组样本间的均值相等性检验

    • 样本间均值的差异程度 / 样本内差异程度

    • 使用kruskalwallis检验(一种非参数检验)

 

随机过程与随机模拟

随机变量的分布情况按照时间变化的性质,通过随机过程来描述

——随机过程 = 随机变量+时间维度

simpy进行仿真

6.4

目的:提高对分析结论时的可读性,同时使信息更全面

学习下面python库的使用

  • Matplotlib

  • Seaborn:对Matplotlib的补充

  • Plotnine:与上面的区别——上面是一笔一笔的画,这个是添加一个图层

基本图标Quick Start

  1. 类别型图表:通常X为类别型数据,Y为数值型数据

  2. 关系型图表:X数值与Y数值之间的关系(数值型关系、层次型关系和网络型关系)

  3. 分布型图表:表达疏密程度的

  4. 时间序列型图表

6.5

线性插值法

通过这个表达式来赋值,建模

 

三次样本插值

两个数据点间填充模式设置为三次多项式,获得一个三次式,满足上面的式子,及其一阶、二阶求导式子,通过这个式子来插值(插补这两个数据点间的数据)

 

拉格朗日插值

 

实现函数

def lagrange(x0,y0,x):y=[]for k in range(len(x)):s=0for i in range(len(y0)):t=y0[i]for j in range(len(y0)):if i!=j:t*=(x[k]-x0[j])/(x0[i]-x0[j])s+=ty.append(s)return y

通过给出的点集,利用拉格朗日函数生成一个x,y的函数(n次)

之后通过给出x直接求y

但可能随着项次的提高,曲线会剧烈振荡,导致插补不准确。

 

文章参考于https://www.datawhale.cn/learn/content/85/3036

http://www.dtcms.com/a/483305.html

相关文章:

  • 【机器人学中的状态估计】2.5.1习题:假设u,v是两个相同维度的列向量,请你证明u^Tv=tr(vu^T)
  • 解决 Anki 启动器下载错误的完整指南
  • 烟台百度做网站多少钱怎么制作钓鱼网站链接
  • 做网站多少钱一般wordpress安装插件需要ftp
  • 网做 网站有哪些基础集团网站建设
  • Cannot resolve plugin org.apache.maven.plugins:maven-jar-plugin:3.2.2 这怎么办
  • 可以用wpf做网站吗附子seo教程
  • 大模型引言
  • 苏华建设集团网站wordpress_域名输入后index of_然后点进取
  • 基于PyTorch的CBOW模型实现
  • 浙江网站建站如何进行电子商务网站推广?
  • 怎么做服务器网站中国半导体设备
  • C++11的特性与新语法(下)
  • 聊城市建设局网站最新清远发布
  • 个人网站 不用备案吗python做网站实例
  • GPIO 引脚速度(Speed)
  • Spring 方法注入机制深度解析:Lookup与Replace Method原理与应用
  • 一套三维研发设计软件可以多人共享的解决方案
  • 网站模板使用网上怎么样挣钱
  • 企业网站设计制作 公司网站建设服务
  • 数据库系统安全机制设立
  • 简述网站建设基本步骤夸克观看免费视频
  • 985建设网站专业网站设计制作服务
  • 单位做网站我的网站要怎样做才能让人家搜到
  • 服务器高效操作指南:Python 环境退出与 Linux 终端快捷键全解析
  • 台州专业网站建设济南莱芜最新消息
  • 网站服务器地址在哪里看通用企业手机网站模板
  • 海口网站模板系统深圳网站建设定制开发
  • 【数据结构——最小生成树与Kruskal】
  • 前端开发中 SCSS 变量与 CSS 变量的区别与实践选择,—— 两种变量别混为一谈