前提:这段代码只适用于对数据分析有简单的基础认识者
data是样本数据集,target是对应的样本目标
1. 分析特征值
如果特征值过多,将不需要的特征值删减,保留有影响或者影响较大的特征值
2. 分解data和target
如果target目标值的数据量差异巨大可以使用过采样,也就是将训练集样本量小的目标数据扩大,
3. 交叉验证
4. 模型参数自动调优
-
决策树、梯度提升树
决策树
from sklearn.tree import DecisionTreeClassifier
dtree=DecisionTreeClassifier()
dtree.fit(data,target)
dtree_feature=dtree.feature_importances_梯度提升树
gbc=GradientBoostingClassifier()
gbc.fit(X_train_new,y_train_new)
gbc_feature=gbc.feature_importances_
将权重为0或者权重过小的特征删除
Index=some_feature.argsort()
some_feature[index] #这个就是根据权重显示排序后的特征
data.columns[index] #这个是分局权重排序后显示的列名
用排序后的列名截取后面几个后面有意义的特征
data2=data [data.columns[index][6:]] #这个例子是截取下表为6及以后的列 -
过采样:
先要分解出训练集和测试集:
X_train_new,y_train_new=smote.fit_resample(X_train,y_train)
from imblearn.over_sampling import SMOTE
smote=SMOTE()
X_train_new,y_train_new=smote.fit_resample(X_train,y_train) -
交叉验证:混淆矩阵、交叉表:
混淆矩阵
from sklearn.metrics import confusion_matrix
confusion_matrix(y_test,y_)
y_test 是目标值的测试数据
y_ 是利用模型测试数据得到的结果交叉表
pd.crosstab(y_test,y_)
-
模型参数自动调优:
- 针对逻辑回归模型:
lg=LogisticRegression()
param_grid={
‘C’:[0.1,1,10,100],
‘tol’:[1e-3,1e-4,1e-5]
}
from sklearn.model_selection import GridSearchCV
gs=GridSearchCV(lg,param_grid)
gs.fit(X_test,y_test)
lg_best=gs.best_estimator_
lg.score(X_test,y_test)
- 针对逻辑回归模型: