不要索引,去掉字段前后空格
train=pd.read_csv('train.csv',skipinitialspace=True,index_col=0)
按列统计缺失值比例,决定去除或者填充
all_missing=all_dummies.isnull().sum() #按列查看缺失值
all_missing_ration=(all_dummies.isnull().sum()/len(all_data))*100#按列查看缺失率
all_missing=all_missing.drop(all_missing[all_missing==0].index).sort_values(ascending=False)[:20]#降序查看前20个
统计数值型特征标准差,接近于0的就是无波动的剔除2.原始数据上训练xgboost输出特征的重要性,取前20个特征,统计每个样本在这20个特征的缺失值个数,将缺失值>10个的样本剔除。
train=train.drop(train[(train['GrLivArea']>4000) & (train['SalePrice']<200000)].index)
k = 10 #统计跟我目标变量最有联系的前10个
cols = corrmat.nlargest(k, 'SalePrice')['SalePrice'].index #pandas.nlarge()是输出最大相关排序,排完了之后选取salprice列的索引
cm = np.corrcoef(df_train[cols].values.T) #设置数据级
sns.set(font_scale=1.25)
hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={'size': 10}, yticklabels=cols.values, xticklabels=cols.values) #annot显示相关程度数字
plt.show()
某一行axis=1,不加默认为删除列
train=train.drop(['SalePrice'],axis=1)
上下合并axis=0,左右合并axis=1
all=pd.concat((train,test),axis=0)
all.shape
将看似数值型数据变成分类数据
all['MSSubClass']=all['MSSubClass'].astype(str)
all['MSSubClass'].value_counts()
pd.value_counts(all_new.columns[all_new.dtypes !=object]).sum()
或者numerical_feature = list(feature_type[feature_type.type=='Numerical']['feature'])
符合正态分布的也就是
print("Skewness: %f" % df_train['SalePrice'].skew())
print("Kurtosis: %f" % df_train['SalePrice'].kurt())
np.array([[1,2,3],[9,8,7],[6,5,4]]),
生成3*3的数组np.arange(12).reshape(3,4),
图片矢量化np.ndarray((lens,channels,rows,colus),dtype=uint8)
用于遍历序列中的元素以及它们的下标:
for index,value in enumerate(('a','b','c')):
print(index,value)
A.采样:上采样(过采样,小众实例增加),复制多份数据加上随机干扰;下采样(欠采样,多得减少),有放回重采样部分数据。
B.数据合成:smote,它利用小众样本在特征空间的相似性来生成新样本。Python库lmblearn.
from imblearn.over_sampling import SMOTE 安装:pip install -U imbalanced-learn
C.加权
D.分类::把它看做一分类(one class learning) 或异常检测问题,这类方法的重点不在于捕捉类间的差别,而是为其中一类进行建模,经典的工作包括one-class-SVM