特征工程用到的一些算法和方法总结

特征⼯程⽤到的⼀些算法和⽅法总结
KNN算法(K近邻算法)
ighbors import KNeighborsClassifier
knn = KNeighborsClassifier()
knn.fit(x_train,y_train)
print(knn.score(x_test,y_test))#准确率
⽀持向量算法
from sklearn.svm import SVC
⽆监督分箱
我感到了阳光
from sklearn.preprocessing import KBinsDiscretizer
kbd = KBinsDiscretizer(n_bins=10,encode='onehot',strategy='uniform')
#n_bins 要分⼏箱
#encode  #编码⽅式,独热,常规。。
#strategy  策略:等距,等平。。
交叉验证
del_selection import cross_val_score
score = cross_val_score(estimator,x,y,cv)
山东明水汽车配件厂#参数分别是:学习器,x数据,y数据,进⾏多少次交叉验证
score  #返回的是⼀组数据,可以⽤均值查看平均⽔平
有监督分箱
基于信息熵的分箱(⽤的少)
import entropy_based_binning as ebb
df = ebb.bin_array(data,nbins=3,axis=0)
#参数分别是,数据,要分的箱数(存在⼀些BUG),轴线
类-属性相互依赖最⼤化分箱
github/airysen/caimcaim
from caimcaim import CAIMD
caim = CAIMD()
xd = caim.fit_transform(X, y)
xd  #分箱后的结果
特征筛选
过滤法(Filter):按照发散性或者相关性对各个特征进⾏评分,设定阈值或者待选择阈值的个数,选择特征。
封装法(Wrapper):根据⽬标函数(通常是预测效果评分),每次选择若⼲特征,或者排除若⼲特征。
嵌⼊法(Embedded):先使⽤某些机器学习的算法和模型进⾏训练,得到各个特征的权值系数,根据系数从⼤到⼩选择特征。类似于Filter⽅法,但是是通过训练来确定特征的优劣
贝叶斯算法
from sklearn.naive_bayes import GaussianNB
nb = GaussianNB()
nb.fit(x_train,y_train)
流⽔线
流⽔线:可以将许多算法模型串联起来,可以结合⽹格搜索
⽹格搜索和流⽔线联合使⽤,需要指定流⽔线程序上各个组件的名字和此组件的超参数
from sklearn.pipeline import Pipeline
def get_best(model, params, x, y):
grid = GridSearchCV(model, params, cv=5, refit=True)
姜斌是谁grid.fit(x, y)
print("准确率: {}".format(grid.best_score_))
print("最佳参数: {}".format(grid.best_params_))
# ⽹格搜索可以对流⽔线上的各个组件的超参数进⾏交叉组合,前提是需要指定环节的名字和对应的参数
knn_pipe_params ={'classifier__n_neighbors':[3,5,7,9]}
# 创建⼀个标准化组件
ss = StandardScaler()
# 创建流⽔线,此流⽔线上有两个组件,分别是标准化器和分类器(学习器)
knn_pipe = Pipeline([('scale', ss),('classifier', knn)])
# 因为流⽔线最后的组件是个学习器,所以可以把流⽔线对象当做学习器传到⽹格搜索函数⾥,并传⼊流⽔线上各个组件的参数
罗兰巴特#get_best 是⼀个⾃⼰定义的简单的计算准确率和参数的函数,⾥⾯的参数可以任意调整,参数对应⽹格搜索的参数
#x ,y 是数据
get_best(knn_pipe, knn_pipe_params, x, y)
定义类是继承TransformerMixin和 BaseEstimator,可以⾃动实现⼀些功能,⽐如fit 和 transform两个功能,直接调⽤fit_transform 就可以将两个功能⼀起实现…
from sklearn.base import TransformerMixin, BaseEstimator
class CustomCorrelationChooser(TransformerMixin, BaseEstimator):
psaa
# 基于互信息的特征筛选
vb学生信息管理系统from sklearn.feature_selection import mutual_info_classif
from sklearn.feature_selection import mutual_info_regression
# 基于⽅差的特征筛选
from sklearn.feature_selection import VarianceThreshold
# F检验
from sklearn.feature_selection import f_classif
from sklearn.feature_selection import f_regression
#卡⽅检验
from sklearn.feature_selection import chi2
"""贝叶斯搜索,和⽹格搜索差不多"""
del_selection import RandomizedSearchCV
"""贝叶斯搜索,和⽹格搜索差不多"""
from skopt import BayesSearchCV
"""配合贝叶斯搜素使⽤"""
from skopt.space import Real, Categorical, Integer
模型融合
from mlxtend.classifier import StackingCVClassifier  #stacking
from mlxtend.plotting import plot_learning_curves
from mlxtend.plotting import plot_decision_regions
semble import ExtraTreesClassifier
semble import RandomForestClassifier
semble import GradientBoostingClassifier
clf1 = RandomForestClassifier(n_estimators=100, n_jobs=-1, criterion='gini')
clf2 = ExtraTreesClassifier(n_estimators=50, n_jobs=-1, criterion='gini')
clf3 = ExtraTreesClassifier(n_estimators=50, n_jobs=-1, criterion='entropy')
clf4 = GradientBoostingClassifier(learning_rate=0.05, subsample=0.5, max_depth=6, n_estimators=500) clf5 = LogisticRegression(solver='lbfgs')
sclf = StackingCVClassifier(classifiers=[clf1, clf2, clf3, clf4], meta_classifier=clf5, cv=3)
sclf.fit(train_feat_nn,train_label)
# 5折交叉验证
#scores = cross_val_score(sclf, X, y, cv=3, scoring='accuracy')
y_submission = sclf.predict(valid_feat_nn)
北京质检总局
print("Val auc Score of Stacking: %f"%(roc_auc_score(valid_label, y_submission)))
from sklearn.decomposition import PCA  #主成分分析法会,把数据由重要性的强弱前后排序
pca = PCA(n_components=500)#前500重要
pca.fit_transform(data)#⽤X来训练PCA模型,同时返回降维后的数据

本文发布于:2024-09-25 08:30:14,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/326296.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:参数   特征   算法   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议