R 的“forecast”包有一个函数 nnetar,它使用带有单个隐藏层的前馈神经网络在时间序列中进行预测。
现在我正在使用 Python 进行类似的分析。我想使用不需要像深度学习那样复杂的神经网络。也许 2 层和几个节点对我来说已经足够了。
那么,Python 是否有一个简单的神经网络模型可以用于像 nnetar 这样的时间序列?如果不是,如何处理这个问题?
我正在研究数据块中的 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)
直到这里,我才能得到相关矩阵。结果如下:
现在我的问题是:
因为我刚刚研究了pyspark和databricks。ggplot 或 matplotlib 都可以解决我的问题。
我需要做两个数据帧的笛卡尔积.例如,
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)
这种方式会产生更多行.有人能帮助我离开这里吗?谢谢
假设我们有三个点,a,b,c.b和c链接成一条线.如何用R来计算从a线到这条线的距离?有什么功能吗?非常感谢
这是我的数据:
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标签。
谁能解释为什么会发生这种情况以及如何解决它?
在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,d在datatable().我选了一个ui.R,然后,一个被发送回服务器,以便我可以使用datatable()其中只包含一个用于下一次计算的子集.
所以,我的问题是:我该如何发回server.R?
我有一个数组:
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)
但是没有一个是正确的.有人可以帮帮我吗?任何其他功能也都可以.
这是我的数据:
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。如果我有类似这样的数据:
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和其他功能。我可能以错误的方式组合它们。
有人可以在这里帮我吗?
我正在学习闪亮和闪亮的仪表板。我的代码是这样的:
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)