iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >数学建模--数据预处理
  • 950
分享到

数学建模--数据预处理

python算法numpy 2023-09-04 08:09:37 950人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录 一、数据统计 1、行列式的最大元素和最小元素 2、求向量的平均值和中值  3、对矩阵做排序  二、数据优化(数据残缺值和异常值的处理) 1、数据残缺 ①插值 ②拟合  ③邻近替换 ④KNN算法填充 2、数据异常 ①拉依达准则 ②替换异

目录

一、数据统计

1、行列式的最大元素和最小元素

2、求向量的平均值和中值 

3、对矩阵做排序

 二、数据优化(数据残缺值和异常值的处理)

1、数据残缺

①插值

②拟合

 ③邻近替换

④KNN算法填充

2、数据异常

①拉依达准则

②替换异常值

3、数据变换

①0-1标准化

②z-score标准化

③标准化的应用

4、数据离散化

①等宽法

②等频法

三、数据降维

1、主成分分析

①主成分分析简介

②主成分分析计算步骤

③案例分析

 2、因子分析(FA)

①应用场景

②步骤

③模型分析

 ④代码实现


一、数据统计

数据统计一般包括求矩阵最大、最小元素,求矩阵平均值和中值, 矩阵元素求和、求积,矩阵元素累加和与累乘积,求标准方差、相关系数、元素排序等。

直接举例子说明

1、行列式的最大元素和最小元素

命令如下:A=[12,45,58;25,60,-45;56,25,178;2,0,-13];max(A,[],2)        %求每行最大元素ans =        58        60        178        2max(A)             %求每列最大元素ans =56    60   178min(min(A))         %求整个矩阵的最小元素。也可用命令:min(A(:))ans =-45

2、求向量的平均值和中值 

命令如下:x=[10,24,6,-8,0,-12];         %偶数个元素mean(x)                   %求此向量的平均值x =10    24     6    -8     0   -12ans =3.3333median(x)                  %求此向量的中值ans =3

3、对矩阵做排序

命令如下:    A=[0,-11,5;1,15,7;16,9,-20];sort(A)                    %对A的每列按升序排序ans =        0    -11  -20        1     9    5       16    15    7-sort(-A,2)                 %对A的每行按降序排列ans =        5     0   -11       15     7     1       16     9   -20[X,I]=sort(A)               %对A按列排序,并将每个元素所在行号送矩阵IX =       0    -11   -20       1     9     5      16    15     7I =       1     1     3       2     3     1       3     2     2

 二、数据优化(数据残缺值和异常值的处理)

插值和拟合都是数据优化的一种方法,当实验数据不够多时经常需要用到这种方法来画图。在MATLAB中都有特定的函数来完成这些功能。这两种方法的确别在于:

当测量值是准确的,没有误差时,一般用插值;

当测量值与真实值有误差时,一般用数据拟合。

1、数据残缺

①插值

对于一维曲线的插值,一般用到的函数yi=interp1(X,Y,xi,method) ,其中method包括nearstlinearsplinecubic

对于二维曲面的插值,一般用到的函数zi=interp2(X,Y,Z,xi,yi,method),其中method也和上面一样,常用的是cubic

%产生原始数据x=0:0.1:1;y=(x.^2-3*x+7).*exp(-4*x).*sin(2*x);subplot(2,2,1);plot(x,y);title('原始数据');%线性插值xx=0:0.01:1;y1=interp1(x,y,xx,'linear');%subplot(2,2,1)%plot(x,y,'o',xx,y1);%title('线性插值');%最邻近点插值y2=interp1(x,y,xx,'nearest');subplot(2,2,2)plot(x,y,'o',xx,y2);title('最邻近点插值');%三次插值y3=interp1(x,y,xx,'pchip');subplot(2,2,3)plot(x,y,'o',xx,y3);title('三次插值');%三次样条插值y4=interp1(x,y,xx,'spline');subplot(2,2,4)plot(x,y,'o',xx,y4);title('三次样条插值');

经典问题:利用给定的高度补充地图

%插值基点为网格节点clear ally=20:-1:0;x=0:20;z=[0.20.20.20.20.20.20.40.40.30.20.30.20.10.20.20.40.30.20.20.20.2;0.30.20.20.20.20.40.30.30.30.30.40.20.20.20.20.40.40.40.30.20.2;0.20.30.30.20.310.40.50.30.30.30.30.20.20.20.60.50.40.40.20.2;0.20.20.40.211.10.90.40.30.30.50.30.20.20.20.70.30.60.60.30.4;0.20.20.90.71110.70.50.30.20.20.20.60.20.80.70.90.50.50.4;0.20.31111.211.10.80.30.20.20.20.50.30.60.60.80.70.60.5;0.20.4111.11.11.11.10.60.30.40.40.20.70.50.90.70.40.90.80.3;0.20.20.91.11.21.21.11.10.60.30.50.30.20.40.30.710.71.20.80.4;0.20.30.40.91.111.11.10.70.40.40.40.30.50.50.81.10.81.10.90.3;0.30.30.51.21.21.111.20.90.50.60.40.60.60.30.61.20.810.80.5;0.30.50.91.11.111.210.80.70.50.60.40.50.411.30.90.910.8;0.30.50.61.11.2111.10.90.40.40.50.50.80.60.910.50.80.80.9;0.40.50.411.11.210.90.70.50.60.30.60.40.6110.60.910.7;0.30.50.81.11.110.80.70.70.40.50.40.40.50.41.11.30.710.70.6;0.30.50.91.110.70.70.40.60.40.40.30.50.50.30.91.20.810.80.4;0.20.30.60.90.80.80.60.30.40.50.40.50.40.20.50.51.30.610.90.3;0.20.30.30.70.60.60.40.20.30.50.80.80.30.20.20.81.30.90.80.80.4;0.20.30.30.60.30.40.30.20.20.30.60.40.30.20.40.30.80.60.70.40.4;0.20.30.40.40.20.20.20.30.20.20.20.20.20.20.20.50.70.40.40.30.3;0.20.20.30.20.20.30.20.20.20.20.20.10.20.40.30.60.50.30.30.30.2;0.20.20.20.20.20.20.20.20.20.20.20.20.20.20.40.70.40.20.40.50.5];%未插值直接画图figure(1)             %创建图形窗口1,并激活surf(x,y,z);shading flat          %用shading flat命令,使曲面变的光滑title('未插值地形图')xlabel('横坐标')ylabel('纵坐标')zlabel('高度')%三次插值后画图%画地形图figure(2)xi=0:0.05:20;yi=20:-0.05:0;zi=interp2(x,y,z,xi',yi,'cubic');                 %'cubic'三次插值surfc(xi,yi,zi);      %底面带等高线shading flattitle('插值后地形图')xlabel('横坐标')ylabel('纵坐标')zlabel('高度')%画立体等高线图figure(3)contour3(xi,yi,zi);title('立体等高线图')xlabel('横坐标')ylabel('纵坐标')zlabel('高度')%画等高线图figure(4)[c,h]=contour(xi,yi,zi);clabel(c,h);           %用于为2维等高线添加标签colORMap cool         %冷色调title('平面等高线图')xlabel('横坐标')ylabel('纵坐标')

②拟合

对于一维曲线的拟合,一般用到的函数p=polyfit(x,y,n)yi=polyval(p,xi),这个是最常用的最小二乘法的拟合方法。

对于二维曲面的拟合,有很多方法可以实现,这里运用Spline Toolbox里面的函数功能。

x = 0:0.1:1;y = [-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];A = polyfit(x,y,2)   %A为拟合出来的函数z = polyval(A,x);    %求多项式在x处的值zplot(x,y,'k+',x,z,'r')

 ③邻近替换

前/后一个非缺失值将其替换

最近的非缺失值替换

相邻的非离群值线性插值填充

test_data1=fillmissing(test_data,'previous');test_data1=fillmissing(test_data,'next');test_data1=fillmissing(test_data,'nearest');test_data1=fillmissing(test_data,'linear');

④KNN算法填充

from sklearn.metrics import nan_euclidean_distancesimport numpy as npfrom sklearn.impute import KNNImputerX = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]]# python的nan_euclidean_distances函数可计算含空值的距离矩阵nan_euclidean_distances(X, X)# Python用KNNImputer进行空值填充X = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]]imputer = KNNImputer(n_neighbors=2)a = imputer.fit_transform(X)print(a)

2、数据异常

①拉依达准则

拉依达准则是用来发现数据异常值

x=[1, 1.1, 1.2, 1.3, 1.4, 2, 1.2, 1.3, 1.5, 0.9, 0.8, 1.1, 11];inlier = [];outlier = [];len = length(x);average1 = mean(x);  % x中所有元素的均值standard1 = std(x);  % x的标准差for i = 1:len  % 遍历x向量,判断是否为偏离点,不是偏离点则存入inline     if abs(x(i)-average1)= standard2*3       outlier = [outlier x(i)];     endend

②替换异常值

替换方法跟缺失值的替换一致,我们可以直接将其看作缺失值进行处理,替换方法如上。

3、数据变换

①0-1标准化

import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# matplotlib inline# 数据标准化# (1)0-1标准化df = pd.DataFrame({"value1":np.random.rand(10)*20,                  'value2':np.random.rand(10)*100})print(df.head())print('------')# 创建数据def data_norm(df,*cols):    df_n = df.copy()    for col in cols:        ma = df_n[col].max()        mi = df_n[col].min()        df_n[col + '_n'] = (df_n[col] - mi) / (ma - mi)    return(df_n)# 创建函数,标准化数据df_n = data_norm(df, 'value1',  'value2')print(df_n.head())#标准化数据

②z-score标准化

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdf = pd.DataFrame({"value1": np.random.rand(10) * 100,                   'value2': np.random.rand(10) * 100})print(df.head())print('------')# 创建数据def data_Znorm(df, *cols):    df_n = df.copy()    for col in cols:        u = df_n[col].mean()        std = df_n[col].std()        df_n[col + '_Zn'] = (df_n[col] - u) / std  # 平均值/标准差    return (df_n)# 创建函数,标准化数据df_z = data_Znorm(df, 'value1', 'value2')u_z = df_z['value1_Zn'].mean()std_z = df_z['value1_Zn'].std()print(df_z)print('标准化后value1的均值为:%.2f, 标准差为:%.2f' % (u_z, std_z))# 标准化数据# 经过处理的数据符合标准正态分布,即均值为0,标准差为1# 什么情况用Z-score标准化:# 在分类、聚类算法中,需要使用距离来度量相似性的时候,Z-score表现更好

③标准化的应用

# 八类产品的两个指标value1,value2,其中value1权重为0.6,value2权重为0.4# 通过0-1标准化,判断哪个产品综合指标状况最好import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdf = pd.DataFrame({"value1": np.random.rand(10) * 30,                   'value2': np.random.rand(10) * 100},                  index=list('ABCDEFGHIJ'))# print(df.head())# print('------')# 创建数据"def data_norm(df, *cols):    df_n = df.copy()    for col in cols:        ma = df_n[col].max()        mi = df_n[col].min()        df_n[col + '_n'] = (df_n[col] - mi) / (ma - mi)    return df_ndf_n1 = data_norm(df, 'value1', 'value2')# 进行标准化处理df_n1['f'] = df_n1['value1_n'] * 0.6 + df_n1['value2_n'] * 0.4df_n1.sort_values(by='f', inplace=True, ascending=False)df_n1['f'].plot(kind='line', style='--.k', alpha=0.8, grid=True)print(df_n1)# 查看综合指标状况

4、数据离散化

①等宽法

import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 等宽法 → cut方法ages = [20, 22, 25, 27, 21, 23, 37, 31, 61, 45, 41, 32]# 有一组人员年龄数据,希望将这些数据划分为“18到25”,“26到35”,“36到60”,“60以上”几个面元,分成4个区间。bins = [18, 25, 35, 60, 100]cats = pd.cut(ages, bins)print(cats)print(type(cats))print('____')print(cats.codes, type(cats.codes))  # 0-3对应分组后的四个区间,用代号来注释数据对应区间,结果为ndarray;可以查看里边的等级print(cats.cateGories, type(cats.categories))  # 四个区间,结果为indexprint(pd.value_counts(cats))  # 按照区间计数print('-------')# cut结果含有一个表示不同分类名称的层级数组以及一个年龄数据进行标号的代号属性print(pd.cut(ages, [18, 26, 36, 61, 100], right=False))print('-------')# 通过right函数修改闭端,默认为Truegroup_names = ['Youth', 'YoungAdult', 'MiddleAged', 'SeNIOr']print(pd.cut(ages, bins, labels=group_names))print('-------')# 可以设置自己的区间名称,用labels参数df = pd.DataFrame({'ages': ages})group_names = ['Youth', 'YoungAdult', 'MiddleAged', 'Senior']s = pd.cut(df['ages'], bins)  # 也可以 pd.cut(df['ages'],5),将数据等分为5份df['label'] = scut_counts = s.value_counts(sort=False)print(df)print(cut_counts)# 对一个Dataframe数据进行离散化,并计算各个区间的数据计数plt.scatter(df.index, df['ages'], cmap='Reds', c=cats.codes)plt.grid()# 用散点图表示,其中颜色按照codes分类# 注意codes是来自于Categorical对象

②等频法

# 等频法 → qcut方法import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdata = np.random.randn(1000)s = pd.Series(data)cats = pd.qcut(s,4)  # 按四分位数进行切割,可以试试 pd.qcut(data,10)print(cats.head())print(pd.value_counts(cats))print('------')# qcut → 根据样本分位数对数据进行面元划分,得到大小基本相等的面元,但并不能保证每个面元含有相同数据个数# 也可以设置自定义的分位数(0到1之间的数值,包含端点) → pd.qcut(data1,[0,0.1,0.5,0.9,1])plt.scatter(s.index,s,cmap = 'Greens',c = pd.qcut(data,4).codes)plt.xlim([0,1000])plt.grid()# 用散点图表示,其中颜色按照codes分类# 注意codes是来自于Categorical对象

三、数据降维

1、主成分分析

①主成分分析简介

主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息。一般来说,当研究的问题涉及到多变量且变量之间存在很强的相关性时,我们可考虑使用主成分分析的方法来对数据进行简化。

②主成分分析计算步骤

标准化处理

计算标准化样本的协方差矩阵

计算R的特征值和特征向量

计算主成分贡献率以及累计贡献率

写出主成分

根据系数分析主成分代表的意义

③案例分析

主成分分析指标解释案例
主成分分析的一大难点是指标意义模糊,难以解释,下面这个例子可以辅助理解。

在这里插入图片描述

在这里插入图片描述
上表的累计贡献率 = 当前项贡献率 + 之前的累计贡献率。当累计贡献率 > 80%时,剩下的特征向量可以舍弃。

在这里插入图片描述

上面的分析需要一定的语言组织能力,也需要一定运气成分,若难以解释,或者强行解释,或者换方法。

案例参考文章:原文链接:https://blog.csdn.net/qq1198768105/article/details/119898545

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

clear;clc% load data1.mat   % 主成分聚类load data2.mat   % 主成分回归[n,p] = size(x);  % n是样本个数,p是指标个数%% 第一步:对数据x标准化为XX=zscore(x);   % matlab内置的标准化函数(x-mean(x))/std(x)%% 第二步:计算样本协方差矩阵R = cov(X);%% 注意:以上两步可合并为下面一步:直接计算样本相关系数矩阵R = corrcoef(x);disp('样本相关系数矩阵为:')disp(R)%% 第三步:计算R的特征值和特征向量% 注意:R是半正定矩阵,所以其特征值不为负数% R同时是对称矩阵,Matlab计算对称矩阵时,会将特征值按照从小到大排列哦% eig函数的详解见第一讲层次分析法的视频[V,D] = eig(R);  % V 特征向量矩阵  D 特征值构成的对角矩阵%% 第四步:计算主成分贡献率和累计贡献率lambda = diag(D);  % diag函数用于得到一个矩阵的主对角线元素值(返回的是列向量)lambda = lambda(end:-1:1);  % 因为lambda向量是从小大到排序的,我们将其调个头contribution_rate = lambda / sum(lambda);  % 计算贡献率cum_contribution_rate = cumsum(lambda)/ sum(lambda);   % 计算累计贡献率  cumsum是求累加值的函数disp('特征值为:')disp(lambda')  % 转置为行向量,方便展示disp('贡献率为:')disp(contribution_rate')disp('累计贡献率为:')disp(cum_contribution_rate')disp('与特征值对应的特征向量矩阵为:')% 注意:这里的特征向量要和特征值一一对应,之前特征值相当于颠倒过来了,因此特征向量的各列需要颠倒过来%  rot90函数可以使一个矩阵逆时针旋转90度,然后再转置,就可以实现将矩阵的列颠倒的效果V=rot90(V)';disp(V)%% 计算我们所需要的主成分的值m =input('请输入需要保存的主成分的个数:  ');F = zeros(n,m);  %初始化保存主成分的矩阵(每一列是一个主成分)for i = 1:m   ai = V(:,i)';   % 将第i个特征向量取出,并转置为行向量   Ai = repmat(ai,n,1);   % 将这个行向量重复n次,构成一个n*p的矩阵   F(:, i) = sum(Ai .* X, 2);  % 注意,对标准化的数据求了权重后要计算每一行的和end

 2、因子分析(FA)

①应用场景

减少分析变量个数
通过对变量间相关关系的探测,将原始变量分组,即将相关性高的变量分为一组,用共性因子来代替该变量
使问题背后的业务因素的意义更加清晰呈现

②步骤

选择分析的变量

计算所选原始变量的相关系数矩阵

提取公共因子

因子旋转

计算因子得分

③模型分析

 以废气排放为例说明主成分降维处理过程

评价标准体系的构建

因子分析

因子分析首先将原始数据标准化处理,建立相关系数矩 阵并计算其特征值和特征向量,接着从中选择特征值大于等 于1的特征值个数为公共因子数,或者根据因子对X的累计贡献 率大于80%来确定公共因子,求得因子载荷矩阵, 后计算公因子得分和综合得分。

 观察相关系数矩阵表 2,可以发现所选取指标之间存在着一定的相关关系,其中 X3 和 X6、X4 和
X7、 X7 和 X8 分别存在着较强的相关性,相关系数分别为 0.96、 0.96、0.91,这进一步验证了对所选指标做因子分析的科学性和必要性。计算相关系数矩阵的特征值、贡献率及累计贡献率如
所示:

 确定提取的主成分个数可综合考虑 3 个方面:

(1)提取的所有特征值大于某一特定特征值,一般特定值设为 1,本文同样以 1 为标准;

(2) 提取的主成分的累计贡献率要大于 85%,即所提取的主成分要能够概括原有指标的绝大部分信息; 由表 3 可知,前 3 个主成分的累计贡献率已经达到了94.01%,满足按照累计贡献率大于 85% 确定主成分个数的原则;

(3) 以做主成分分析时生成的碎石图 (Scree Plot) 做参考,碎石图是按照特征值大小排列的,以特征值为纵坐标、因子数为横坐标生成的主成分散点图,有明显的拐点,一般取拐点前所有的因子及拐点后第一个因子作为主成分 。
观察图 4 可得,第一、第二个主成分的特征值较大,其余几个均较小,碎石图在第三个特征值出现
拐点。
根据上述分析,在本研究中选取前 3 个主成分对河南省水资源使用情况进行动态分析,从表 3
和 4,我们可以看出前 3 个主成分已经能够概括绝大部分的原始信息,因此提取 3 个主成分因子是
合理的. 提取 3 个主成分用于概括原有 10 个指标的绝大部分信息,这既达到了降维、简化的目的,又在一定程度上保证了后续研究结果能准确有效地反映出河南省水资源使用情况动态变化的基本特征。计算主成分的载荷矩阵, 主成分载荷是指提取的 3 大主成分与各变量指标之间的相关系数如表4:

 ④代码实现

clc,clearr=[1.000 0.577 0.509 0.387 0.4620.577 1.000 0.599 0.389 0.3220.509 0.599 1.000 0.436 0.4260.387 0.389 0.436 1.000 0.5230.462 0.322 0.426 0.523 1.000];%下面利用相关系数矩阵求主成分解,val的列为r的特征向量,即主成分的系数[vec,val,con]=pcacov(r);%val为r的特征值,con为各个主成分的贡献率f1=repmat(sign(sum(vec)),size(vec,1),1); %构造与vec同维数的元素为±1的矩阵vec=vec.*f1; %修改特征向量的正负号,每个特征向量乘以所有分量和的符号函数值f2=repmat(sqrt(val)',size(vec,1),1);a=vec.*f2 %构造全部因子的载荷矩阵a1=a(:,1) %提出一个因子的载荷矩阵tcha1=diag(r-a1*a1') %计算一个因子的特殊方差a2=a(:,[1,2]) %提出两个因子的载荷矩阵tcha2=diag(r-a2*a2') %计算两个因子的特殊方差ccha2=r-a2*a2'-diag(tcha2) %求两个因子时的残差矩阵gong=cumsum(con) %求累积贡献率   clc,clearload data.txt; %把原始数据保存在纯文本文件data.txt中n=size(data,1);x=data(:,1:4); y=data(:,5); %分别提出自变量x和因变量y的值——————————————————————————————————如果不需要检验,则不需要把y列入原始数据中,把矩阵x的大小改变一下,以及下文中的m,m为原始数据中变量的个数。——————————————————————————————————m=4;%m为变量的个数x=zscore(x); %数据标准化r=cov(x); %求标准化数据的协方差阵,即求相关系数矩阵[vec,val,con]=pcacov(r); %进行主成分分析的相关计算c=cumsum(con);i=1;while ((c(i)<90)&(con(i+1)>10))    i=i+1;endnum=i;f1=repmat(sign(sum(vec)),size(vec,1),1);vec=vec.*f1; %特征向量正负号转换f2=repmat(sqrt(val)',size(vec,1),1);a=vec.*f2; %求初等载荷矩阵am=a(:,1:num); %提出num个主因子的载荷矩阵[b,t]=rotatefactors(am,'method', 'varimax'); %旋转变换,b为旋转后的载荷阵bt=[b,a(:,num+1:end)]; %旋转后全部因子的载荷矩阵contr=sum(bt.^2); %计算因子贡献rate=contr(1:num)/sum(contr); %计算因子贡献率fprintf('综合因子得分公式:F=');for i=1:num    fprintf('+%f*F%d',rate(i),i);endfprintf('\n');coef=inv(r)*b; %计算得分函数的系数coef=coef';for i=1:num    fprintf('各个因子得分函数为F%d=',i);    for j=1:m        fprintf('+(%f)*x_%d',coef(i,j),j);    end    fprintf('\n');end%如果仅仅因子分析,程序到此为止%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%score=x*coef';%计算各个因子的得分weight=rate/sum(rate); %计算得分的权重Tscore=score*weight'; %对各因子的得分进行加权求和,即求各企业综合得分[STscore,ind]=sort(Tscore,'descend'); %对企业进行排序display=[score(ind,:)';STscore';ind']; %显示排序结果fprintf('排序结果如下:');for i=1:num    fprintf('第%d行为F%d得分,',i,i);endfprintf('第%d行为综合因子得分,第%d为原序列\n',num+1,num+2);disp(display);[ccoef,p]=corrcoef([Tscore,y]); %计算F与资产负债的相关系数[d,dt,e,et,stats]=regress(Tscore,[ones(n,1),y]);%计算F与资产负债的方程fprintf('因子分析法的回归方程为:F=%f+(%f*y)',d(1),d(2));if (stats(3)<0.05)%判断是否通过显著性检验的结果    fprintf('\n在显著性水平0.05的情况下,通过了假设检验。\n');else    fprintf('\n在显著性水平0.05的情况下,通不过假设检验。\n');end该MATLAB源代码的displsy为最终排序结果。

来源地址:https://blog.csdn.net/m0_58585940/article/details/127664157

--结束END--

本文标题: 数学建模--数据预处理

本文链接: https://www.lsjlt.com/news/393259.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数学建模--数据预处理
    目录 一、数据统计 1、行列式的最大元素和最小元素 2、求向量的平均值和中值  3、对矩阵做排序  二、数据优化(数据残缺值和异常值的处理) 1、数据残缺 ①插值 ②拟合  ③邻近替换 ④KNN算法填充 2、数据异常 ①拉依达准则 ②替换异...
    99+
    2023-09-04
    python 算法 numpy
  • 数据预处理方法整理(数学建模)
    这篇文章主要是整理了一些作者在各种建模比赛中遇到的数据预处理问题以及方法,主要针对excel或csv格式的数据,为后续进行机器学习或深度学习做前期准备 数据清洗 导入库和文件,这里使用的是绝对路径,可改为相对路径 import pandas...
    99+
    2023-09-10
    python 数据分析 机器学习 深度学习 cnn
  • Kylin如何进行数据建模和数据预处理
    Kylin 是一个开源的分布式分析引擎,专为交互式OLAP(联机分析处理)而设计。Kylin主要用于处理海量数据,并提供高效的多维分...
    99+
    2024-04-02
  • 数学建模--预测类模型
    目录 一、中短期预测 1、灰色预测法 ①适用范围 ②模型实现  2、回归分析 ①适用范围 ②模型实现  3、时间序列分析 ①自适应滤波法 ②指数平滑法 ③移动平均法 4、微分方程 二、长期预测 1、神经网络预测 2、logistic模型 ①...
    99+
    2023-09-03
    python matlab 数据分析
  • python数据预处理
    Ⅰ.数据源 Ⅱ.导入库 import pandas as pdimport numpy as npfrom scipy import statsimport matplotlib.pyplot a...
    99+
    2023-09-21
    python 数据分析
  • 数学建模系列-预测模型(一)灰色预测模型
    目录 1 灰色预测模型 1.1 灰色系统的定义与特点 1.2 灰色预测模型优缺点 1.3 灰色生成数列 1.4 灰色模型GM(1,1)实操步骤 1 数据检验 2 构建灰色模型 3 检验预测值 4 灰色预测模型实例代码 目前我们学习预测...
    99+
    2023-08-31
    人工智能 python
  • 数学建模:ARMA时间序列预测
    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 ARMA预测 时间序列是按时间顺序的一组数字序列 时间序列的特点: 现实的、真实的一组数据,时间序列背后是某一现象的变化规律,时间序列预测就是学习之前的规律来预测后面的值 算法流...
    99+
    2023-08-30
    数学建模
  • 数据挖掘(2.3)--数据预处理
    目录 三、数据集成和转换 1.数据集成  2.数据冗余性  2.1 皮尔森相关系数 2.2卡方检验  3.数据转换 四、数据的规约和变换 1.数据归约 2数据离散化 三、数据集成和转换 1.数据集成  数据集成是将不同来源的数据整合...
    99+
    2023-09-10
    人工智能 python 数据挖掘 数据分析
  • 数学建模系列-预测模型(四)马尔可夫预测
    目录 1 Markov模型含义 2 模型分析 3 应用题型  3.1 问题分析 3.2 模型建立 4 Markov模型优缺点 1 Markov模型含义         马尔可夫(Markov)预测法,就是一种关于事件发生的概率预测方法...
    99+
    2023-09-07
    人工智能 python
  • torchvision.transforms 数据预处理:ToTensor()
    文章目录 1、ToTensor() 函数的作用2、读取图像时 PIL 和 opencv 的选择2.1 使用 PIL2.2 使用 opencv 3、ToTensor() 的使用3.1 关键...
    99+
    2023-10-08
    python numpy pytorch
  • C++技术中的大数据处理:如何使用机器学习算法进行大数据预测和建模?
    利用 c++++ 中的机器学习算法进行大数据预测和建模包括:使用分布式处理库(如 spark)处理大数据集。使用智能指针和引用计数管理内存。利用多线程提高性能。常见的机器学习算法包括:线...
    99+
    2024-05-12
    机器学习 大数据处理 apache c++
  • 使用C++训练机器学习模型:从数据预处理到模型验证
    在 c++++ 中训练 ml 模型涉及以下步骤:数据预处理:加载、转换并工程化数据。模型训练:选择算法并训练模型。模型验证:划分数据集,评估性能,并调整模型。通过遵循这些步骤,您可以成功...
    99+
    2024-05-11
    机器学习 c++
  • 头歌:数据预处理之数据清洗
    本关任务:完成泰坦尼克号遇难数据的清洗。   案例背景 泰坦尼克号遭遇的灾难震惊世界,如何避免灾难甚至预测灾难呢? 要实现首先要做好泰坦尼克号的损失数据统计,才能为数据分析打下基础。 编程要求 根据提示,你需要完成: 缺失值填充离群点检测 ...
    99+
    2023-10-07
    python 开发语言
  • 初学python数学建模之数据导入(小白篇)
    目录1. 数据导入是所有数模编程的第一步2. 在程序中直接向变量赋值2.1 为什么直接赋值?2.2 直接赋值的问题与注意事项例程 1:将数据导入作为单独的函数例程 2:将数据导入集中...
    99+
    2024-04-02
  • 波士顿房价数据集进行数据预处理和模型训练(Python)
    目录 前言 一、数据预处理定义 二、波士顿房价数据进行数据预处理 2.1 下载波士顿房价数据集  2.2 查看数据集的描述、特征及数据条数、特征数量 2.3 将数据读入pandas的DataFrame并转存到csv文件 2.4 查看数据...
    99+
    2023-10-08
    python 人工智能 scikit-learn 数据预处理
  • 怎么用Python做数据预处理
    这篇文章给大家介绍怎么用Python做数据预处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前戏在拿到一份数据准备做挖掘建模之前,首先需要进行初步的数据探索性分析(你愿意花十分钟系统了解数据分析方法吗?),对数据探索...
    99+
    2023-06-02
  • Chainer怎么实现数据增强和数据预处理
    Chainer提供了一系列内置的数据增强和数据预处理函数来帮助用户实现数据增强和数据预处理。以下是一些常用的方法: 数据增强: ...
    99+
    2024-04-02
  • CNTK怎么实现数据增强和数据预处理
    CNTK(Microsoft Cognitive Toolkit)是一个深度学习框架,可以使用一些技术来实现数据增强和数据预处理。以...
    99+
    2024-04-02
  • Python数学建模StatsModels统计回归模型数据的准备
    目录1、读取数据文件(1)读取 .csv 文件:(2)读取 .xls 文件:(3)读取 .txt 文件:2、数据文件的拆分与合并(1)将 Excel 文件分割为多个文件(2)将 多个...
    99+
    2024-04-02
  • 有哪些数据预处理的方法
    今天就跟大家聊聊有关有哪些数据预处理的方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。数据预处理的方法有:1、数据清理,通过填写缺失的值、光滑噪声数据、识别或删除离群点并解决不一致...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作