Questions tagged «python»

用于与编程语言Python相关的数据科学问题。不适用于一般编码问题(-> stackoverflow)。


2
我们应该在工作流中的哪里处理丢失的数据?
我正在构建一个工作流,用于从一个非常大的数据库(这里是通过SQL和的Vertica)中提取的数据创建机器学习模型(在我的情况下,使用Python pandas和sklearn软件包)pyodbc,该过程中的关键步骤包括估算缺失预测值。在单个分析或统计平台(Python,R,Stata等)中,这很简单,但是我很好奇在多平台工作流程中该步骤的最佳位置。 在Python中使用sklearn.preprocessing.Imputer类,使用pandas.DataFrame.fillna方法或手动进行此操作非常简单(取决于所使用的插补方法的复杂性)。但是由于我要在亿万个记录中的数十个或数百个列中使用它,所以我想知道是否存在一种更有效的方法来提前通过SQL直接进行此操作。除了在像Vertica这样的分布式平台上执行此操作的潜在效率之外,这还具有使我们能够创建用于构建“完整”表版本的自动化管道的额外好处,因此我们不需要填写新的表集每次我们要运行模型时,都会从头开始缺少值。 我还没有找到很多指导,但是我想我们可以: 为每个不完整的列创建一个替代值表(例如,平均值/中位数/众数,整体或按组) 将替换值表与原始表连接起来,为每行和不完整的列分配一个替换值 如果可用,使用一系列case语句获取原始值,否则使用替代值 这是在Vertica / SQL中做的合理的事情,还是有充分的理由不打扰而只是在Python中处理它?如果是后者,是否有充分的理由在大熊猫而不是sklearn或相反的情况下这样做?谢谢!


3
一类具有不平衡,异质负面背景的歧视性分类?
我正在努力改进现有的监督分类器,以将{蛋白质}序列归为特定类别(神经肽激素前体)或不属于特定类别。 在大约1300万个蛋白质序列的背景下(“未知/注释不充分的背景”),或大约100,000个经过审查的相关蛋白质,已知的“阳性”蛋白质带有多种属性(但很少有显式注释的蛋白质) “负”方式)。 我以前的实现将其视为二进制分类问题:阳性集=标记为Neuropeptides的蛋白质。阴性集:从剩余的蛋白质中随机抽取1300个样本(总计),这些蛋白质的长度方向分布大致相似。 那行得通,但是我想大大提高机器的辨别能力(目前,在多个随机采样的负数集上,按CV测得的精度,AUC,F1约为83-86%)。 我的想法是:1)使这成为一个多类问题,选择2-3种不同类型的蛋白质,这些蛋白质将根据其特性/功能类别以及(也许)另一组随机采样的样本确定为阴性。(这里的优先级将是负集合,其特征/特征与正集合相似,同时仍具有定义的特征)。2)一次课堂学习-很好,但是据我了解,它仅用于异常检测,并且其性能比歧视性方法差。 *)我听说过PU学习,听起来很整洁,但是我正在编程N00b,而且我不知道它的任何现有实现。(在Python / sci-kit中学习)。 那么,方法1在理论POV中是否有意义?有没有最好的方法来制作多个负数集?(我也可以简单地使用大量[50K]的“阴性”蛋白,但是它们彼此之间非常不同,因此我不知道分类器如何将它们作为一个大的不平衡混合物来​​处理)。谢谢!

6
对几个连续变量进行对数转换的原因是什么?
我一直在做分类问题,并且阅读了很多人的代码和教程。我注意到的一件事是,许多人采用np.log或log连续变量,例如loan_amount或applicant_income等。 我只想了解其背后的原因。它有助于提高我们的模型预测准确性。它是强制性的吗?还是背后有逻辑? 如果可能的话,请提供一些解释。谢谢。

3
如何使用predict_generator对Keras中的流测试数据进行预测?
在Keras从头开始培训卷积网络的博客中,代码仅显示了运行在培训和验证数据上的网络。那测试数据呢?验证数据是否与测试数据相同(我认为不是)。如果在与train和validation文件夹相似的行上有一个单独的测试文件夹,我们如何获得测试数据的混淆矩阵。我知道我们必须使用scikit Learn或其他软件包来执行此操作,但是如何从类明智的测试数据概率中获取一些信息呢?我希望将其用于混淆矩阵。

4
熊猫现在比data.table快吗?
https://github.com/Rdatatable/data.table/wiki/Benchmarks-%3A-Grouping 自2014年以来,未对data.table基准进行更新。我听说某个地方Pandas现在的速度比快data.table。这是真的?有人做过基准测试吗?我以前从未使用过Python,但会考虑切换是否pandas可以击败data.table?
16 python  r  pandas  data  data.table 


5
句子相似度预测
我正在寻求解决以下问题:我有一组句子作为我的数据集,并且我希望能够键入一个新句子,并找到该新句子与数据集中最相似的句子。一个示例如下所示: 新句子:“ I opened a new mailbox” 基于数据集的预测: Sentence | Similarity A dog ate poop 0% A mailbox is good 50% A mailbox was opened by me 80% 我已经读到余弦相似度可以用来解决与tf-idf配对的这类问题(RNN不应对基本方法带来重大改进),或者word2vec也可以用于相似的问题。那些在这种特定情况下实际可行吗?是否有其他技术/算法可以解决此问题(最好使用Python和SKLearn,但我也愿意学习TensorFlow)?

2
为什么使用大写字母定义训练和测试数据的变量(在Python中)?
我希望这个问题最适合本网站... 在Python中,通常使用大写字母作为第一个字符来定义类名,例如 class Vehicle: ... 但是,在机器学习领域,通常将训练和测试数据定义为Xand Y-not x和y。例如,我现在正在阅读有关Keras的教程,但是它使用X和Y作为变量: from sklearn import datasets mnist = datasets.load_digits() X = mnist.data Y = mnist.target 为什么将这些定义为大写字母?机器学习领域之间是否存在任何约定(至少在Python中如此),最好使用大写字母来定义这些变量? 还是人们在机器学习中区分大小写变量? 实际上,同一教程稍后将区分这些变量,如下所示: from sklearn.cross_validation import train_test_split train_X, test_X, train_y, test_y = train_test_split(X, Y, train_size=0.7, random_state=0)
15 python  dataset 

2
SelectKBest如何工作?
我正在看本教程:https : //www.dataquest.io/mission/75/improving-your-submission 在第8节中,找到最佳功能,它显示了以下代码。 import numpy as np from sklearn.feature_selection import SelectKBest, f_classif predictors = ["Pclass", "Sex", "Age", "SibSp", "Parch", "Fare", "Embarked", "FamilySize", "Title", "FamilyId"] # Perform feature selection selector = SelectKBest(f_classif, k=5) selector.fit(titanic[predictors], titanic["Survived"]) # Get the raw p-values for each feature, and transform from p-values into scores scores …

1
是否需要分层抽样(随机森林,Python)?
我使用Python在不平衡的数据集上运行随机森林模型(目标变量是一个二进制类)。在拆分训练和测试数据集时,我很难避免是否使用分层抽样(如所示的代码)。到目前为止,我在项目中观察到分层案例将导致更高的模型性能。但是我认为,如果我将使用我的模型来预测新案例,那么新案例的目标类与当前数据集的分布很可能会有所不同。因此,我倾向于放宽此限制,并使用未分层的拆分。任何人都可以建议以澄清这一点吗? train,test=train_test_split(myDataset, test_size=0.25, stratify=y)

2
不平衡数据的二进制分类模型
我有一个具有以下规格的数据集: 训练193,176个样本的数据集,具有2,821个阳性 包含82,887个样本和673个阳性样本的测试数据集 有10个功能。 我想执行一个二进制分类(0或1)。我面临的问题是数据非常不平衡。在对数据进行归一化和缩放以及一些特征工程并使用几种不同的算法之后,这些是我可以实现的最佳结果: mean square error : 0.00804710026904 Confusion matrix : [[82214 667] [ 0 6]] 即只有6个正确的正面命中率。这是使用逻辑回归。这是我尝试过的各种方法: 不同的算法,例如RandomForest,DecisionTree,SVM 更改参数值以调用函数 一些基于直觉的要素工程以包含复合要素 现在,我的问题是: 我该怎么做才能增加正面的点击次数? 在这种情况下,如何确定是否存在过度拟合?(我曾尝试绘图等。) 在什么时候可以得出结论,也许这可能是我所能做到的最佳选择?(考虑到673中只有6个匹配项,这似乎很可悲) 有没有办法使正样本实例更重,从而提高模式识别能力并导致更多匹配? 哪些图形化图可以帮助检测离群值或关于哪种模式最适合的直觉? 我将scikit-learn库与Python一起使用,并且所有实现都是库函数。 编辑: 以下是一些其他算法的结果: 随机森林分类器(n_estimators = 100) [[82211 667] [ 3 6]] 决策树: [[78611 635] [ 3603 38]]

1
用Python在地图上绘制热图
模式分析具有出色的热图功能(https://community.modeanalytics.com/gallery/geographic-heat-map/)。但这不利于比较地图(每个报告仅一张地图)。 他们所允许的是将数据轻松地拉入包装好的python笔记本中。然后,可以将python中的任何图像轻松添加到报告中。 所以我的问题是:如何在Python中的实际地图上重新创建热图?我已经检查了卵泡并进行了密探,但似乎两者都没有相似的功能。

5
现代R和/或Python库会使SQL过时吗?
我在办公室工作,其中SQL Server是我们所做的一切工作的骨干,从数据处理到清理再到处理。我的同事擅长编写复杂的功能和存储过程,以系统地处理传入的数据,以便可以对其进行标准化并将其用于报告,可视化和分析项目中。在这里开始之前,除了编写最基本的查询之外,我对SQL的了解很少。我的大部分分析准备工作都是在R中完成的。我的老板坚持说我提高了我的SQL技能,尽管似乎很少有分配工作无法更有效地完成,并且使用R编写的代码行少得多软件包,例如dplyr,data.table和tidyr(仅举几例)。我的问题是-这有意义吗? 几周前,我发现自己面临的任务是获取满足特定条件的表中每一行的列名列表,然后将它们连接成字符串向量。截止日期很紧,当时我遇到了一些障碍,无法完全解决这个问题。我问我的老板,后者又请我的同事编写脚本TSQL来解决问题。当他在研究它时,我想出了一种方法来用R编写一个相当简单的函数并将其应用于数据框。大约两个小时后,我的同事带着他的剧本回来了。至少有75行包含两个嵌套的for循环。我要求他告诉它何时完成运行,他说这需要几个小时。同时,我的R脚本能够在约30秒内循环遍历约45,000条记录。 我是否应该认为R是用于清理和处理数据的更好选择?也许我办公室里的SQL开发人员只是无能为力?我很好奇,是否同时使用R和SQL(或Python和SQL)的人对此有任何想法。
14 python  r  data-cleaning  data  sql 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.