数据科学/EDA/数据准备的Kesh Utils
kesh-utils的Python项目详细描述
chart+util=chartil(单击展开)
chart+util=chartil
数据可视化:用于绘图和制图的简单、单一的统一api
在eda/数据准备过程中,我们很少使用常用的和固定的图表类型集来分析各种特征之间的关系。 很少有像单变量这样简单的图表,也有一些是复杂的三维甚至多个功能>;3。
这个api是一个简单的api,用于绘制各种类型的关系,这些关系将隐藏数据科学任务和方法的所有技术/代码细节。 这克服了维护多个api或库的困难,避免了重复代码。
使用这种方法,我们只需要一个api(rest全部由库决定)
from KUtils.eda import chartil
chartil.plot(dataframe, [list of columns]) or
chartil.plot(dataframe, [list of columns], {optional_settings})
演示代码:
加载UCI数据集。从这里下载heart_disease_df = pd.read_csv('../input/uci/heart.csv')
快速数据准备
column_to_convert_to_categorical = ['target', 'cp', 'fbs', 'exang', 'restecg', 'slope', 'ca', 'thal']
for col in column_to_convert_to_categorical:
heart_disease_df[col] = heart_disease_df[col].astype('category')
heart_disease_df['age_bin'] = pd.cut(heart_disease_df['age'], [0, 32, 40, 50, 60, 70, 100], labels=['<32', '33-40','41-50','51-60','61-70', '71+'])
heart_disease_df['sex'] = heart_disease_df['sex'].map({1:'Male', 0:'Female'})
heart_disease_df.info()
热图
chartil.plot(heart_disease_df, heart_disease_df.columns) # Send all column names
统一分类
chartil.plot(heart_disease_df, ['target']) # Barchart as count plot
统一连续
chartil.plot(heart_disease_df, ['age'])
from KUtils.eda import chartil
chartil.plot(dataframe, [list of columns]) or
chartil.plot(dataframe, [list of columns], {optional_settings})
0
from KUtils.eda import chartil
chartil.plot(dataframe, [list of columns]) or
chartil.plot(dataframe, [list of columns], {optional_settings})
2
uni-带可选设置的分类
啊!13!
AAAAAAA H14
是啊。
双类别与类别(单变量分段)
啊!
啊!
>/P>
AAAAAAA 18
双连续vs连续
啊!
>/P>
双连续vs类别
AAAAAAA H20
AAAAAAAAA 21
多3连续
啊!
多3分类
AAAAAAAAA 23
多2连续,1类
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
4
多1连续,2类
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
5
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
6
多3连续,1类
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
7
多个3类,2个连续
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
8
完整的工作演示可在kaggle上获得
<详细内容>自动线性回归(单击展开)
自动线性回归
我们已经看到了类似于auto ml的水,这是一种生成模型的黑盒方法。
在我们的模型构建过程中,我们尝试使用蛮力/trialnerror/几种组合来获得最佳模型。
然而,手动尝试这些可能性是一个艰难的过程。
为了克服或至少有一个基础模型自动我开发了这个自动线性回归使用反向特征消除技术。
Auto LR是如何工作的?< >
我们将清理后的数据集放入autolr.fit(<;<;parameters>;)
该方法将
- 处理分类变量(如果适用)(虚拟创建/一个热编码)
- 第一个模型-在数据集上运行rfe
- 对于剩余的特征消除-它遵循向后消除-一次一个特征
- 系数的vif和p值的组合(用较高的vif和p值组合消除)
- 仅限振动频率(或消除振动频率较高的振动频率)
- 仅限p值(或删除p值较高的值)
- 每次识别出某个功能时,我们都会构建新模型并重复该过程
- 在每次迭代中,如果调整后的r2受到显著影响,我们会重新添加/保留它,并选择下一个可能要消除的功能。
- 重复上述步骤,直到程序无法继续执行上述逻辑。
< H1>汽车线性回归包/函数详细信息
方法具有以下参数
- df,(完整数据帧)
- 相依列(目标列)
- p_value_cutoff=0.01,(在反向消除步骤中过滤特征时使用的特征的阈值,默认值为0.01)
- vif_cutoff=5,(反向消除步骤中过滤特征时要使用的特征的vif值的实际关联,默认值为5)
- 可接受的r2变化=0.02(通过控制r2变化损失来限制模型效率的降低,默认值为0.02)
- scale_numerical=false,(使用标准缩放器转换/缩放数值功能的标志)
- include_target_column_from_scaling=true,(标记为indiacte weather以包括来自scaling的目标列)
- dummies_creation_drop_column_preference='dropfirst',(可用选项dropfirst、dropmax、dropmin-创建要转换为一个热块的dummies时)
- 列车分割尺寸=0.7(使用列车/试验分割比)
- max_features_to_select=0(设置要在进入自动向后消除之前从rfe中限定的功能数)
- 随机状态使用=100,(不言而喻)
- include_data_in_return=false(包括自动lr中生成/使用的数据,这些数据可能具有gobne throu scaling、虚拟创建等功能)
- verbose=false(启用打印详细的调试消息)
以上方法返回"model_info"字典,其中包含执行自动调整时使用的所有详细信息。
完整的工作演示可在kaggle上获得
<详细内容>聚类线性回归(单击展开)
聚类线性回归
对于线性回归方法,我们尝试在整个数据集上拟合最佳模型。
然而,我们经常看到,在基于特定特征的数据集中,数据集的行为完全不同,单个模型并不是最好的解决方案,
相反,多个模型应用于不同的子集或过滤数据会更好。
如何找到将数据集分割成多个子数据集的特征(在构建并应用不同的模型之后)
没有一个简单的解决方案,而是使用试错法或蛮力将数据子集到不同的特性上并构建多个模型。
这种聚类或分组线性回归也一样。
您发送整个数据集并指定列列表,以单独分隔数据集并返回诸如rmse或r2等kpi度量,然后决定要走哪条路。
"聚类线性回归"是如何工作的?< >- 首先列出可能的组合
- 对于每个可能的组合,将数据分割成子集
- 对每个子集执行自动线性回归。检查上一篇Kaggle文章。
- 返回集团层面的汇总或合并的关键绩效指标指标。
api clustlr.fit()有以下参数
- 数据DF(完整数据集)
- 功能组列表(用于筛选和分组数据的列的列表
- 相依列(目标列)
- max_level=2(当它是2时,它使用两个功能组合进行过滤)
- min_leaf_in_filtered_dataset=1000(限定子组中不执行autolr的最小数据点)
- 无连续存储单元功能=10(使用连续变量进行分组时要创建的存储单元数)
- 详细(如果需要详细的调试/日志消息,请使用true)
完整的工作演示可在kaggle上获得
<详细内容>
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
column_to_convert_to_categorical = ['target', 'cp', 'fbs', 'exang', 'restecg', 'slope', 'ca', 'thal']
for col in column_to_convert_to_categorical:
heart_disease_df[col] = heart_disease_df[col].astype('category')
heart_disease_df['age_bin'] = pd.cut(heart_disease_df['age'], [0, 32, 40, 50, 60, 70, 100], labels=['<32', '33-40','41-50','51-60','61-70', '71+'])
heart_disease_df['sex'] = heart_disease_df['sex'].map({1:'Male', 0:'Female'})
heart_disease_df.info()
chartil.plot(heart_disease_df, heart_disease_df.columns) # Send all column names
chartil.plot(heart_disease_df, ['target']) # Barchart as count plot
chartil.plot(heart_disease_df, ['age'])
from KUtils.eda import chartil
chartil.plot(dataframe, [list of columns]) or
chartil.plot(dataframe, [list of columns], {optional_settings})
from KUtils.eda import chartil
chartil.plot(dataframe, [list of columns]) or
chartil.plot(dataframe, [list of columns], {optional_settings})
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
heart_disease_df = pd.read_csv('../input/uci/heart.csv')
自动线性回归(单击展开)
自动线性回归
我们已经看到了类似于auto ml的水,这是一种生成模型的黑盒方法。
在我们的模型构建过程中,我们尝试使用蛮力/trialnerror/几种组合来获得最佳模型。 然而,手动尝试这些可能性是一个艰难的过程。 为了克服或至少有一个基础模型自动我开发了这个自动线性回归使用反向特征消除技术。
Auto LR是如何工作的?< >
我们将清理后的数据集放入autolr.fit(<;<;parameters>;) 该方法将
- 处理分类变量(如果适用)(虚拟创建/一个热编码)
- 第一个模型-在数据集上运行rfe
- 对于剩余的特征消除-它遵循向后消除-一次一个特征
- 系数的vif和p值的组合(用较高的vif和p值组合消除)
- 仅限振动频率(或消除振动频率较高的振动频率)
- 仅限p值(或删除p值较高的值)
- 每次识别出某个功能时,我们都会构建新模型并重复该过程
- 在每次迭代中,如果调整后的r2受到显著影响,我们会重新添加/保留它,并选择下一个可能要消除的功能。
- 重复上述步骤,直到程序无法继续执行上述逻辑。
聚类线性回归(单击展开)
聚类线性回归
对于线性回归方法,我们尝试在整个数据集上拟合最佳模型。 然而,我们经常看到,在基于特定特征的数据集中,数据集的行为完全不同,单个模型并不是最好的解决方案, 相反,多个模型应用于不同的子集或过滤数据会更好。
如何找到将数据集分割成多个子数据集的特征(在构建并应用不同的模型之后)
没有一个简单的解决方案,而是使用试错法或蛮力将数据子集到不同的特性上并构建多个模型。 这种聚类或分组线性回归也一样。 您发送整个数据集并指定列列表,以单独分隔数据集并返回诸如rmse或r2等kpi度量,然后决定要走哪条路。