问题约束
图表
下面的拼贴显示了具有相当准确的趋势线的数据集:
图表是:
用户输入
用户可以选择:
例如,用户可以在6月份选择30天的每日报告.
趋势重量
要计算窗口大小(即计算趋势线时要平均的数据点数),使用以下表达式:
data points / trend weight
Run Code Online (Sandbox Code Playgroud)
其中data points,从用户输入获得,trend weight是6.4.即使6.4的趋势权重产生良好的拟合,它也是相当随意的,并且可能不适合不同的用户输入.
题
trend weight考虑到这个问题的限制,应该如何计算?
我有一组数据点,如果数据代表线性函数或对数函数,我很好奇.
数据集是二维的.
假设一组理想的数据点遵循函数f(x)= x.如果我绘制了数据点,我就能说它是线性的.
类似地,如果数据点遵循函数f(x)= log(x),我将能够直观地告诉它是对数的.
另一方面,让程序确定一组数据是线性的还是对数的是非常重要的.我该如何处理?
我想使用Elasticsearch来分析数据并将其显示给用户.
当用户查看模型的记录时,我想在数据库中显示该模型的"相似"记录列表,以及相似性百分比.这将匹配模型上的每个字段.
我知道使用Searchkick gem我可以使用命令查找类似的记录:
product = Product.first
product.similar(fields: ["name"], where: {size: "12 oz"})
Run Code Online (Sandbox Code Playgroud)
我想更进一步,比较整个记录(最终的关联).
在Rails中使用Elasticsearch/Searchkick是可行的,还是应该使用其他方法来分析数据?
postgresql ruby-on-rails data-analysis elasticsearch searchkick
我有一个数据集,其中包含两个级别 Male(M) 和 Female(F) 的变量 GENDER 有很多缺失值。我如何处理缺失值?处理这些缺失值的不同方法是什么。任何帮助,将不胜感激。
我的数据框中有一列数字,我想将这些数字分类为例如高、低、排除。我如何做到这一点。我一无所知,我尝试查看剪切函数和类别数据类型。
我正在研究来自 Kaggle ( https://www.kaggle.com/c/titanic/data )的泰坦尼克号泰坦尼克号数据集,我正在尝试将各种模型应用于该数据集。
在这样做之前,我已经对数据集进行了以下修改:
df.train <- dplyr::select(df.train,-PassengerId,-Name,-Ticket,-Cabin)
df.train$Survived <- factor(df.train$Survived)
df.train$Pclass <- factor(df.train$Pclass)
df.train$Parch <- factor(df.train$Parch)
df.train$SibSp <- factor(df.train$SibSp)
Run Code Online (Sandbox Code Playgroud)
我也设定了年龄,我们处于这样的情况
anyNA(df.train) == F
因此,当我进行逻辑回归和 LDA 时,一切正常(即使令人惊讶的是它们提供了完全相同的结果),但是当我尝试时:
qda.model <- qda(Survived~. , data = df.train)
Run Code Online (Sandbox Code Playgroud)
我得到:
qda.default(x, grouping, ...) 中的错误:groupe 0 n'est pas de rang plein
据我所知,这意味着我有一个等级不足。
一些在线研究将我带到这里:https : //stats.stackexchange.com/questions/35071/what-is-rank-deficiency-and-how-to-deal-with-it
但我真的不明白数据有什么问题,我有 8 个预测变量和 891 个观察值,没有一个预测变量似乎是其他变量的线性组合。
你能解释一下这个 QDA 有什么问题吗?
非常感谢!
是否可以在Python中执行glmm(例如SPSS中的GENLINMIXED分析)?我是statsmodels的忠实拥护者,但该库似乎不支持glmm ...是否有其他选择?
-编辑-
决定用R和r2py来做...
def RunAnalyseMLMlogit(dataset, outcomevars, meeneemvars, randintercept, randslope):
from rpy2.robjects import pandas2ri
from rpy2.robjects.packages import importr
base = importr('base')
stats = importr('stats')
lme4 = importr('lme4')
#data
with SavReaderNp(dataset) as reader_np:
array = reader_np.to_structured_array()
df = pd.DataFrame(array)
variabelen = ' '.join(outcomevars) + ' ~ ' + '+'.join(meeneemvars)
randintercept2 = ['(1|'+i+')' for i in randintercept]
intercept = '+'.join(randintercept2)
randslope2 = ['(1+'+meeneemvars[0]+'|'+i+')' for i in randslope]
slope = ' '.join(randslope2)
pandas2ri.activate()
r_df = pandas2ri.py2ri(df)
#model
#random intercepts + random slopes
if …Run Code Online (Sandbox Code Playgroud) 我在 Python 3 中做了一个凝聚层次聚类实验,我发现scipy.cluster.hierarchy.cut_tree()没有为某些输入链接矩阵返回请求的聚类数。所以,现在我知道有在一个bug cut_tree()函数(如描述在这里)。
但是,我需要能够获得平面聚类,并k为我的数据点分配不同的标签。您知道k从任意输入链接矩阵中获得带有标签的平面聚类的算法Z吗?我的问题归结为:如何cut_tree()在没有错误的情况下从头开始计算什么?
您可以使用此数据集测试您的代码。
from scipy.cluster.hierarchy import linkage, is_valid_linkage
from scipy.spatial.distance import pdist
## Load dataset
X = np.load("dataset.npy")
## Hierarchical clustering
dists = pdist(X)
Z = linkage(dists, method='centroid', metric='euclidean')
print(is_valid_linkage(Z))
## Now let's say we want the flat cluster assignement with 10 clusters.
# If cut_tree() was working we would do
from scipy.cluster.hierarchy import cut_tree
cut = cut_tree(Z, 10)
Run Code Online (Sandbox Code Playgroud)
旁注:另一种方法也许可以是使用 …
问题:让我们从 Kaggle 中获取 Titanic 数据集。我有包含“Pclass”、“Sex”和“Age”列的数据框。我需要在“年龄”列中用某个组的中位数填充 NaN。如果是 1st class 的女性,我想用 1st class 女性的中位数填充她的年龄,而不是整个 Age 列的中位数。
问题是如何在某个切片中进行这种更改?
我试过:
data['Age'][(data['Sex'] == 'female')&(data['Pclass'] == 1)&(data['Age'].isnull())].fillna(median)
Run Code Online (Sandbox Code Playgroud)
“中位数”是我的价值,但没有任何变化“就地=真”没有帮助。
非常感谢!
我想在所有变量中获取最新的非空值。例如,在这个数据集中,我们有 3 个服务日期。
import pandas as pd
df =pd.DataFrame( {'PatientID': [1, 1, 1],
'Date': ['01/01/2018', '01/15/2018','01/20/2018'],
'Height': ['Null', '178', 'Null'],
'Weight': ['Null', '182', '190'],
'O2 Level': ['95', '99', '92'],
'BPS': ['120', 'Null', 'Null'],
'DPS': ['80', 'Null', 'Null']})
Run Code Online (Sandbox Code Playgroud)
作为输出,我需要这样的东西:
df = pd.DataFrame( {'PatientID': [1],
'Height': ['178'],
'Weight': ['190'],
'O2 Level': ['92'],
'BPS': ['120'],
'DPS': ['80']})
Run Code Online (Sandbox Code Playgroud)

我的原始数据集有数千名患者和 100 多个协变量。目前我正在使用三重循环来完成这项任务,效率非常低。我正在寻找更有效的解决方案。
data-analysis ×10
python ×5
pandas ×3
math ×2
algorithm ×1
dataframe ×1
ireport ×1
java ×1
missing-data ×1
numpy ×1
postgresql ×1
r ×1
scipy ×1
searchkick ×1
spss ×1
statistics ×1