精华内容
下载资源
问答
  • 复杂的缺失值填补方法,会考虑到数据的整体情况,然后在对有缺失值的数据进行填充,本小节将会介绍3种复杂的缺失值填补方法。数据准备## 输出高清图像%config InlineBackend.figure_format = 'retina'%matplotlib ...

    复杂的缺失值填补方法,会考虑到数据的整体情况,然后在对有缺失值的数据进行填充,本小节将会介绍3种复杂的缺失值填补方法。

    数据准备

    ## 输出高清图像%config InlineBackend.figure_format = 'retina'%matplotlib inline## 图像显示中文的问题import matplotlibmatplotlib.rcParams['axes.unicode_minus']=Falseimport seaborn as sns sns.set(font= "Kaiti",style="ticks",font_scale=1.4)## 导入本小节会使用到的包import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns import missingno as msno from sklearn.impute import IterativeImputerfrom sklearn.impute import KNNImputerfrom missingpy import MissForest## 读取用于演示的数据集oceandf = pd.read_csv("data/chap2/热带大气海洋数据.csv")## 判断每个变量中是否存在缺失值pd.isna(oceandf).sum()Year               0Latitude           0Longitude          0SeaSurfaceTemp     3AirTemp           81Humidity          93UWind              0VWind              0dtype: int64

    IterativeImputer多变量缺失值填补

        IterativeImputersklearn库中提供的一种缺失值填补方式,该方法会考虑数据在高维空间中的整体分布情况,然后在对有缺失值的样本进行填充。针对该方法,可以使用下面的程序进行缺失值填充,并将填充的结果可视化,可视化的图像如图1所示。

    ## IterativeImputer多变量缺失值填补方法iterimp = IterativeImputer(random_state = 123)oceandfiter = iterimp.fit_transform(oceandf)## 获取填充后的变量AirTemp = oceandfiter[:,4]Humidity = oceandfiter[:,5]## 可视化填充后的结果plt.figure(figsize = (10,6))plt.scatter(AirTemp[~nanaindex],Humidity[~nanaindex],            c = "blue",marker = "o",label = "非缺失值")plt.scatter(AirTemp[nanaindex],Humidity[nanaindex],            c = "red",marker = "s",label = "缺失值")plt.grid()plt.legend(loc = "upper right",fontsize = 12)plt.xlabel("AirTemp")plt.ylabel("Humidity")plt.title("使用IterativeImputer方法填充")plt.show()

    b5d5713cf1977298a83cdb434e55cbc7.png

    图1 IterativeImputer方法填充缺失值

    K近邻缺失值填补

        K近邻缺失值填补方法,是非常有名的复杂缺失值填补方式之一,该方法会利用带有缺失值样本的多个近邻的综合情况,对带有缺失值的样本进行填充,该方法可以使用sklearn库中的KNNImputer来完成,使用KNNImputer进行缺失值填补,并将结果可视化的程序如下所示,运行程序后可获得如图2所示的图像。

    ## KNNImputer缺失值填补方法knnimp = KNNImputer(n_neighbors = 5)oceandfknn = knnimp.fit_transform(oceandf)## 获取填充后的变量AirTemp = oceandfknn[:,4]Humidity = oceandfknn[:,5]## 可视化填充后的结果plt.figure(figsize = (10,6))plt.scatter(AirTemp[~nanaindex],Humidity[~nanaindex],            c = "blue",marker = "o",label = "非缺失值")plt.scatter(AirTemp[nanaindex],Humidity[nanaindex],            c = "red",marker = "s",label = "缺失值")plt.grid()plt.legend(loc = "upper right",fontsize = 12)plt.xlabel("AirTemp")plt.ylabel("Humidity")plt.title("使用KNNImputer方法填充")plt.show()

    d0effcf58ef9db22e9c42036d2284aaf.png

    2 K近邻缺失值填补

    MissForest缺失值填补

        针对带有缺失值的数据,也可以使用随机森林方法进行缺失值填补。该方法会利用随机森林的思想,进行缺失值填充,也是一种考虑数据整体情况的缺失值填补方法。该方法可以使用missingpy库中的MissForest完成。可以使用下面的程序进行MissForest缺失值填充,运行程序后可获得如图3所示的图像。

    ## MissForest缺失值填补方法forestimp = MissForest(n_estimators = 100,random_state = 123)oceandfforest = forestimp.fit_transform(oceandf)## 获取填充后的变量AirTemp = oceandfforest[:,4]Humidity = oceandfforest[:,5]## 可视化填充后的结果plt.figure(figsize = (10,6))plt.scatter(AirTemp[~nanaindex],Humidity[~nanaindex],            c = "blue",marker = "o",label = "非缺失值")plt.scatter(AirTemp[nanaindex],Humidity[nanaindex],            c = "red",marker = "s",label = "缺失值")plt.grid()plt.legend(loc = "upper right",fontsize = 12)plt.xlabel("AirTemp")plt.ylabel("Humidity")plt.title("使用MissForest方法填充")plt.show()

    9e961cfff3041d341368e5abdf6e2ce1.png

    图3 MissForest缺失值填充

          在上面介绍的三种复杂数据填充方法中,在缺失值填充时,都有考虑数据的整体分布情况,所以在进行缺失值填充时会有更好的填充效果。

    使用的数据获取链接:

    链接: https://pan.baidu.com/s/1sOZwLHa-Fut2Yj-1YpXwOw 提取码: tiya

    关注我们:

    5f250a48b8aed00978d17cfde2496c70.png

    展开全文
  • 在我们进行数据分析时,通常会遇到各种数据缺失...对某一列的缺失值,采用该列的平均值填充 df.fillna(method=a.mean(),inplace=True) 此处重点讲解一下fillna的参数,后面不做说明 fillna(value=None, method=...

    在我们进行数据分析时,通常会遇到各种数据缺失的情况,针对这种情况我们该如何进行填补呢?

    1、人工填补

    该方法仅适用于小数据集,受个人因素影响。

    2、平均值填补

    对某一列的缺失值,采用该列的平均值填充

    df.fillna(method=a.mean(),inplace=True)

    此处重点讲解一下fillna的参数,后面不做说明

    fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
    #value:固定值,可以用固定数字、均值、中位数、众数等,此外还可以用字典,series等形式数据;
    #method:填充方法,'bfill','backfill','pad','ffill'
    #axis: 填充方向,默认0和index,还可以填1和columns
    #inplace:在原有数据上直接修改
    #limit:填充个数,如1,每列只填充1个缺失值
    

     

    3、临近值填补

    对每一列的缺失值,采用临近位置的数据进行填充。

    #使用每列缺失值前面的值进行填充(按相应列填充,按照相应index前后填充)
    df.fillna(method='ffill',inplace=True)
    df.fillna(method='pad',inplace=True)
    #使用每列缺失值后面的值进行填充(按相应列填充,按照相应index前后填充)
    df.fillna(method='backfill',inplace=True)
    df.fillna(method='bfill',inplace=True)
    #使用每列缺失值前面的值进行填充(按相邻列填充,按照相应columns前后填充)
    df.fillna(method='ffill',inplace=True,axis=1)
    df.fillna(method='pad',inplace=True,axis='columns')
    #使用每列缺失值后面的值进行填充(按相邻列填充,按照相应columns前后填充)
    df.fillna(method='backfill',inplace=True,axis=1)
    df.fillna(method='bfill',inplace=True,axis='columns')

    对每一列的缺失值,采用临近位置上下两个值的平均值来填充

    #上下两个值的平均值进行填充
    df=df.fillna(df.interpolate())
    #在此详细介绍下interpolate函数的参数:'nearest', 'zero', 'slinear', 'quadratic', 'cubic', 'spline', 'barycentric', 'polynomial'

    4、中位数填补

    对每列的数值采用中位数进行填补

    df.fillna(df.median(),inplace=True)

    5、众数填补

    对每列数值采用众数填补

    df.fillna(df.mode(),inplace=True)

    6、回归填补

    对于有缺失值的特征值,将已知特征值代入模型来估计未知特征值,以此估计值来进行填充,该填充方法适用于缺失值为定量的数据类型。

    from sklearn.experimental import enable_iterative_imputer
    from sklearn.impute import IterativeImputer
    #data为缺失的数据集
    imp = IterativeImputer(max_iter=10, random_state=0)
    imp.fit(data)  
    
    print(np.round(imp.transform(data)))

    7、热平台填补

    热平台插补又被称为热卡插补,是从每一缺失数据的估计分布抽取插补值来取代缺失值,使用回答单元中的抽样分布作为抽样分布是常见的方法。热卡插补包括随机抽样插补、分层热卡插补、最近距离热卡插补和序贯热卡插补。

    随机抽样插补。缺失值为Missing Completely at Random,MCAR,即完全随机缺失的情况下,对某个确实字段进行简单随机抽样、限制对回答单元的使用次数、对回答单元进行排序并进行抽样;

    分层热卡填补。首先按照某些辅助变量对y进行分层,然后对分层的数据进行热卡插补;

    最近距离热卡插补。利用辅助变量,定义一个测量单元间距离的函数,在变量y的无回答单元临近的回答单元中,选择满则设定的距离条件的辅助变量中的单元所对应的变量y的回答单元作为插补值。由于使用较为复杂的距离函数,很难对插补后的均值和方差等估计量的性质进行考察;

    序贯热卡填充。基于最近距离热卡插补来实现的,首先对数据分层,在每层中按照选定的某个辅助变量排序,并在其前后相邻的10个数据中,找到是的设定的某一个距离函数的值达到最小的单元,使用该单元对应的变量y的回答单元作为插补值。

    8、冷平台填补

    从以前的调查中或其他信息来源中获得,如历史数据。

    9、极大似然估计

    缺失类型为随机缺失的条件下,假设模型对于完整的样本是正确的,那么通过观测数据的边际分布可以对未知参数进行极大似然估计。这种方法也被称为忽略缺失值的极大似然估计,对于极大似然的参数估计实际中常采用的计算方法是期望值最大化。该方法适用于大样本。

    10、k均值聚类法

    该方法又被称为K最近距离邻法。实现方式为:采用k-means聚类将所有样本进行聚类划分,然后再通过划分的种类的均值对各自类中的缺失值进行填补。

    11、随机森林填补

    采用随机森林来对缺失值进行拟合。

    from  sklearn import ensemble
    from sklearn.preprocessing import LabelEncoder
    def set_missing(df,estimate_list,miss_col):
        """df要处理的数据帧,estimate_list用来估计缺失值的字段列表,miss_col缺失字段名称;会直接在原来的数据帧上修改"""
        col_list=estimate_list
        col_list.append(miss_col)   
        process_df = df.loc[:,col_list]
        class_le= LabelEncoder()
        for i in col_list[:-1]:
            process_df.loc[:,i]=class_le.fit_transform(process_df.loc[:,i].values)
        # 分成已知该特征和未知该特征两部分
        known=process_df[process_df[miss_col].notnull()].values
        known[:, -1]=class_le.fit_transform(known[:, -1])
        unknown = process_df[process_df[miss_col].isnull()].values
        # X为特征属性值
        X = known[:, :-1]
        # y为结果标签值
        y = known[:, -1]
        # fit到RandomForestRegressor之中
        rfr = ensemble.RandomForestRegressor(random_state=1, n_estimators=200,max_depth=4,n_jobs=-1)
        rfr.fit(X,y)
        # 用得到的模型进行未知特征值预测
        predicted = rfr.predict(unknown[:, :-1]).round(0).astype(int)
        predicted=class_le.inverse_transform(predicted)
    #     print(predicted)
        # 用得到的预测结果填补原缺失数据
        df.loc[(df[miss_col].isnull()), miss_col] = predicted
        return df
    
    #还可以用决策树做拟合
    from sklearn import tree
    dt=tree.DecisionTreeRegressor()
    dt.fit(X,y)
    predicted = clf.predict(unknown[:, :3]).round(0)
    predicted=class_le.inverse_transform(predicted)
    print(predicted)

    12、趋势得分法

    13、马尔科夫链蒙德洛夫法

    14、随机回归填补

    15、增加虚拟变量

    在原有数据集上增加一个字段。判断特征值是否有缺失值来定义一个新的二分类变量

    展开全文
  • 基于改进的随机森林的缺失值填补,王科昊,张忠宝,缺失值数据对于自然数据研究领域是一个常见的数据异常,该异常极大影响了对数据样本理解。由于目前研究多基于单一领域数据进行缺
  • 数据预处理第4讲:缺失值填补

    千次阅读 2020-02-17 11:43:39
    论文合作、课题指导请联系QQ2279055353 很多真实的数据集包括缺失值,这些缺失项通常编码为空,NaN, 或其它占位符。...下面,我们介绍常用的缺失值填补方法。 单特征填补 单特征填补,是用缺失项所...

    论文合作、课题指导请联系QQ2279055353

    很多真实的数据集包括缺失值,这些缺失项通常编码为空,NaN, 或其它占位符。对待含缺失值的数据集,常见的处理办法是去掉缺失项所在的整行或整列。然而,这种办法的代价是失去了可能有信息的观测或变量。这样,一种更好的策略是填补缺失值,即,根据数据的已知部分,用特定的值代替它们。下面,我们介绍常用的缺失值填补方法。

    单特征填补

    单特征填补,是用缺失项所在的特征的非缺失值填补。SimpleImputer类提供了基本的单特征填补方法,包括使用常数值,特征的均值、中位数、众数统计量。下面的例子,使用列(axis 0)均值填补编码为NaN的缺失项。
    在这里插入图片描述
    SimpleImputer类也支持类别变量的缺失填补,使用most_frequent or constant的参数值。
    在这里插入图片描述

    多特征填补

    IterativeImputer类提供更加复杂的填补模型,使用特征的函数作为估计量。具体上说,在每一步,定义一个特征列作为输出y, 其它列组成输入X; 拟合关于(y, X)的回归模型,预测y的缺失值。
    在这里插入图片描述

    产生多项式特征

    我们经常通过输入特征的非线性变换,增加模型的复杂度。一个简单的方法是使用多项式特征,即,产生特征的幂次或乘积项。PolynomialFeatures类产生多项式特征。下面,我们根据输入特征(X1,X2)(X_1, X_2), 产生(1,X1,X2,X12,X1X2,X22)(1, X_1, X_2, X_1^2, X_1X_2, X_2^2).
    在这里插入图片描述
    如果仅产生交互项,设置参数interaction_only=True.
    在这里插入图片描述

    展开全文
  • 得到一份数据文件时,常常会发现文件中存在一些缺失的...缺失值的机制并非造成缺失值的原因,而是描述缺失值与观测变量间可能的关系。确定数据缺失机制有利于选择合适的处理方法对数据进行处理。一般情况下,缺失...

    得到一份数据文件时,常常会发现文件中存在一些缺失的数据,而缺失数据会对分析任务产生阻碍,造成结果的偏移和统计工作的低效率。处理缺失数据的流程大致是:确认数据缺失机制——选择缺失数据的处理方法。

    1.确认数据缺失机制

    处理缺失数据前,首先应该了解数据缺失的机制。缺失值的机制并非造成缺失值的原因,而是描述缺失值与观测变量间可能的关系。确定数据缺失机制有利于选择合适的处理方法对数据进行处理。一般情况下,缺失机制可以分为以下三种类型:

    ①完全随机缺失,假设缺失的概率对于各变量的取值是等概率的,即缺失是完全随机的,那么删除缺失数据后的结果将是无偏的。缺失概率与其他变量无关,也与该变量自身无关。

    ——检验方法:T检验,按照缺失指示变量将各计量变量分为两组,用T检验比较两组均值有误差别。【看到有文章说其他类型缺失机制可能也出现这样情形,但是我个人认为如果是将其他所有测量变量都比较应该就只有完全随机缺失满足。故,认为t检验可行】

    ②随机缺失,指缺失的概率只与模型中某些观测变量有关,而与该变量自身无关。例如,在一次测试中,如果IQ达不到最低要求的100分,那么将不能参加随后的人格测试。在人格测试上因为IQ低于100分而产生的缺失值为随机缺失。通常情况下,完全随机缺失的假设很难被满足,而随机缺失则是一个相对宽松的假设。

    ③非随机缺失,当某变量出现缺失值的可能性只与自身相关时称作非随机缺失。例如,公司新录用了20名员工,由于6名员工表现较差,在试用期内辞退,试用期结束后的表现评定中,辞退的6名员工的表现分即为非随机缺失。

    各缺失机制的具体判断方法见链接:http://www.doc88.com/p-1304509340887.html

    2.缺失数据的处理方法

    2.1删除法

    删除部分数据,使之成为完整数据进行分析。根据分析的角度不同,删除数据的方法可以分为四种类型:

    ①观测样本删除。将存在缺失值的样本直接删除,这是最直接的删除数据的方法。该方法适用于样本量较大,但缺少比例很小(比如5%),而且不涉及到时间序列等前后单元格关联较强的情形。

    ②变量删除。当某个变量的缺失率较大时,比如某变量有一般的调查者无回答,可能的原因是问卷设置的问题,可将该变量删除。

    ③完全变量分析,在实验研究中,有时候研究的某一个问题可能只涉及到某几个变量,而这几个变量的原始数据是完整的,那就可以只分析这几个完整的原始数据,而无需使用缺失的不相关数据。

    ④无回答权重。当缺失值类型为非完全随机缺失的时候,可以通过对完整的数据加权来减小偏差。把数据不完全的个案标记后,将完整的数据个案赋予不同的权重,个案的权重可以通过logistics回归求得。【待确认】

    2.2填补法

    在实验研究中,删除数据可能被认为是信息量与研究花费的巨大浪费,为避免这种情况,更好地方法是对缺失值进行填补,用填补值尽可能接近真实值来还原数据。该方法的基本思想是利用辅助信息,为每个缺失值寻找替代值。根据所构造的填补值个数,可以分为单一填补和多重填补。

    (1)单一填补的方法部分列举如下:

    均值/中位数/众数填补

    一般来说,如果是数值型变量,若存在的变量值是正态分布则选择均值填充,若是偏态分布,则选择中位数填充;如果不是数值型变量,则选择众数填充。

    根据缺失值的属性相关系数最大的那个属性(即变量间相关性最大的那个变量)将数据分成几个组,然后分别计算每个组的均值,把这些均值放入到缺失的数值里面就可以了。

    ——缺点:用单一数值填充时,如果是均值填充,会大大降低数据的方差,即随机性,损失大量的数据信息。

    (2)多重填补的方法部分列举如下:

    ①热卡填补法

    对于一个包含缺失值的变量,热卡填充法的做法是:在数据库中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充。不同的问题可能会选用不同的标准来对相似进行判定。最常见的是使用相关系数矩阵来确定哪个变量(如变量Y)与缺失值所在变量(如变量X)最相关。然后把所有变量按Y的取值大小进行排序。那么变量X的缺失值就可以用排在缺失值前的那个个案的数据来代替了。

    ——缺点:太麻烦。与均值替换法相比,利用热卡填充法插补数据后,其变量的标准差与插补前比较接近。但在回归方程中,使用热卡填充法容易使得回归方程的误差增大,参数估计变得不稳定,而且这种方法使用不便,比较耗时。

    ②最近距离决定填补法

    假设现在为时间y,前一段时间为时间x,然后根据x的值去把y的值填补好。

    ——缺点:一般就是在时间因素决定不显著的时候,比如一天的气温,一般不会突然降到很低,然后第二天就升的很高。但是对时间影响比较大的,可能就不可以了。

    ——适用于短时间不会变化的变量

    ③回归填补法

    假设我y属性缺失,然后我知道x属性,然后我用回归方法对没有确实的数据进行训练模型,再把这个值得x属性带进去,对这个y属性进行预测,然后填补到缺失处。

    ——缺点:由于是根据x属性预测y属性,这样会让属性之间的相关性变大。这可能会影响最终模型的训练。

    ④多重填补方法(M-试探法)

    它是基于贝叶斯理论的基础上,然后用EM算法来实现对缺失值进行处理的算法。对每一个缺失值都给M个缺失值,这样数据集就会变成M个,然后用相同的方法对这M个样本集进行处理,得到M个处理结果,总和这M个结果,最终得到对目标变量的估计。其实这个方法很简单,就是我尽量多做模型,然后找出最好的,我就叫它M-试探法吧。

    ⑤基于贝叶斯方法

    基于贝叶斯的方法就是分别将缺失的属性作为预测项,然后根据最简单的贝叶斯方法,对这个预测项进行预测。但是这个方法有一个缺点,就是说不能把之前的预测出来的数据加入到样本集,会丢失一些数据,会影响到预测。所以现在就是对属性值进行重要性排序,然后把重要的先预测出来,在加入新的数据集,再用新的数据集预测第二个重要的属性,这样一直处理到最后为止。

    参考文章:

    1.浅谈数据挖掘中的数据处理(缺失值处理以及异常值检测) - 小花花108 - 博客园

    http://www.cnblogs.com/xiaohuahua108/p/6237906.html

    2.缺失值的机制和传统处理方法_Mpluscollege_新浪博客

    http://blog.sina.com.cn/s/blog_7fb03f7d01012j6p.html

    3.基于R语言的缺失值填补方法

    http://xueshu.baidu.com/s?wd=paperuri:(d8959def6e7df04eb059cecd035e7989)&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http://www.doc88.com/p-2079500265484.html&ie=utf-8&sc_us=16560328053298594980

    展开全文
  • 使用KNN进行缺失值填补详解及实践 import numpy as np from fancyimpute import KNN from sklearn.preprocessing import StandardScaler from sklearn.datasets import make_blobs # Make a simulated ...
  • 介绍对于处理现实中的数据时,我们...其他类似的缺失值填补方法还有MICE,在这里不做介绍。方法我们假设我们的数据是X=(X1,X2,...,Xp)X=(X_1,X_2,...,X_p)的n*p的一个矩阵。如果对于一个任意的变量XsX_s,我们想填充
  • 数据缺失值填补

    千次阅读 2018-10-15 17:20:34
    缺失值填充方法包括简单填充、属性填充和实例填充三种类型,本文主要研究属性填充方式。 填充依赖原始数据的单一或少量属性维度,利用属性间的关系或属性潜在的规则对缺失值进行填充。 常用的属性填充方法有:基于...
  • 应用机器学习算法,必不可少的就是数据集。然而,通常情况下,收集到的数据集中或多或少会包含一些缺失值,比如年龄,性别,所在地等等。目前,研究者们已经研究出多种缺失值填补的方...
  • pandas缺失值填补之一

    2021-01-07 20:23:51
    假设我们有DataFrame数据data。 首先查看缺失值: ...feature_1有缺失值,而feature_2没有缺失值。我们把feature_1缺失的值使用同一行的feature_2的值填充。 index = data[data[feature_1].isnull()]
  • 对于两端缺失数据使用前后填充,对于中间数据使用线性插值(可替换) import numpy as np import pandas as pd from scipy.interpolate import interp1d df = pd.read_excel('data.xlsx') df['城市'].fillna...
  • 利用scipy.interpolate.gird实现相关特征缺失值插值填补
  • 标称变量(Categorical Features)或者分类变量(Categorical Features)缺失值填补、详解及实战 核心学习函数或者方法: KNeighborsClassifier() np.hstack() np.vstack 有一个分类特征或者标称变量,它...
  • 数据清洗 Chapter08 | 基于模型的缺失值填补

    千次阅读 多人点赞 2020-07-14 10:55:57
    这篇文章讲述的是简单的数据缺失处理方法。希望这篇数据清洗的文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~ Chapter08 | 简单的数据缺失处理方法 ...
  • SVD奇异分解算法: 用于矩阵近似问题。 假设矩阵可以分解成三个矩阵的乘积。其中第一个矩阵是一个方阵,并且是正交的,中间的矩阵通常不是方阵,它对角线上的元素都是由原矩阵的特征构成的,第三个矩阵也是...
  • sklearn 缺失值填补(总结)

    千次阅读 2018-12-22 12:27:00
    使用SimpleImputer进行填补 from sklearn.impute import SimpleImputer as si imp_mean=si() 默认是用均值进行填补,参数如下: missing_values: 空值的类型。默认np.nan 注意,numpy自带的fillna...
  • mean = SimpleImputer(missing_values=np.nan, strategy='mean') X_missing_mean = imp_mean.fit_transform(X_missing) #查看缺失值填补之后每列的缺失值个数 pd.DataFrame(X_missing_mean).isnull().sum() Out[33]:...
  • 奇异分解算法在协同过滤中有着广泛的应用。协同过滤有这样一个假设,即过去某些用户的喜好相似,那么将来这些用户的喜好仍然相似。一个常见的协同过滤示例即为电影评分问题,用户对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 663
精华内容 265
关键字:

缺失值填补