线性回归中某个数据是多类别数据,比如游戏发行商这种,怎么处理比较好
你好,这种数据有很多种处理方式,请你根据自己的实际情况选择以一下:
类别特征编码:类别编码能够将object的变量准换位数值类型,例如若在数据集中性别的编码为:男:MAN,女:WOMAN,则我们首先需要将其转换为离散数据。
from sklearn import preprocessing
LabelEncoder = preprocessing.LabelEncoder()
LabelEncoder.fit(data['要处理的类别列名'])
data['要处理的类别列名'] = LabelEncoder.transform(data['要处理的类别列名'])
独立热编码:对每个类别使用二进制编码,使用二进制创建新列,以表示特定行是否属于该类别。使用该方法将会对我们的数据升维,要注意我们的数据是否是稀疏的,否则维度过大且效果也不会很好。
hot = pd.get_dummies(data['要处理的类别列名'].values)
pd.concat([data,hot], axis=1)
因为不知道你的数据频次如何,我不能给你一个准确的方案,但是我建议您采纳第一种方法。
如果对你帮助,希望你帮我点个采纳。
不知道你这个问题是否已经解决, 如果还没有解决的话:病态线性回归问题需要进行显著性检验,需要在自变量降维去线性之后进行显著性检验。
显著性检验(significance test)就是事先对总体(随机变量)的参数或总体分布形式做出一个假设,然后利用样本信息来判断这个假设(备择假设)是否合理,即判断总体的真实情况与原假设是否有显著性差异。或者说,显著性检验要判断样本与我们对总体所做的假设之间的差异是纯属随机误差,还是由我们所做的假设与总体真实情况之间不一致所引起的。 显著性检验是针对我们对总体所做的假设做检验,其原理就是“小概率事件实际不可能性原理”来接受或否定假设。
病态线性回归问题也需要利用样本信息来判断总体的参数或总体分布形式假设是否合理,判断总体的真实情况与原假设是否有显著性差异,因此病态线性回归问题中也需要进行显著性检验。
显著性检验目的是判断总体真实情况与原假设是否有显著性差异,其公式为
F=ESS/fERSS/fR=(N−n−1)ESSnRSS F=\frac{ESS/f_E}{RSS/f_R}=\frac{(N-n-1)ESS}{nRSS} F=RSS/fRESS/fE=nRSS(N−n−1)ESS
其中ESS,RSSESS,RSSESS,RSS只与真实情况与预测结果有关,与自变量维度无关,因此显著性检测位置只会影响fE,fRf_E,f_RfE,fR参数中自变量自由度nnn。病态线性回归问题中,自变量XN×n1X_{N\times n_1}XN×n1线性相关,为降低极小特征值带来的巨大预测误差,需要近似地用更少的一组向量ZN×n2,n2<n1Z_{N\times n_2},n_2<n_1ZN×n2,n2<n1线性表示(降维)。因此自变量实际自由度n=n2n=n_2n=n2,n2n_2n2是它的最大线性无关组所含向量数目,故显著性检验应在去线性(降维)之后进行。