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

更新时间:2023-05-20 09:42:43 阅读: 评论:0

特征⼯程⽤到的⼀些算法和⽅法总结
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_lection import cross_val_score
score = cross_val_score(estimator,x,y,cv)
#参数分别是:学习器,x数据,y数据,进⾏多少次交叉验证
score  #返回的是⼀组数据,可以⽤均值查看平均⽔平库存现金管理
有监督分箱
基于信息熵的分箱(⽤的少)
import entropy_bad_binning as ebb
df = ebb.bin_array(data,nbins=3,axis=0)
#参数分别是,数据,要分的箱数(存在⼀些BUG),轴线
类-属性相互依赖最⼤化分箱
/airyn/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)apue
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和 BaEstimator,可以⾃动实现⼀些功能,⽐如fit 和 transform两个功能,直接调⽤fit_transform 就可以将两个功能⼀起实现…
from sklearn.ba import TransformerMixin, BaEstimator
class CustomCorrelationChoor(TransformerMixin, BaEstimator):
psaa
# 基于互信息的特征筛选
奥斯卡 名单
from sklearn.feature_lection import mutual_info_classif
from sklearn.feature_lection import mutual_info_regression
# 基于⽅差的特征筛选
from sklearn.feature_lection import VarianceThreshold
# F检验
from sklearn.feature_lection import f_classif
from sklearn.feature_lection import f_regression
#卡⽅检验
from sklearn.feature_lection import chi2
"""贝叶斯搜索,和⽹格搜索差不多"""
del_lection 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
ble import ExtraTreesClassifier冬令营
ble import RandomForestClassifier
ble import GradientBoostingClassifier
呈报97xxxclf1 = 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模型,同时返回降维后的数据

本文发布于:2023-05-20 09:42:43,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/115649.html

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

标签:参数   特征   算法   模型   数据   学习   组件   选择
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图