小编Fen*_*hen的帖子

Python 在 R 的包预测中是否有类似于 nnetar 的模型?

R 的“forecast”包有一个函数 nnetar,它使用带有单个隐藏层的前馈神经网络在时间序列中进行预测。

现在我正在使用 Python 进行类似的分析。我想使用不需要像深度学习那样复杂的神经网络。也许 2 层和几个节点对我来说已经足够了。

那么,Python 是否有一个简单的神经网络模型可以用于像 nnetar 这样的时间序列?如果不是,如何处理这个问题?

python r neural-network forecast

11
推荐指数
1
解决办法
1506
查看次数

使用pyspark+databricks时如何绘制相关热图

我正在研究数据块中的 pyspark。我想生成一个相关热图。假设这是我的数据:

myGraph=spark.createDataFrame([(1.3,2.1,3.0),
                               (2.5,4.6,3.1),
                               (6.5,7.2,10.0)],
                              ['col1','col2','col3'])
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import pyspark
from pyspark.sql import SparkSession
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from ggplot import *
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.stat import Correlation
from pyspark.mllib.stat import Statistics

myGraph=spark.createDataFrame([(1.3,2.1,3.0),
                               (2.5,4.6,3.1),
                               (6.5,7.2,10.0)],
                              ['col1','col2','col3'])
vector_col = "corr_features"
assembler = VectorAssembler(inputCols=['col1','col2','col3'], 
                            outputCol=vector_col)
myGraph_vector = assembler.transform(myGraph).select(vector_col)
matrix = Correlation.corr(myGraph_vector, vector_col)
matrix.collect()[0]["pearson({})".format(vector_col)].values
Run Code Online (Sandbox Code Playgroud)

直到这里,我才能得到相关矩阵。结果如下:

在此处输入图片说明

现在我的问题是:

  1. 如何将矩阵传输到数据帧?我已经尝试了如何在 pyspark 中将 DenseMatrix 转换为 spark DataFrame 的方法?以及如何获得相关矩阵值 pyspark。但它对我不起作用。
  2. 如何生成如下所示的相关热图:

在此处输入图片说明

因为我刚刚研究了pyspark和databricks。ggplot 或 matplotlib 都可以解决我的问题。

heatmap ggplot2 correlation pyspark databricks

7
推荐指数
1
解决办法
8606
查看次数

R:两个数据帧的笛卡尔积的任何函数?

我需要做两个数据帧的笛卡尔积.例如,

 A = id weight type
     10    20     a
     10    30     b
     25    10     c
 B = date  report
     2007    y
     2008    n
Run Code Online (Sandbox Code Playgroud)

然后C就像做了A和B的笛卡尔积之后

 C =  id weight type  date  report
      10    20     a    2007    y
      10    20     a    2008    n
      10    30     b    2007    y
      10    30     b    2008    n
      25    10     c    2007    y
      25    10     c    2008    n
Run Code Online (Sandbox Code Playgroud)

因为有些ID在A中是相同的,所以我不能使用类似的方式

C <- merge(A$id,B$date)
C <- merge(C,A,by="id")
C <- merge(C,B,by="date")
Run Code Online (Sandbox Code Playgroud)

这种方式会产生更多行.有人能帮助我离开这里吗?谢谢

r cartesian dataframe

6
推荐指数
1
解决办法
2021
查看次数

使用R,如何计算从一点到一条线的距离?

假设我们有三个点,a,b,c.b和c链接成一条线.如何用R来计算从a线到这条线的距离?有什么功能吗?非常感谢

r point distance line

5
推荐指数
1
解决办法
6515
查看次数

使用 matplotlib 缺少第一个 x 标签

这是我的数据:

a3=pd.DataFrame({'OfficeName':['a','b','c','d','e','f','g','h'],
                 'Ratio': [0.1,0.15,0.2,0.3,0.2,0.25,0.1,0.4]})
Run Code Online (Sandbox Code Playgroud)

这是我绘制条形图的代码:

fig, ax = plt.subplots()
ind = np.arange(a3.loc[:,'OfficeName'].nunique())    # the x locations for the groups
width = 0.35         # the width of the bars
p1 = ax.bar(ind,a3.loc[:,'Ratio'],width)
ax.set_title('Ratio of refunds to purchases')
ax.set_xticklabels(a3.loc[:,'OfficeName'],ha='center')
#ax.set_xticklabels(['a','b','c','d','e','f','g','h'],ha='center')
ax.set_xlabel('x Group')
ax.set_ylabel('Ratio')
plt.show()
Run Code Online (Sandbox Code Playgroud)

但是,在我的图表中,第一个 x 标签丢失了:

在此输入图像描述

我认为这个问题与Matplotlib不同:将x轴刻度标签向左移动一个位置,因为我什至不需要旋转x标签。

谁能解释为什么会发生这种情况以及如何解决它?

python label matplotlib pandas

5
推荐指数
1
解决办法
2273
查看次数

如何在ui.R中获取uioutput中的值并将其发送回server.R?

ui.R,我把:

uiOutput("singlefactor")
Run Code Online (Sandbox Code Playgroud)

server.R,我有:

  output$singlefactor <- renderUI({
    selectInput("sfactor", "Feature selection:", names(datatable()))
  })
Run Code Online (Sandbox Code Playgroud)

使用这些,我可以datatable()在选择菜单中显示data.frame的列名.我接下来要做的是:

比方说,列名a,b,c,ddatatable().我选了一个ui.R,然后,一个被发送回服务器,以便我可以使用datatable()其中只包含一个用于下一次计算的子集.

所以,我的问题是:我该如何发回server.R

r shiny

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

如何使用paste0函数将\'放入我的字符串中

我有一个数组:

t <- c("IMCR01","IMFA02","IMFA03")
Run Code Online (Sandbox Code Playgroud)

我想让它看起来像这样:

"\'IMCR01\'","\'IMFA02\'","\'IMFA03\'"
Run Code Online (Sandbox Code Playgroud)

我试过不同的方式:

paste0("\'",t,"\'")
paste0("\\'",t,"\\'")
paste0("\\\\'",t,"\\\\'")
Run Code Online (Sandbox Code Playgroud)

但是没有一个是正确的.有人可以帮帮我吗?任何其他功能也都可以.

string r paste

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

在传单中着色连续数据,R 不起作用

这是我的数据:

t <- data.frame(Name=c('A','B','C','D','E','F','G','H','I','J'),
                Longitude=c(151.2008,151.2458,150.8217,151.1215,150.8906,151.0660,150.8889,150.9188,150.4364,150.9982),
                Latitude=c(-33.90772,-33.89250,-34.05951,-33.97856,-34.40470,-33.90010,-33.92832,-33.90761,-34.44651,-33.79232),
                Diff=c(0.03,0.10,0.12,0.04,-0.12,0.34,-0.14,-0.01,0.21,-0.02),
                Diff1=c(30,100,120,40,-120,340,-140,-10,210,-20))
Run Code Online (Sandbox Code Playgroud)

我想使用传单和 R 在地图上绘制这些点,并使用 Diff / Diff1 的值进行连续颜色。这是我的代码:

library(leaflet)
pal <- colorNumeric(
    palette = colorRampPalette(c('red','green')),
    domain = t$Diff1)
leaflet(data=t) %>%
    addTiles() %>%
    addCircles(lng=~Longitude,lat=~Latitude,radius=10,popup=~Name,color=~pal(Diff1))
Run Code Online (Sandbox Code Playgroud)

我在这里不需要很多不同的颜色。我只是希望颜色可以随着 Diff1 的增加而从红色变为绿色。但我的地图上只有红点:

在此处输入图片说明

另一个问题是无论我如何改变半径的值,数据点的大小根本没有改变。我不知道我哪里错了。

所以,我的问题是:

如何使用连续色?如何改变点的大小?

r colors leaflet

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

在Python中,如何像R一样对by + mutate + ifelse进行分组?

我通常使用R。如果我有类似这样的数据:

Product    Index   Value
   a         1       0.5
   a         1       0.4
   c         1       1.4
   c         2       0.75
   e         2       0.6
   f         3       0.9
Run Code Online (Sandbox Code Playgroud)

如果我的R代码是:

a <- data %>%
  group_by(Product) %>%
  mutate(Flag=ifelse(all(Index==1),'right','wrong'))
Run Code Online (Sandbox Code Playgroud)

这意味着,我首先按产品对数据进行分组。然后,对于每个组,我给它一个新字段,称为Flag。如果该组中的索引全为1,则标志为正确,否则为错误。同时,所有记录都保留下来。因此,结果应如下所示:

Product    Index   Value    Flag
   a         1       0.5    right
   a         1       0.4    right
   c         1       1.4    wrong
   c         2       0.75   wrong
   e         2       0.6    wrong
   f         3       0.9    wrong
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何在python中执行相同的操作?我尝试了np.where,groupby,transform和其他功能。我可能以错误的方式组合它们。

有人可以在这里帮我吗?

python transform mutate

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

当 menuItem 中的更多功能使用闪亮和闪亮的仪表板时,tabItem 无法显示内容

我正在学习闪亮和闪亮的仪表板。我的代码是这样的:

library(shiny)
library(shinydashboard)
library(DT)
library(RODBC)
library(stringr)
library(dplyr)
ch<-odbcConnect('B1P HANA',uid='fchen4',pwd='XUEqin0312')
sidebar <- dashboardSidebar(
  sidebarMenu(
    menuItem("Query1",tabName="Query1",icon=icon("table"),
         numericInput('Start1','Start Date',19800312,min=20170101,max=20200101),
         numericInput('End1','End Date',19800312,min=20170101,max=20200101),
         textInput('Office1','Office ID','0'),
         submitButton("Submit")),
    menuItem("Query2",tabName="Query2",icon=icon("table"),
         numericInput('Start2','Start Date',20180101,min=20170101,max=20200101),
         numericInput('End2','End Date',20180101,min=20170101,max=20200101),
         textInput('Office2','Office ID','0'),
         submitButton("Submit"))
  )
)
body <- dashboardBody(
  tabItems(
    tabItem(tabName="Query1",h2("Dashboard tab content")),
    tabItem(tabName = "Query2",h2("Widgets tab content"))
  )
)
ui <- dashboardPage(
  dashboardHeader(title = 'LOSS PREVENTION'),
  sidebar,
  body
)
server <- function(input, output) {
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

仪表板看起来像这样:

在此处输入图片说明

可以看到,当我在侧边栏中放置一些输入框时,文本无法显示在主要部分。

但是,当我的代码是这样的:

library(shiny)
library(shinydashboard)
library(DT)
library(RODBC)
library(stringr)
library(dplyr)
ch<-odbcConnect('B1P HANA',uid='fchen4',pwd='XUEqin0312')
sidebar <- dashboardSidebar(
  sidebarMenu(
    menuItem("Query1",tabName="Query1",icon=icon("table")),
    menuItem("Query2",tabName="Query2",icon=icon("table")) …
Run Code Online (Sandbox Code Playgroud)

r sidebar menubar shiny shinydashboard

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