在钞票数据集中搜索 3 个比较的最佳方法
Best way to search for 3 comparisons in a Bank Note dataset
因此,我需要创建一个具有 3 个简单比较的分类器来检测假钞,基于类似以下的伪代码:
假设您正在检查帐单
具有 f_1 、f_2 、f_3 和 f_4 特征
您的规则可能如下所示:
if ( f_1 > 4) and ( f_2 > 8) and ( f_4 < 25):
x = " good "
else :
x = " fake "
对此最好使用什么 - lambda?我从这个开始:
distdf = {
f1 : banknote['variance']
f2 : banknote['skewness']
f3 : banknote['curtosis']
f4 : banknote['entropy']
}
但我不确定如何进行。这是使用著名的钞票验证数据集:BankNote_Authentication.csv,可以在 Kaggle 上找到。
我们可以尝试使用np.where
来检查所有条件并应用相应的标签。无需将列别名为 f1
、f2
、f3
等:
banknote_df['classifier'] = np.where(
(banknote_df['variance'] > 4) &
(banknote_df['skewness'] > 8) &
(banknote_df['entropy'] < 25),
'good',
'fake'
)
示例程序:
import numpy as np
import pandas as pd
banknote_df = pd.DataFrame({
'variance': [2.2156, 4.4795, 1.866, 3.47578, 0.697854],
'skewness': [9.45647, 8.54688, -5.4568, 6.15258, -3.4564],
'curtosis': [-1.12245, -1.2454, 2.75, -6.5468, 3.45875],
'entropy': [-0.424514, -2.45687, 0.1230152, -6.1254, -0.45241],
'class': [0, 0, 0, 0, 0]
})
banknote_df['classifier'] = np.where(
(banknote_df['variance'] > 4) &
(banknote_df['skewness'] > 8) &
(banknote_df['entropy'] < 25),
'good',
'fake'
)
print(banknote_df)
banknote_df
:
variance skewness curtosis entropy class classifier
0 2.215600 9.45647 -1.12245 -0.424514 0 fake
1 4.479500 8.54688 -1.24540 -2.456870 0 good
2 1.866000 -5.45680 2.75000 0.123015 0 fake
3 3.475780 6.15258 -6.54680 -6.125400 0 fake
4 0.697854 -3.45640 3.45875 -0.452410 0 fake
因此,我需要创建一个具有 3 个简单比较的分类器来检测假钞,基于类似以下的伪代码:
假设您正在检查帐单 具有 f_1 、f_2 、f_3 和 f_4 特征 您的规则可能如下所示:
if ( f_1 > 4) and ( f_2 > 8) and ( f_4 < 25):
x = " good "
else :
x = " fake "
对此最好使用什么 - lambda?我从这个开始:
distdf = {
f1 : banknote['variance']
f2 : banknote['skewness']
f3 : banknote['curtosis']
f4 : banknote['entropy']
}
但我不确定如何进行。这是使用著名的钞票验证数据集:BankNote_Authentication.csv,可以在 Kaggle 上找到。
我们可以尝试使用np.where
来检查所有条件并应用相应的标签。无需将列别名为 f1
、f2
、f3
等:
banknote_df['classifier'] = np.where(
(banknote_df['variance'] > 4) &
(banknote_df['skewness'] > 8) &
(banknote_df['entropy'] < 25),
'good',
'fake'
)
示例程序:
import numpy as np
import pandas as pd
banknote_df = pd.DataFrame({
'variance': [2.2156, 4.4795, 1.866, 3.47578, 0.697854],
'skewness': [9.45647, 8.54688, -5.4568, 6.15258, -3.4564],
'curtosis': [-1.12245, -1.2454, 2.75, -6.5468, 3.45875],
'entropy': [-0.424514, -2.45687, 0.1230152, -6.1254, -0.45241],
'class': [0, 0, 0, 0, 0]
})
banknote_df['classifier'] = np.where(
(banknote_df['variance'] > 4) &
(banknote_df['skewness'] > 8) &
(banknote_df['entropy'] < 25),
'good',
'fake'
)
print(banknote_df)
banknote_df
:
variance skewness curtosis entropy class classifier
0 2.215600 9.45647 -1.12245 -0.424514 0 fake
1 4.479500 8.54688 -1.24540 -2.456870 0 good
2 1.866000 -5.45680 2.75000 0.123015 0 fake
3 3.475780 6.15258 -6.54680 -6.125400 0 fake
4 0.697854 -3.45640 3.45875 -0.452410 0 fake