数据预处理

一种打印方法

print("Single Tree:{}".format(score_d),
      "Random Forest:{}".format(score_r)
     )

Single Tree:0.8888888888888888 Random Forest:0.9444444444444444

list.index(object) 返回列表中object的索引

model.estimators_查看森林中树的状况

rfc.estimators_
rfc.estimators_[0].random_state
rfc.estimators_[0].max_depth

bootstrap & oob_score

bootstrap参数默认True,代表采用这种有放回的随机抽样技术。然而有放回抽样也会有自己的问题。由于是有放回,一些样本可能在同一个自助集中出现多次,而其他一些却可能被忽略,一般来说,自助集大约平均会包含63%的原始数据
因此,会有约37%的训练数据被浪费掉,没有参与建模,
这些数据被称为袋外数据(out of bag data,简写为oob)。除了我们最开始就划分好的测试集之外,这些数据也可以被用来作为集成算法的测试集
如果希望用袋外数据来测试,则需要在实例化时就将oob_score这个参数调整为True,训练完毕之后,我们可以用随机森林的另一个重要属性:oob_score_来查看我们的在袋外数据上测试的结果:

rfc=RandomForestClassifier(n_estimators=25,oob_score=True)
rfc=rfc.fit(wine.data,wine.target)
rfc.oob_score_

rfc.predict_prob(Xtest)

返回测试集中每个样本被分到每个标签的概率

sklearn.impute.SimpleImputer填补缺失值

from sklearn.impute import SimpleImputer
imp_mean=SimpleImputer(missing_values=np.nan,strategy="mean")
X_missing_mean=imp_mean.fit_transform(X_missing)
X_missing_mean
#使用0进行填补
imp_0 = SimpleImputer(missing_values=np.nan, strategy="constant",fill_value=0)
X_missing_0 = imp_0.fit_transform(X_missing)

randint(下限,上限,n)在下限上限间取出n个无序整数

np.argsort()返回从小到大排序所对应的索引

画横向条形图

 ax.barh(i, mse[i],color=colors[i], alpha=0.6, align='center')
 

归一化:Min Max Scaler

将数据压缩到指定范围内

data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
scaler = MinMaxScaler(feature_range=[5,10]) #依然实例化
result=scaler.fit_transform(data)
result

在这里插入图片描述

#当X中的特征数量非常多的时候,fit会报错并表示,数据量太大了我计算不了
#此时使用partial_fit作为训练接口
scaler = scaler.partial_fit(data)

数据标准化preprocessing.StandardScaler

数据服从正态分布,均值为0,方差为1

preprocessing.LabelEncoder

标签专用,能够将分类转换为分类数值,给标签编码
属性.classes_查看标签中究竟有多少类别

from sklearn.preprocessing import LabelEncoder
y = data.iloc[:,-1] #要输入的是标签,不是特征矩阵,所以允许一维
le = LabelEncoder() #实例化
le = le.fit(y) #导入数据
label = le.transform(y)   #transform接口调取结果
le.classes_ #属性.classes_查看标签中究竟有多少类别

preprocessing.OrdinalEncoder

特征专用,能够将分类特征转换为分类数值
接口categories_对应LabelEncoder的接口classes_,一模一样的功能

from sklearn.preprocessing import OrdinalEncoder
#接口categories_对应LabelEncoder的接口classes_,一模一样的功能
OrdinalEncoder().fit(data_.iloc[:,1:-1]).categories_
data_.iloc[:,1:-1] = OrdinalEncoder().fit_transform(data_.iloc[:,1:-1])

preprocessing.OneHotEncoder:独热编码,创建哑变量

OrdinalEncoder可以用来处理有序变量,但对于名义变量,我们只有使用哑变量的方式来处理,才能够尽量向算法传达最准确的信息

OneHotEncoder(categories='auto').fit_transform(X).toarray(

反应独热编码后每一列的含义

二值化Binarizer

from sklearn.preprocessing import Binarizer
transformer=Binarizer(threshold=30).fit+transform(X)

分箱kbinsDescritizer

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值