机器学习训练之前的准备工作

选择特征种类

样本中特征种类很多,不可能把每个特征都拿来训练,所以需要计算出最佳的特征种类
我选择的是决策数算法,来选择特征种类

#导入这两个包
from sklearn import cross_validation
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

#数组中输入所有的特征种类
features=[.....]

#给测试集以及标签集赋值
X=...
y=...

#采用交叉验证方法将测试集分为和训练集
#test_size 测试集比例,random_state 随机取值的程度
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size,random_state)

#开始运行决策树算法
#n_estimators  决策树中树的数量 
#n_jobs (默认=1) 适合和预测并行运行的作业数,如果为-1,则将作业数设置为核心数
forest = RandomForestClassifier(n_estimators, random_state, n_jobs)
forest.fit(X_train,y_train)

#显示结果
#得到其每个特征的重要性数据
importances = forest.feature_importances_
#根据这个数据就可以选出能够对结果影响最大的特征了

特征值进行降维和归一化

每个特征具体的值衡量标准以及显示的格式各有不同
为了能够进行分析训练,需要把值进行归一化,使得特征之间可以相互衡量
当特征数太多时,会导致计算量增多,为了减少计算量,就要进行降维操作

#引入所需的包
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

#进行归一化
standard=StandardScaler()
stan.fit(X_train)
x_t=stan.transform(X_train)x_test=stan.transform(X[1000:1200])

#降维
#n_components 维数
pca = PCA(n_components=para.pca_compo[2], whiten=True, random_state=10)
pca.fit(X_train)
X _train= pca.transform(X_train)


选取合适的训练参数

参数会直接影响到训练最后的成果,所以参数的选择十分重要
我使用的是GridSearchCV来选择最佳的参数

from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import GridSearchCV

# 准备工作
svc = svm.SVC(kernel=para.svm_kernel[2], class_weight='balanced')
model = make_pipeline(pca, svc)

# 使用gridSearchcv(网格搜索+交叉验证)选择最佳的c,gamma,参数名称一定要写正确
param_grid = {'svc__C': para.svm_c, 'svc__gamma': para.svm_gamma}
grid = GridSearchCV(model, param_grid)
# 拿前一个batch的数据做分析
grid.fit(train_X[0:train_batch], train_y[0:train_batch])
print(grid.best_params_)
model = grid.best_estimator_

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值