小编Ali*_*sef的帖子

隔离林需要拆分数据吗?

我有一个由 10049972 行 x 19 列组成的数据库。我使用隔离森林来检测异常值,然后创建了一个额外的列,将异常值设置为 -1,我删除了所有包含异常值的行为 -1,然后删除了该列。

我的问题是:我是否需要训练、测试和验证隔离森林才能工作?另外有人可以确认我的代码是否有效吗?

这是我的代码。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

%matplotlib inline

from sklearn.ensemble import IsolationForest


df = pd.read_csv('D:\\Project\\database\\4-Final\\Final After.csv',low_memory=True)


iForest = IsolationForest(n_estimators=100,  contamination=0.1 , random_state=42, max_samples=200)


iForest.fit(df.values.reshape(-1,1))

pred = iForest.predict(df.values.reshape(-1,1))

pred=df['anomaly']

df=df.drop(df['anomaly'==-1],inplace=True)

df.to_csv('D:\\Project\\database\\4-Final\\IF TEST.csv', index=False) 
Run Code Online (Sandbox Code Playgroud)

谢谢你。

python machine-learning pandas scikit-learn jupyter-notebook

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

张量板平滑

我从 tesnorboard 下载了 CSV 文件,以便自己绘制损失图,因为我希望它们平滑。

这是目前我的代码:

import pandas as pd

import numpy as np

import seaborn as sns

import matplotlib.pyplot as plt

df = pd.read_csv('C:\\Users\\ali97\\Desktop\\Project\\Database\\Comparing Outlier Fractions\\10 Percent (MAE)\\MSE Validation.csv',usecols=['Step','Value'],low_memory=True)

df2 = pd.read_csv('C:\\Users\\ali97\\Desktop\\Project\\Database\\Comparing Outlier Fractions\\15 Percent (MAE)\\MSE Validation.csv',usecols=['Step','Value'],low_memory=True)

df3 = pd.read_csv('C:\\Users\\ali97\\Desktop\\Project\\Database\\Comparing Outlier Fractions\\20 Percent (MAE)\\MSE Validation.csv',usecols=['Step','Value'],low_memory=True)




plt.plot(df['Step'],df['Value'] , 'r',label='10% Outlier Frac.' )
plt.plot(df2['Step'],df2['Value'] , 'g',label='15% Outlier Frac.' )
plt.plot(df3['Step'],df3['Value'] , 'b',label='20% Outlier Frac.' )

plt.xlabel('Epochs')
plt.ylabel('Validation score')
plt.show()

Run Code Online (Sandbox Code Playgroud)

我正在阅读如何平滑图形,我发现这里的另一位成员编写了有关张量板如何平滑图形的代码,但我真的不知道如何在我的代码中实现它。

def smooth(scalars: List[float], weight: float) -> List[float]:  # Weight between 0 …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorboard

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

DBSCAN eps 和 min_samples

我一直在尝试使用 DBSCAN 来检测离群值,根据我的理解,DBSCAN 输出 -1 作为离群值,1 作为内联值,但是在我运行代码之后,我得到的数字不是 -1 或 1,有人可以吗解释为什么?通过反复试验找到 eps 的最佳值也是正常的,因为我无法找到找到最佳 eps 值的方法。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

%matplotlib inline

from sklearn.cluster import DBSCAN



df = pd.read_csv('Final After Simple Filtering.csv',index_col=None,low_memory=True)


# Dropping columns with low feature importance
del df['AmbTemp_DegC']
del df['NacelleOrientation_Deg']
del df['MeasuredYawError']



#applying DBSCAN


DBSCAN = DBSCAN(eps = 1.8, min_samples =10,n_jobs=-1)

df['anomaly'] = DBSCAN.fit_predict(df)


np.unique(df['anomaly'],return_counts=True)

Run Code Online (Sandbox Code Playgroud)
(array([  -1,    0,    1, ..., 8462, 8463, 8464]),
array([1737565, 3539278, 4455734, ...,      13,       8,       8]))
Run Code Online (Sandbox Code Playgroud)

谢谢。

python cluster-analysis machine-learning

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

Validation_data 和 Validation_split

所以我有一个预测输出功率的 GRU 模型。对于训练数据,我有一个 csv 文件,其中包含 2018 年的数据,而对于我的测试数据,它是另一个 csv 文件,其中包含 2019 年的数据。

我只需要简短地提问。

  1. 由于我使用 2 个不同的 csv 文件,一个用于测试,一个用于训练,所以我不需要train_test_split

  2. 说到model.fit,我真的不知道 Validation_data和 之间的区别Validation_split,我应该使用哪个?

我已经分别测试了这 3 行,第二行和第三行给出了相同的精确结果,而第一行给出的结果要低得多 val_loss

谢谢。

history=model.fit(X_train, y_train, batch_size=256, epochs=25, validation_split=0.1, verbose=1, callbacks=[TensorBoardColabCallback(tbc)])  
history=model.fit(X_train, y_train, batch_size=256, epochs=25, validation_data=(X_test, y_test), verbose=1, callbacks=[TensorBoardColabCallback(tbc)])
history=model.fit(X_train, y_train, batch_size=256, epochs=25, validation_data=(X_test, y_test), validation_split=0.1, verbose=1, callbacks=[TensorBoardColabCallback(tbc)])
Run Code Online (Sandbox Code Playgroud)

python machine-learning keras tensorflow

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