公司网站开发创业,网站开发切换电脑版与手机版,苏中建设集团网站,特产网站建设规划书一、数据预处理 1.数据采集 2.数据格式化#xff08;存储格式等#xff09; 3.数据清洗#xff1a;去掉脏数据 简单直观可以看出的不可能数据 组合或统计属性判定 缺失值处理 1.删除元祖#xff1a;删除这一条记录或者一列特征#xff0c;适合记录或者特征占总样本比例很小… 一、数据预处理 1.数据采集 2.数据格式化存储格式等 3.数据清洗去掉脏数据 简单直观可以看出的不可能数据 组合或统计属性判定 缺失值处理 1.删除元祖删除这一条记录或者一列特征适合记录或者特征占总样本比例很小或者缺失值非常多。但是会造成数据少很多有可能造成性能下降 2.数据补齐这类方法是用一定的值去填充空值通常基于统计学原理根据初始数据集中其余对象取值的分布情况来对一个缺失值进行填充 3.不处理不处理缺失值直接在包含空值的数据上进行数据挖掘的方法包括贝叶斯网络和人工神经网络等。 具体请看https://blog.csdn.net/lujiandong1/article/details/52654703 4.数据采样 很多情况下正负样本不均衡 1.当正负样本量很大时进行下采样随机采样和分层抽样 2.当样本量不大时 采集更多样本 过采样 修改损失函数 二、特征工程 1.数值类型 归一化、标准化、正则化https://www.cnblogs.com/chaosimple/p/4153167.html 统计特征pandas的mean方法和describe()方法 离散化将连续数值切割成几块pandas库里有cut()方法可以指定对数组arr切成n块返回的是每个样本属于的那一个区间。cut(arr,n)或者直接指定区间cut(arr,[-5,-1,2,5,10]),返回的result统计result,pd.value_counts(result).reindex(result.levels) 2.类别类型 2.1.one-hot编码 pandas库的get_dummies(series,prefix列名前缀) 2.2 Hash处理 3.时间类型 既可以看做连续值也可以看做离散值 1.连续值持续时间单页浏览时长间隔时间两次活动的间隔时间 2.离散值时间段星期几月季度 python中datetime的strptime函数datetime.datetime.strptime(x,时间格式如%Y-%m-%d %H:%M:%S),将字符串转为时间格式类型 时间类型函数可以返回年月日星期.year,.month,.day,.weekday() 4.文本型 自然语言处理相关 5.组合特征 5.1简单组合特征拼凑 5.2模型特征组合 GBDTLR 6.特征选择 原因有冗余特征相关性太高浪费计算性能 噪声特征对预测结果有负影响 6.1.过滤型单个 评估单个特征和结果值之间的相关程度排序留下top相关的部分特征 评估的准则pearson相关系数互信息距离相关度 缺点是:没有考虑到特征之间的关联作用可能把有用的关联特征误删掉 相关系数用scipy.stats.pearsonr(x,y)来计算相关系数函数返回相关系数和风险值越小越可信缺点是只对线性有用如果是非线性就不适用 互信息minepy.MINE库 距离相关系数gist库 sklearn.feature_selection.SelectBest 可以很方便的实现取前k个特征参数有两个第一个是评估函数第二个Kn评估函数的选择 回归 f_regression相关系数计算每个变量与目标变量的相关系数然后计算出F值和P值 mutual_info_regression互信息互信息度量 X 和 Y 共享的信息它度量知道这两个变量其中一个对另一个不确定度减少的程度。 分类 chi2卡方检验f_classif方差分析计算方差分析ANOVA的F值 (组间均方 / 组内均方)mutual_info_classif互信息互信息方法可以捕捉任何一种统计依赖但是作为非参数方法需要更多的样本进行准确的估计。 6.2包裹型子集合 把特征选择看做一个特征子集搜索问题筛选各种特征子集然后用模型评估效果 递归特征删除算法给特征赋予一个外部模型产生的权重例如线性模型系数RFE递归地使用越来越少的特征来进行特征选择。首先在原始数据上建立模型并且给每个特征一个权重然后淘汰绝对权重最小的特征递归地执行这个过程直到达到希望的特征数。RFECV使用交叉验证方法发现最优特征数量。 from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression#递归特征消除法返回特征选择后的数据
#参数estimator为基模型
#参数n_features_to_select为选择的特征个数
RFE(estimatorLogisticRegression(), n_features_to_select2).fit_transform(iris.data, iris.target) 6.3嵌入型 根据模型来判断特征的重要性 最常用的方式是用正则化的方法来做特征选择 使用SelectFromModel方法特征选择 SelectFromModel是一种元转换器可以与那些有coef_ 或者feature_importances_属性的模型一起使用。如果coef_ 或者feature_importances_小于阈值我们就认为特征是不重要的。除了指定阈值以外也可以使用启发式的方式。有效的启发式方法包括均值、中位数或者乘以系数比如 0.1*均值。 基于L1范数的特征选择 使用L1范数的线性模型有一个稀疏解许多估计系数都为0。当降维的目的是为了使用其他分类器他们能和feature_selection.SelectFromModel一起使用选择非零系数。特别地稀疏估计量对于回归中的 linear_model.Lasso、分类中的linear_model.LogisticRegression和svm.LinearSVC都很有用。 from sklearn.svm import LinearSVC
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectFromModel
iris load_iris()
X, y iris.data, iris.target
X.shape
1504
lsvc LinearSVC(C0.01, penaltyl1, dualFalse).fit(X, y)
model SelectFromModel(lsvc, prefitTrue)
X_new model.transform(X)
X_new.shape
1503 转载于:https://www.cnblogs.com/stAr-1/p/8920783.html