小编J N*_* Ng的帖子

无法重命名数据框中的列

我试图将'0'重命名为'预测',如下所示我没有收到任何错误,但是当我打印它时,它仍显示为'0'?

df2 = pd.DataFrame(data)
df2.rename(columns = {'0':'predicted'}, inplace=True)
print (df2.tail())

            0
248  0.335400
249  0.334992
250  0.334955
251  0.335716
252  0.335723
Run Code Online (Sandbox Code Playgroud)

dataframe pandas

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

按日期平均 Pandas 数据框

我有以下数据框日期列表

                       debt 
date                               
2017-11-17 16:00:00    77     
2017-11-17 17:00:00    73     
2017-11-17 18:00:00    74     
2017-11-17 19:00:00    73     
2017-11-17 20:00:00    74     
2017-11-17 21:00:00    71     
Run Code Online (Sandbox Code Playgroud)

我正在尝试按日期分组以查找没有时间的日期的平均值

2017-11-17 74
Run Code Online (Sandbox Code Playgroud)

我试图这样做 df​​ = df.groupby(df['date'].map(lambda x: x.day)) KeyError: 'date'

请问还有其他办法吗?

dataframe pandas

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

仅在 Matplotlib 中绘制时间(而不是 DateTime)

我的数据框采用这种格式

   Time    AvgDiff
07:00:00   7.750782
07:01:00   9.306567
07:02:00  13.225209
07:03:00  18.346431
07:04:00  10.049761
07:05:00  18.567049
07:06:00  -4.903014
07:07:00 -10.66217
Run Code Online (Sandbox Code Playgroud)

我做了以下操作来创建一个合成日期,日期并不重要,因为我的 AvgDiff 是特定时间值的所有日期的平均值

my_day = datetime.date(2018, 1, 15)
x_dt = [ datetime.datetime.combine(my_day, t) for t in df['Time'] ]
x = x_dt
y1 = df['AvgDiff']


plt.bar(x,y1, label='AvgDiff BPS', width=0.001) #bar to plot
plt.legend(loc='best')
plt.title('AvgDiff BPS')
plt.ylabel('BPS')
plt.xlabel('Time')
plt.gcf().autofmt_xdate()
plt.show()
Run Code Online (Sandbox Code Playgroud)

由此可见

在此处输入图片说明

它显示后面的日期和小时数(在 X 轴中),但是我需要它只显示小时数和分钟数。

我试过

FMT = '%H:%M:%S'
df['Time'] = df['Time'].map(lambda x: datetime.strptime(str(x), FMT))
df['Time'] = df['Time'].map(lambda x: x.replace(day=date, month=month, year=year))
plt.gcf().autofmt_xdate()
plt.show() …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

Keras 模型提供测试准确度 1.0

下面是预测第二天收盘上涨还是下跌的代码(上=1,下=0)

我所做的是创建一个数据框并仅使用 PriceChange(今天收盘 - 昨天收盘)来预测第二天价格上涨或下跌(第二天收盘 - 今天收盘)

所以数据框看起来像这样

df['PriceChange'] = (df['Close'] > df['Close'].shift(1)).astype(int)
df['Closeupnextday'] = (df['Close'].shift(-1) > df['Close']).astype(int)

        PriceChange  Closeupnextday
0             0               1
1             1               1
2             1               1
3             1               1
4             1               0
5             0               0
6             0               0
7             0               1
Run Code Online (Sandbox Code Playgroud)

它不断给我 1.000 的准确度,公平地说,它应该只有 50+% 的准确度。我相信下面的代码有问题,但我找不到。

我应该补充一点,在 20/500 纪元之后,它不断给我 1.000 的准确度

任何建议请?

def load_data(stock, seq_len):
    amount_of_features = len(stock.columns)
    data = stock.as_matrix() #pd.DataFrame(stock)
    sequence_length = seq_len + 1
    result = []
    for index in range(len(data) - sequence_length):
        result.append(data[index: …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network keras

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

递归特征消除 (RFE) SKLearn

我创建了一个表格来测试我的理解

    F1  F2  Outcome
0   2   5        1
1   4   8        2
2   6   0        3
3   9   8        4
4  10   6        5
Run Code Online (Sandbox Code Playgroud)

从 F1 和 F2 我试图预测结果

正如你所看到的,F1 与结果有很强的相关性,F2 是随机噪声

我测试过

pca = PCA(n_components=2)
fit = pca.fit(X)
print("Explained Variance")
print(fit.explained_variance_ratio_)
Explained Variance
[ 0.57554896  0.42445104]
Run Code Online (Sandbox Code Playgroud)

这是我所期望的并且表明F1更重要

但是当我做 RFE(递归特征消除)时

model = LogisticRegression()
rfe = RFE(model, 1)
fit = rfe.fit(X, Y)
print(fit.n_features_)
print(fit.support_)
print(fit.ranking_)
1
[False  True]
[2 1]
Run Code Online (Sandbox Code Playgroud)

它要求我保留F2?它应该要求我保留 F1,因为 F1 是一个强预测变量,而 F2 是随机噪声......为什么是 F2?

谢谢

machine-learning scikit-learn

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