标签: data-analysis

R randomForest用于分类

我正在尝试使用randomForest进行分类,但我反复收到一条错误消息,似乎没有明显的解决方案(randomForest对我来说在过去做回归效果很好).我在下面粘贴了我的代码."成功"是一个因素,所有因变量都是数字.有关如何正确运行此分类的任何建议?

> rf_model<-randomForest(success~.,data=data.train,xtest=data.test[,2:9],ytest=data.test[,1],importance=TRUE,proximity=TRUE)

Error in randomForest.default(m, y, ...) : 
  NA/NaN/Inf in foreign function call (arg 1)
Run Code Online (Sandbox Code Playgroud)

另外,这是一个数据集的示例:

头(数据)

success duration  goal reward_count updates_count comments_count backers_count     min_reward_level max_reward_level
True 20.00000  1500           10            14              2            68                1             1000
True 30.00000  3000           10             4              3            48                5             1000
True 24.40323 14000           23             6             10           540                5             1250
True 31.95833 30000            9            17              7           173                1            10000
True 28.13211  4000           10            23             97          2936               10              550
True 30.00000  6000           16            16            130          2043               25 …
Run Code Online (Sandbox Code Playgroud)

r classification data-analysis random-forest

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

如何从无线路由器捕获原始信号?

我现在看到几个项目,它们从典型的无线路由器收集的无线电数据中获取新的空间信息:

http://wisee.cs.washington.edu/

http://www.extremetech.com/extreme/133936-using-wifi-to-see-through-walls

将无线路由器用作无源雷达的想法非常棒.

我非常有兴趣尝试自己从无线路由器收集的数据,但是关于如何与无线路由器实际接口以及获取设备收集的原始信息流的信息很少.此前有人问过类似的问题,但我还没有看到一个满意的答案.

我没有必要的代表点来链接到其他问题但是看到:

'像声卡那样从WiFi卡捕获原始信号'

'raw wifi'信号数据"访问"

我正在寻找一种解决方案,让我可以使用低成本设备,例如常见的WRT54G无线路由器.如果您的答案涉及自定义无线电硬件,则无需费心发布.

wireless signal-processing data-analysis radio wifi

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

python pandas初学者:多维数据分析工作流程(groupby + agg + plot)

我是熊猫的新手,并尝试学习如何处理我的多维数据.

我的数据

我们假设,我的数据是列['A','B','C','D','E','F','G']的大CSV.该数据描述了一些模拟结果,其中['A','B',...,'F']是模拟参数,'G'是输出之一(本例中只有现有输出!).

编辑/更新: 正如Boud在评论中建议的那样,让我们​​生成一些与我的数据兼容的数据:

import pandas as pd
import itertools
import numpy as np

npData = np.zeros(5000, dtype=[('A','i4'),('B','f4'),('C','i4'), ('D', 'i4'), ('E', 'f4'), ('F', 'i4'), ('G', 'f4')])

A = [0,1,2,3,6] # param A: int
B = [1000.0, 10.000] # param B: float
C = [100,150,200,250,300] # param C: int
D = [10,15,20,25,30] # param D: int
E = [0.1, 0.3] # param E: float
F = [0,1,2,3,4,5,6,7,8,9] # param F = random-seed = int -> 10 runs per …
Run Code Online (Sandbox Code Playgroud)

python data-analysis pandas

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

Python Pandas figsize没有定义

我是pandas用于数据分析的新手,我刚刚安装了具有所需依赖项的pandas(NumPy,python-dateutil,pytz,numexpr,bottleneck和matplotlib).但是当我开始尝试最基本的代码时:

import pandas as pd
pd.set_option('display.mpl_style', 'default') # Make the graphs a bit prettier
figsize(15, 5)
Run Code Online (Sandbox Code Playgroud)

它抱怨NameError:名称'figsize'未定义.

我不确定我是否还需要其他依赖项.谁能对此有所了解?

python data-analysis pandas

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

在IPython笔记本(Bokeh)中绘制大型数据集

我有一个大型数据集,我想在IPython笔记本中绘图.

我将~0.5GB .csv文件读入Pandas DataFrame使用read_csv,大约需要两分钟.然后我尝试绘制这些数据.

data = pd.read_csv('large.csv')
output_notebook()
p1 = figure()
p1.circle(data.index, data['myDataset'])
show(p1)
Run Code Online (Sandbox Code Playgroud)

我的浏览器旋转,并没有向我显示任何情节.我尝试过以下方法:

  1. output_file() 代替 output_notebook()
  2. 使用ColumnSource对象作为source参数的图形circle()
  3. 将我的数据下采样更易于管理.

Bokeh在其网站上声称提供"非常大或流式数据集的高性能交互".如何在没有计算机停止的情况下可视化这些大型数据集?

python data-analysis ipython-notebook bokeh

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

为什么 pd.unique() 比 np.unique() 更快?

我尝试比较两者,一个是,pandas.unique()另一个是numpy.unique(),我发现后者实际上超越了第一个。
我不确定阁下是否是线性的。

谁能告诉我为什么在代码实现方面存在这样的差异?什么情况下我应该使用哪个?

python numpy data-analysis pandas data-science

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

噪声正弦时间序列中的实时峰值检测

我一直在尝试实时检测正弦时间序列数据中的峰值,但是到目前为止我还没有成功。我似乎找不到一种实时算法,可以以合理的准确度检测正弦信号中的峰值。我要么没有检测到峰值,要么在正弦波上有无数个点被检测为峰值。

对于类似于正弦波并且可能包含一些随机噪声的输入信号,有什么好的实时算法?


作为一个简单的测试案例,考虑一个频率和幅度始终相同的固定正弦波。(确切的频率和幅度无关紧要;我随意选择了 60 Hz 的频率,+/- 1 个单位的幅度,采样率为 8 KS/s。)以下 MATLAB 代码将生成这样的正弦曲线信号:

dt = 1/8000;
t  = (0:dt:(1-dt)/4)';
x  = sin(2*pi*60*t);
Run Code Online (Sandbox Code Playgroud)

使用Jean-Paul 开发和发布的算法,我要么没有检测到峰值(左),要么检测到无数个“峰值”(右):

我已经尝试了我能想到的这 3 个参数的几乎所有值组合,遵循让-保罗给出的“经验法则”,但到目前为止我还没有得到我预期的结果。


我找到了由 Eli Billauer 开发和发布的替代算法,它确实给了我想要的结果——例如

尽管 Eli Billauer 的算法要简单得多并且确实能够可靠地产生我想要的结果,但它并不适合实时应用程序。


作为我想应用此类算法的信号的另一个示例,请考虑 Eli Billauer 为他自己的算法给出的测试用例:

t = 0:0.001:10;
x = 0.3*sin(t) + sin(1.3*t) + 0.9*sin(4.2*t) + 0.02*randn(1, 10001);
Run Code Online (Sandbox Code Playgroud)

这是一个更不寻常(不太均匀/规则)的信号,具有变化的频率和幅度,但通常仍是正弦波。绘制时,峰值对眼睛来说是显而易见的,但很难用算法识别。


正确识别正弦输入信号中的峰值的好的实时算法是什么?在信号处理方面,我并不是真正的专家,因此获得一些考虑正弦输入的经验法则会很有帮助。或者,也许我需要修改例如 Jean-Paul 的算法本身,以便在正弦信号上正常工作。如果是这种情况,需要进行哪些修改,我将如何进行这些修改?

algorithm matlab signal-processing time-series data-analysis

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

textcat -&gt; 不允许架构额外字段

我一直在尝试使用 PyCharm 练习从本教程中学到的知识:( https://realpython.com/sentiment-analysis-python/ )。

还有这一行:

textcat.add_label("pos")
Run Code Online (Sandbox Code Playgroud)

生成警告: 无法在“(Doc) -> Doc | ”中找到引用“add_label” (文档)-> 文档'

我知道这是因为“ nlp.create_pipe() ”生成一个文档而不是字符串,但是(本质上是因为我不知道在这种情况下该怎么做!)无论如何我都运行了脚本,但后来我得到了一个错误从这一行:

textcat = nlp.create_pipe("textcat", config={"architecture": "simple_cnn"})
Run Code Online (Sandbox Code Playgroud)

错误消息:

raise ConfigValidationError(
thinc.config.ConfigValidationError:

Config validation error

textcat -> architecture extra fields not permitted

{'nlp': <spacy.lang.en.English object at 0x0000015E74F625E0>, 'name': 'textcat', 'architecture': 'simple_cnn', 'model': {'@architectures': 'spacy.TextCatEnsemble.v2', 'linear_model': {'@architectures': 'spacy.TextCatBOW.v1', 'exclusive_classes': True, 'ngram_size': 1, 'no_output_layer': False}, 'tok2vec': {'@architectures': 'spacy.Tok2Vec.v2', 'embed': {'@architectures': 'spacy.MultiHashEmbed.v1', 'width': 64, 'rows': [2000, 2000, 1000, 1000, 1000, 1000], 'attrs': ['ORTH', 'LOWER', 'PREFIX', 'SUFFIX', 'SHAPE', 'ID'], …
Run Code Online (Sandbox Code Playgroud)

python data-analysis pycharm spacy

7
推荐指数
2
解决办法
6219
查看次数

从大型数据集中的成对列中选择最后一个有效数据日期

我有一个如下所示的数据框,其中第一列包含日期,其他列包含这些日期的数据:

         date  k1-v1  k1-v2  k2-v1  k2-v2  k1k3-v1  k1k3-v2  k4-v1  k4-v2
0  2021-01-05    2.0    7.0    NaN    NaN      NaN      NaN    9.0    6.0
1  2021-01-31    NaN    NaN    8.0    5.0      NaN      NaN    7.0    6.0
2  2021-02-15    9.0    5.0    NaN    3.0      4.0      NaN    NaN    NaN
3  2021-02-28    NaN    9.0    0.0    1.0      NaN      NaN    8.0    8.0
4  2021-03-20    7.0    NaN    NaN    NaN      NaN      NaN    NaN    NaN
5  2021-03-31    NaN    NaN    8.0    NaN      3.0      NaN    8.0    0.0
6  2021-04-10    NaN    NaN    7.0    6.0      NaN      NaN    NaN    9.0 …
Run Code Online (Sandbox Code Playgroud)

python data-analysis dataframe pandas

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

ValueError:仅 pandas DataFrame 支持使用字符串指定列

我正在使用 titanic.csv 数据集,其中我尝试使用列传输和管道,而在使用 pipeline.predict(x_test) 时我收到错误。这是我的代码。

titanic={'sex':['M','M','M','F','F','M','F','F','M','M'],
     'Pclass':[2,2,2,1,1,2,3,1,3,3],
     'age':[58,45,20,27,38,43,40,35,60,72],
     'embarked':['s','c','c','s','s','s','s','s','c','c'],
     'survived':[1,0,1,0,1,1,1,1,0,0]
    }
df=pd.DataFrame(data=titanic)
x=df.drop(['survived'],axis=1)
y=df.survived
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y)

col_tra_1=ColumnTransformer([
('trf1',SimpleImputer(),['Pclass','age'])
],remainder='passthrough')

col_tra_2=ColumnTransformer([
('ohe1',OneHotEncoder(sparse=False, handle_unknown='ignore'),['sex','embarked'])
],remainder='passthrough')

col_tra_3=ColumnTransformer([
    ('scale',MinMaxScaler(),['Pclass','age'])
],remainder='passthrough')


   model=DecisionTreeClassifier()
from sklearn.pipeline import Pipeline, make_pipeline
pipe = Pipeline([
    ('col_tra_1',col_tra_1),
    ('col_tra_2',col_tra_2),
    ('col_tra_3',col_tra_3),
    ('model',model)
])
   pipe.fit(x_train,y_train)
Run Code Online (Sandbox Code Playgroud)

之后我收到错误: ValueError: 仅 pandas DataFrames 支持使用字符串指定列。

如果我使用索引而不是列名,我会收到不同的错误:ValueError:无法对非数字数据使用均值策略:无法将字符串转换为浮点数:'F'

pipeline machine-learning data-analysis pandas

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