小编ATM*_*TMA的帖子

从Keras多类模型中获取混淆矩阵

我正在用Keras构建一个多类模型.

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, callbacks=[checkpoint], validation_data=(X_test, y_test))  # starts training
Run Code Online (Sandbox Code Playgroud)

以下是我的测试数据的样子(它是文本数据).

X_test
Out[25]: 
array([[621, 139, 549, ...,   0,   0,   0],
       [621, 139, 543, ...,   0,   0,   0]])

y_test
Out[26]: 
array([[0, 0, 1],
       [0, 1, 0]])
Run Code Online (Sandbox Code Playgroud)

生成预测后......

predictions = model.predict(X_test)
predictions
Out[27]: 
array([[ 0.29071924,  0.2483743 ,  0.46090645],
       [ 0.29566404,  0.45295066,  0.25138539]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

我做了以下以获得混淆矩阵.

y_pred = (predictions > 0.5)

confusion_matrix(y_test, y_pred)
Traceback (most recent call last):

  File "<ipython-input-38-430e012b2078>", line 1, in <module>
    confusion_matrix(y_test, y_pred)

  File "/Users/abrahammathew/anaconda3/lib/python3.6/site-packages/sklearn/metrics/classification.py", line …
Run Code Online (Sandbox Code Playgroud)

python keras

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

从字符向量中删除一组单词

假设我有一个随机名称的字符向量.我还有另一个带有许多汽车制造的角色向量,我想要删除原始向量中发生的任何汽车事件.

所以给出了矢量:

dat = c("Tonyhonda","DaveFord","Alextoyota")
car = c("Honda","Ford","Toyota","honda","ford","toyota")
Run Code Online (Sandbox Code Playgroud)

我想最终得到如下内容:

dat = c("Tony","Dave","Alex")
Run Code Online (Sandbox Code Playgroud)

如何删除R中的部分字符串?

r

8
推荐指数
1
解决办法
3940
查看次数

没有模块名为fake useragent

我正在尝试使用PyTrendsGithub上提供的模块(这里).要使用此脚本,我需要安装fake-useragent模块:

pip install fake-useragent
Run Code Online (Sandbox Code Playgroud)

但是,每次我导入文件并尝试在控制台中执行命令时,我都会收到以下错误:

>>> from pytrends2.pyGTrends import pyGTrends
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pytrends2.py", line 18, in <module>
    from fake_useragent import UserAgent
ImportError: No module named fake_useragent
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的东西,没有运气.尝试确保安装依赖项模块时:

pip install pyyaml ua-parser user-agents
Run Code Online (Sandbox Code Playgroud)

......我得到以下内容:

abraham@abraham-Inspiron-3521:~$ sudo pip install pyyaml user-agents
Downloading/unpacking pyyaml
  Downloading PyYAML-3.11.tar.gz (248kB): 248kB downloaded
  Running setup.py (path:/tmp/pip_build_root/pyyaml/setup.py) egg_info for package pyyaml

Downloading/unpacking user-agents
  Downloading user_agents-1.0.1-py2-none-any.whl
Downloading/unpacking ua-parser (from user-agents)
  Downloading ua_parser-0.5.0-py2-none-any.whl (66kB): 66kB downloaded …
Run Code Online (Sandbox Code Playgroud)

python

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

将日期从 int64 转换为日期时间

我在熊猫数据框中有一个 int64 对象,它应该代表一个日期。

>>> df.dtypes
CreatedDate              int64
Run Code Online (Sandbox Code Playgroud)

显然,我想将其转换为日期时间,因此我执行了以下操作

df["CreatedDate2"] = pd.to_datetime(pd.Series(df["CreatedDate"]))

>>> df[["CreatedDate","CreatedDate2"]].head()
     CreatedDate               CreatedDate2
0  1466461661000 1970-01-01 00:24:26.461661
1  1464210703000 1970-01-01 00:24:24.210703
2  1423576093000 1970-01-01 00:23:43.576093
3  1423611903000 1970-01-01 00:23:43.611903
4  1423617600000 1970-01-01 00:23:43.617600
>>> 
Run Code Online (Sandbox Code Playgroud)

然而,这产生了 1970 年代的日期,这不应该是真的。谁能告诉我如何在 Pandas 数据框中将 int64 转换为日期时间。我认为这是正确的方法。

python pandas

5
推荐指数
2
解决办法
8690
查看次数

将 .dat 文件导入为数组

我有一个如下所示的 .dat 文件。

ID_1,5.0,5.0,5.0,... 
ID_2,5.0,5.0,5.0,...
Run Code Online (Sandbox Code Playgroud)

我正在尝试将数据作为数组导入到 Python 中。

如果我这样做,它会给我一个元组列表。

data = np.genfromtxt('mydat.dat',
                     dtype=None,
                     delimiter=',')
Run Code Online (Sandbox Code Playgroud)

然而,当我执行以下操作时,它给出了一个奇怪的结果,可能是因为第一个元素不是浮点数。

np.fromfile('mydat.dat', dtype=float)

array([  3.45301146e-086,   3.45300781e-086,   3.25195588e-086, ...,
         8.04331780e-096,   8.04331780e-096,   1.31544776e-259])
Run Code Online (Sandbox Code Playgroud)

对此有何建议?这是将 .dat 文件作为数组导入 Python 的两种主要方法,但它们似乎没有提供所需的结果。

python arrays numpy

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

Data.Table:每两周聚合一次

让我们看下面的data.table。它有日期和一列数字。我想获取每个日期的周数,然后对每两周进行汇总(总和)。

Date <- as.Date(c("1980-01-01", "1980-01-02", "1981-01-05", "1981-01-05", "1982-01-08", "1982-01-15", "1980-01-16", "1980-01-17", 
                  "1981-01-18", "1981-01-22", "1982-01-24", "1982-01-26"))
Runoff <- c(2, 1, 0.1, 3, 2, 5, 1.5, 0.5, 0.3, 2, 1.5, 4)
DT <- data.table(Date, Runoff)
DT
Run Code Online (Sandbox Code Playgroud)

所以从日期开始,我可以很容易地得到年份和星期。

DT[,c("Date_YrWeek") := paste(substr(Date,1,4), week(Date), sep="-")][]
Run Code Online (Sandbox Code Playgroud)

我正在努力解决的是每两周汇总一次。我想我会得到每周的第一个日期并使用这些值进行过滤。不幸的是,那是非常愚蠢的。

DT[,.(min(Date)),by=.(Date_YrWeek)][order(Date)]
Run Code Online (Sandbox Code Playgroud)

最终结果将是每两周的总和。

weeks    sum_value
1 and 2  ...
3 and 4  ...
5 and 6  ...
Run Code Online (Sandbox Code Playgroud)

有人有一种有效的方法来使用 data.table 做到这一点吗?

r data.table

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

从具有"月 - 年"格式的字符串生成日期

我有以下日期,它采用'月 - 年'格式.但是,要在ggplot2图形的x轴上绘制日期,我正在尝试将它们转换为日期格式.使用as.Date函数,它会生成NA值,因为没有提供"day"值.因此,除了使用paste()函数将日期粘贴到每个日期之外,我如何处理调整日期以便我可以绘制它们.

date = c("Jan-10","Feb-10","Mar-10","Jun-10","Jul-10")
date

date = as.Date(date, "%m/%d/%Y")   # doesn't work
date = as.Date(as.yearmon(date, format="%y-%b"))  # doesn't work
Run Code Online (Sandbox Code Playgroud)

谢谢!

r ggplot2

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

使用样条和滞后预测变量从GAM模型中提取预测

我有一些数据,我正在尝试教自己在回归模型中利用滞后预测器.我目前正在尝试从广义加法模型生成预测,该模型使用样条线来平滑数据并包含滞后.

假设我有以下数据并将数据拆分为训练和测试样本.

head(mtcars)
Train <- sample(1:nrow(mtcars), ceiling(nrow(mtcars)*3/4), replace=FALSE)
Run Code Online (Sandbox Code Playgroud)

太棒了,让我们在训练集上训练gam模型.

f_gam <- gam(hp ~ s(qsec, bs="cr") + s(lag(disp, 1), bs="cr"), data=mtcars[Train,])

summary(f_gam)
Run Code Online (Sandbox Code Playgroud)

当我对保留样本进行预测时,我收到一条错误消息.

f_gam.pred <- predict(f_gam, mtcars[-Train,]); f_gam.pred

Error in ExtractData(object, data, NULL) : 
  'names' attribute [1] must be the same length as the vector [0]
Calls: predict ... predict.gam -> PredictMat -> Predict.matrix3 -> ExtractData
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助诊断问题并帮助解决问题.我得到lag(__,1)的数据点为NA,这可能是长度不同的原因.但是,我没有解决问题的办法.

r

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

从 UTC 时间获取本地时间

假设我有一个包含日期、纬度和经度的数据集。

dt = data.table(date = c("2017-10-24 05:01:05",
                         "2017-10-24 05:01:57", 
                         "2017-10-24 05:02:54"),
                lat = c(-6.2704925537109375,
                        -6.2704925537109375,
                        -6.2704925537109375),
                long = c(106.5803680419922, 
                         106.5803680419922,
                         106.5803680419922))
Run Code Online (Sandbox Code Playgroud)

时间是UTC。是否可以使用纬度和经度将该 UTC 传输到本地时间?

time timezone r latitude-longitude data.table

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

丢弃具有高NaN值百分比的Pandas列

假设我有以下数据.

df = pd.DataFrame({'group':list('aaaabbbb'),
                   'val':[1,3,3,np.NaN,5,6,6,2],
                   'id':[1,np.NaN,np.NaN,np.NaN,np.NaN,3,np.NaN,3]})
df    
Run Code Online (Sandbox Code Playgroud)

我想删除NaN值百分比超过50%的列.我可以通过运行以下操作然后使用drop手动完成.

df.isnull().sum()/len(df)*100
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否有一个优雅和快速的代码来做到这一点?

python pandas

2
推荐指数
3
解决办法
1756
查看次数

导入后从csv中删除所有标点符号

假设我有一个包含以下数据的数据框(df):

df = data.frame(name=c("David","Mark","Alice"),
income=c("5,000","10,00","$50.55"),
state=c("KS?","FL","CA;"))
Run Code Online (Sandbox Code Playgroud)

我想集体删除此数据框中的所有标点符号.当然,我可以将每列作为单独的向量并在其上运行gsub命令(见下文),但我想删除整个数据框中的所有标点符号.

gsub("[?.;!¡¿·']", "", df$state)
Run Code Online (Sandbox Code Playgroud)

有没有办法在R中指定它而不编写for循环或使用apply函数将函数应用于每个数据框列?

csv r

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

data.table:rbind列不等的数据表列表

我有一个长度不等的数据表列表。一些数据表有​​ 35 列,其他数据表有 36 列。

我有这行代码,但它会产生错误

> lst <- unlist(full_data.lst, recursive = FALSE)
> model_dat <- do.call("rbind", lst)
Error in rbindlist(l, use.names, fill, idcol) : 
  Item 1362 has 35 columns, inconsistent with item 1 which has 36 columns. If instead you need to fill missing columns, use set argument 'fill' to TRUE.
Run Code Online (Sandbox Code Playgroud)

关于如何修改它以使其正常工作的任何建议。

r

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

标签 统计

r ×7

python ×5

data.table ×2

pandas ×2

arrays ×1

csv ×1

ggplot2 ×1

keras ×1

latitude-longitude ×1

numpy ×1

time ×1

timezone ×1