小编Sta*_*yrr的帖子

欺诈检测分类ML的经纬度转换

我正在尝试建立ML分类模型,以便在注册帐户时检测欺诈。我手头上的数据是:名称,电子邮件地址,坐标(注册时IP地址的纬度和经度)和标签(欺诈与非欺诈)。这是我的数据集的简短摘要:

>>> dataset.summary
Index(['name', 'email','latitude','longitude','label'],dtype='object')
>>> dataset.shape
(93207, 4)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我在理解模型训练时如何理解坐标变量方面遇到了麻烦。StackExchange上的一些用户建议使用正弦和余弦函数的某些组合将纬度和经度转换为X,Y和Z坐标。(即https://datascience.stackexchange.com/questions/13567/ways-to-deal-with-longitude-latitude-feature)但是我不知道在分类用例中是否真的需要这么做?我考虑过将每条记录的经度和纬度合并为1个变量。但是,某些区域的经度为负值。同样,一些欺诈者可能位于高纬度和经度的地区,而其他欺诈者可能位于低纬度和经度的地区。因此,将纬度和经度合并为1个变量可能对训练模型没有帮助?

我也可以将经纬度转换为城市名称。但是,如果我这样做了,那么一个城市的拼写将与另一个很远的城市相似,这可能又不利于训练模型。有什么建议么?

python classification machine-learning coordinates pandas

4
推荐指数
1
解决办法
2775
查看次数

带有 Pandas 的 REGEX 过滤器(任何数字组合后跟“加号”)

我有一个 Pandas 数据框,df其中包含以下 3 列:id,creation_dateemail.

我想返回email列包含任何严格数字组合(必须是严格数字)的所有行,后跟“加”号,然后是任何内容。

例如:
- 1345677+@gmail.com2345678+556@gmail.com将符合我的标准。
-Testing+22@gmail.com并且test223+22@gmail.com不会,因为它们在“加号”之前包含非数字字符。

我知道df.email.str.contains('\+')这行不通,因为它会返回包含“加”号的所有内容。我试过了,df.filter(['email'], regex=r'([^0-9])' % '\+', axis=0)但它抛出了一条错误消息,内容为TypeError: not all arguments converted during string formatting.

任何人都可以建议吗?

非常感谢!

python regex pandas

3
推荐指数
1
解决办法
1万
查看次数

如何将熊猫列转换为数组并转置?

我有一个名为“ training_set”的熊猫数据框,类似于以下屏幕截图:

在此处输入图片说明

我尝试将“标签”列转换为数组并将其转置。我尝试做,Y_train=np.asarray(training_set['label'])但是得到的是一个类似于下面的屏幕截图的水平数组,这不是我想要的。

在此处输入图片说明

我希望数组像下面的屏幕截图一样垂直显示(屏幕截图每行有2个变量。我希望的输出每行应该只包含1个变量,即“ label”。)

在此处输入图片说明

任何建议或帮助将不胜感激!

python arrays transpose numpy pandas

3
推荐指数
1
解决办法
7891
查看次数

如何从Redshift中的特定日期减去n天数?

我正在尝试找出一种方法,从 Redshift SQL 中的特定日期(不是当前日期)减去 n 天数。网上有很多关于从今天减去或添加 n 天的教程,但我找不到源日期不是今天的资源。

例如,date(qqr.date_created) >= '2020-06-08' - '45 days' :: interval不起作用,因为 Redshift 会在2020-06-08日期戳周围引发错误。像这样的格式date(qqr.date_created) >= date(getdate()) - '45 days' :: interval可以工作,但这不是我想要的,因为我不想得到“今天之前的 45 天”,我试图得到“我指定的日期之前的 45 天”。

任何建议将不胜感激!

sql amazon-redshift

2
推荐指数
1
解决办法
1万
查看次数

为什么'reset_index(drop = True)'函数会不必要地删除列?

我有一个名为data_match的熊猫数据。它包含列“ _worker_id”,“ _ unit_id”和“标题”。(有关此数据框中的某些行,请参见附件的屏幕截图)

在此处输入图片说明

假设索引列不是按升序排列(我希望索引为0、1、2、3、4 ... n),但我希望它按升序排列。因此,我运行以下函数尝试重置索引列:
data_match = data_match.reset_index(drop = True)

我能够使用Python 3.6获得在计算机上返回正确输出的功能。但是,当我的同事使用Python 3.6在他的计算机上运行该功能时,“ _ worker_id”列被删除了。

这是由于reset_index旁边的((drop = True))子句引起的吗?但是我不知道为什么它不能在我的计算机上工作,而不能在我的同事的计算机上工作。有人可以建议吗?

indexing python-3.x pandas

0
推荐指数
1
解决办法
4721
查看次数