好特征可以从几个角度衡量:覆盖度,区分度,相关性,稳定性
import pandas as pd
df = pd.DataFrame({'A':[5,91,3],'B':[90,15,66],'C':[93,27,3]})
df.corr() # 皮尔逊
df.corr('spearman')#斯皮尔曼
df.corr('kendall')#肯德尔
import pandas as pd
import toad data = pd.read_csv('data/germancredit.csv')
data.replace({'good':0,'bad':1},inplace=True)
data.shape
#缺失率大于0.5,IV值小于0.05,相关性大于0.7来进行特征筛选
selected_data, drop_list= toad.selection.select(data,target = 'creditability', empty = 0.5, iv = 0.05, corr = 0.7, return_drop=True)
print('保留特征:',selected_data.shape[1],'缺失删除:',len(drop_list['empty']),'低iv删 除:',len(drop_list['iv']),'高相关删除:',len(drop_list['corr']))
pip install Boruta
import numpy as np
import pandas as pd
import joblib
from sklearn.ensemble import RandomForestClassifier
from boruta import BorutaPy
#加载数据
pd_data = joblib.load('data/train_woe.pkl') pd_data
#处理数据,去掉id 和 目标值
pd_x = pd_data.drop(['SK_ID_CURR', 'TARGET'], axis=1)
x = pd_x.values # 特征
y = pd_data[['TARGET']].values # 目标
y = y.ravel() # 将多维数组降位一维
# 先定义一个随机森林分类器
rf = RandomForestClassifier(n_jobs=-1, class_weight='balanced', max_depth=5)
'''
BorutaPy function
estimator : 所使用的分类器
n_estimators : 分类器数量, 默认值 = 1000
max_iter : 最大迭代次数, 默认值 = 100
'''
feat_selector = BorutaPy(rf, n_estimators='auto', random_state=1, max_iter=10)
feat_selector.fit(x, y)
dic_ft_select = dict()
# feat_selector.support_ # 返回特征是否有用,false可以去掉
for ft, seleted in zip(pd_x.columns.to_list(), feat_selector.support_):
dic_ft_select[ft] = seleted
pd_ft_select = pd.DataFrame({'feature':pd_x.columns.to_list(), "selected": feat_selector.support_})
pd_ft_selec
import numpy as np
import pandas as pd
import joblib
from statsmodels.stats.outliers_influence import variance_inflation_factor
pd_data = joblib.load('./train_woe.pkl') #去掉ID和目标值
pd_x = pd_data.drop(['SK_ID_CURR', 'TARGET'], axis=1)
#定义计算函数
def checkVIF_new(df):
lst_col = df.columns
x = np.matrix(df)
VIF_list = [variance_inflation_factor(x,i) for i in range(x.shape[1])]
VIF = pd.DataFrame({'feature':lst_col,"VIF":VIF_list})
max_VIF = max(VIF_list) print(max_VIF)
return VIF
df_vif = checkVIF_new(pd_x)
df_vif
df_vif[df_vif['VIF'] > 3]
sklearn.feature_selection.RFE
import numpy as np
import pandas as pd
import joblib from sklearn.feature_selection
import RFE from sklearn.svm
import SVR pd_data = joblib.load('data/final_data.pkl')
pd_data
pd_x = pd_data.drop(['SK_ID_CURR', 'TARGET'], axis=1)
x = pd_x.values
y = pd_data[['TARGET']].values
y = y.ravel()
#定义分类器
estimator = SVR(kernel="linear")
selector = RFE(estimator, 3, step=1) # step 一次去掉几个特征
selector = selector.fit(x, y)
#展示选择参数
dic_ft_select = dict()
for ft, seleted in zip(pd_x.columns.to_list(), selector.support_):
dic_ft_select[ft] = seleted
pd_ft_select = pd.DataFrame({'feature':pd_x.columns.to_list(), "selected": selector.support_})
pd_ft_select
from sklearn.svm import LinearSVC
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectFromModel
iris = load_iris() X, y = iris.data, iris.target
X.shape
lsvc = LinearSVC(C=0.01, penalty="l1", dual=False).fit(X, y)
model = SelectFromModel(lsvc, prefit=True)
X_new = model.transform(X)
X_new.shape
文章浏览阅读1.4k次。Newton迭代法Matlab程序求函数极小值点clear allclc%Newton迭代法求解极小值点%090311%===================================== %定义函数disp '函数 f(x) 为:'syms x1 x2f=(x1-2)^4+(x1-2)^2*x2^2+(x2+1)^2disp '初始点的值:'x0=[1;1]%===============...
文章浏览阅读3.9k次。1 开始界面你可以在Tableau官网上下载Tableau Desktop(即桌面版)。打开Tableau Desktop后,你可以看到如下界面:图1 Tableau开始界面开始界面的左侧是Tableau所支持的数据连接方式:1)到文件;2)到服务器;3)已保存的数据源。第一种方式连接的是本地所保存的文件数据,我们可以连接到excel表格、文本文件等。一些公司的年报、绩效数据都是以PDF文件呈现的..._tableau没有连接到文件
文章浏览阅读9.4k次,点赞4次,收藏21次。文章目录一、Mac下python的安装路径1、Mac自带python路径2、Mac中自己安装的python3.x的路径3、homebrew安装python路径二、brew 安装指定版本 python31、安装2、错误处理3、查看安装路径了解python的安装路径,有利于处对python安装的管理。比如删除多余的python,可以在这些路径中查询处理。一、Mac下python的安装路径1、Mac自带python路径/System/Library/Frameworks/Python.framework/_mac python安装目录
文章浏览阅读971次,点赞19次,收藏9次。大语言模型——大语言模型的能力特点_大语言模型在训练完成后的特征是什么?
文章浏览阅读3.9k次。LGBM 模型结果 树图形展示_lgbm模型
文章浏览阅读1.7w次,点赞6次,收藏14次。ADD_EXECUTABLE(main main.cpp)TARGET_LINK_LIBRARIES(main libhello.so)INCLUDE_DIRECTORIES(/tmp/t3/include/hello /tmp/t3/lib)LINK_DIRECTORIES(/tmp/t3/lib)这种情况下会出错,说找不到引用,原因是ADD_EXECUTABLE出现在LIN..._link_directories不起作用
文章浏览阅读1.4w次,点赞13次,收藏122次。一、Web端实现即时消息推送五种方式股票曲线实时变化,在线IM聊天等等,Web系统里总是能见到消息推送的应用。消息推送用好了能增强用户体验,实现消息推送有N种解决方案。1.1、什么是消息推送消息推送(Push)指运营人员通过自己的产品或第三方工具对用户当前网页或移动设备进行的主动消息推送。用户可以在网页上或移动设备锁定屏幕和通知栏看到push消息通知。以此来实现用户的多层次需求,使得用户能够自己设定所需要的信息频道,得到即时消息,简单说就是一种定制信息的实现方式。我们平时浏览邮箱时突然弹出消息_hutool websocket
文章浏览阅读2.7w次,点赞5次,收藏4次。今天小编就来教一教大家返回上一步的快捷键,想知道的赶快来看一看小编下面编写的这些步骤吧。工具/原料电脑 Windows7键盘 极影2.0方法/步骤1首先大家打开我们的电脑,在电脑上随便打开一个页面,开始编辑内容,再进行下一步操作。2帮大家编辑到一半,一不小心删除了一些内容,有想要把删除的那一部分给找回来的时候。3那么大家就需要在键盘上找到“Alt”和“Z”这两个键,如下图所示。再进行下面的操作。4..._python怎么回到上一步
文章浏览阅读1.5k次,点赞15次,收藏34次。自己的学习记录_stm32ct86使用的是什么处理器
文章浏览阅读2.8k次。出现以下错误的原因是 :node-pre-gyp WARN Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.7/fse-v1.2.7-node-v83-darwin-x64.tar.gz请参考文章【重磅推荐】关于npm之代码升级顺利成功的完美攻略【package.json和package-lock.json的作用】:https://blog.csdn.net/weixin_4334.._node-pre-gyp warn tried to download(404)
文章浏览阅读430次。近日有使用雨林木风win7系统的用户跟小编反映说自己在电脑中安装HP1213打印机的时候,出现了安装失败的情况,不知道怎么解决很是苦恼。那我们遇到这种情况该怎么解决呢?没关系下面小编就来为大家分享关于解决win7hp1213打印机安装失败的方法。解决方法如下:1、首先安装M1213打印机之前,最好重启电脑,关闭不必要的程序。必须关闭系统防火墙和杀毒防护软件,至关重要。经研究90%的安装失败是因为杀..._hp laserjet professional m1213nf mfp不支持winder732位
文章浏览阅读101次。wsed_git:13: missing delimiter for 'u' glob qualifier