小编PV8*_*PV8的帖子

如何更改seaborn直方图中的y轴限制?

我的原始数据高度不平衡,如下所示:

df
Index Branch
1      10000
2        200
...
1000   1
...
10000  1
Run Code Online (Sandbox Code Playgroud)

如果我运行:

import seaborn as sns
sns.distplot(df['Branch'], bins=1000)
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此输入图像描述

是否有机会将可视化中 y 值的最大值固定为 0.06?并将 x 值调整为 1000 或其他值。

python axis range histogram seaborn

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

如何根据另一个数据框列python中的值进行value_counts?

假设我有两个 pandas 数据框

data1 = [[s1, 0], [s2, 0], [s3, 1], [s4, 1], [s5, 0], [s6, 1], [s7, 0], [s8, 1]] 
df1 = pd.DataFrame(data1, columns = ['s_no', 'values']) 

data2 = [[s1, 0], [s2, 1], [s3, 1], [s4, 0], [s5, 0], [s6, 1], [s7, 1], [s8, 0]] 
df2 = pd.DataFrame(data2, columns = ['s_no2', 'values2']) 
Run Code Online (Sandbox Code Playgroud)

如何找到 value_counts

df2['values2'].value_counts() when df1['values'] == 1 and 

df2['values2'].value_counts() when df1['values'] == 0
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

确定 sklearn 或任何 python 库中非线性 SVM 回归的最有贡献的特征

我使用基于 RBF 内核的支持向量机回归训练了一个模型。我想知道对基于 RBF 内核的支持向量机非常重要或主要贡献的功能。我知道有一种方法可以了解基于向量大小的权重向量对线性支持向量回归最有贡献的特征。然而,对于基于 RBF 核的支持向量机,由于特征被转换到一个新的空间,我不知道如何提取最有贡献的特征。我在 python 中使用 scikit-learn。有没有办法在基于 RBF 核的支持向量回归或非线性支持向量回归中提取最有贡献的特征?

from sklearn import svm
svm = svm.SVC(gamma=0.001, C=100., kernel = 'linear')
Run Code Online (Sandbox Code Playgroud)

在这种情况下: 在 sklearn为 SVM 分类器确定最有贡献的特征效果很好。但是,如果将内核更改为

from sklearn import svm
svm = svm.SVC(gamma=0.001, C=100., kernel = 'rbf')
Run Code Online (Sandbox Code Playgroud)

上面的答案不起作用。

python scikit-learn jupyter-notebook

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

IsolationForest 的 Predict_proba

我尝试使用隔离森林进行异常值检测(欺诈检测)。如果我运行下面的代码(使用训练集和测试集):

from sklearn.ensemble import IsolationForest
iso = IsolationForest(random_state=0).fit(X_train)
isopred = iso.predict(X_test)
Run Code Online (Sandbox Code Playgroud)

我得到一个数组:array([1, 1, -1, ..., 1, 1, 1]) 其中包含 1 或 -1。我如何使用可用于DecisionTreespredict_proba的内容。文档中是否有一个可用于 IsolationTree 的函数没有提到?

当我运行:iso.predict_proba(X_test)我收到此错误:

AttributeError:“IsolationForest”对象没有属性“predict_proba”

我正在搜索一个数组,它给出了预测属于哪个类(异常值或非异常值)的概率。

我的X_test样子:

A  B  C
11 1  0
11 3  0
11 0  1
Run Code Online (Sandbox Code Playgroud)

y_test.values.ravel()array([0,0,1])

python scikit-learn

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

Balanced_accuracy 不是 scikit-learn 中的有效评分值

超级类似于这篇文章:ValueError: 'balanced_accuracy' is not a valid score value in scikit-learn

我在用:

scoring = ['precision_macro', 'recall_macro', 'balanced_accuracy_score']
clf = DecisionTreeClassifier(random_state=0)
scores = cross_validate(clf, X, y, scoring=scoring, cv=10, return_train_score=True)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ValueError: 'balanced_accuracy_score' 不是有效的评分值。使用 sorted(sklearn.metrics.SCORERS.keys()) 获取有效选项。

我做了推荐的解决方案并升级了scikit(在环境中): 在此处输入图片说明

当我检查可能的得分手时:

sklearn.metrics.SCORERS.keys()
dict_keys(['explained_variance', 'r2', 'max_error', 'neg_median_absolute_error', 'neg_mean_absolute_error', 'neg_mean_squared_error', 'neg_mean_squared_log_error', 'neg_root_mean_squared_error', 'neg_mean_poisson_deviance', 'neg_mean_gamma_deviance', 'accuracy', 'roc_auc', 'roc_auc_ovr', 'roc_auc_ovo', 'roc_auc_ovr_weighted', 'roc_auc_ovo_weighted', 'balanced_accuracy', 'average_precision', 'neg_log_loss', 'neg_brier_score', 'adjusted_rand_score', 'homogeneity_score', 'completeness_score', 'v_measure_score', 'mutual_info_score', 'adjusted_mutual_info_score', 'normalized_mutual_info_score', 'fowlkes_mallows_score', 'precision', 'precision_macro', 'precision_micro', 'precision_samples', 'precision_weighted', 'recall', 'recall_macro', 'recall_micro', 'recall_samples', 'recall_weighted', 'f1', 'f1_macro', 'f1_micro', 'f1_samples', 'f1_weighted', …
Run Code Online (Sandbox Code Playgroud)

python scikit-learn

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

如何在不滚动的情况下绘制jupyter笔记本中的所有图

现在我有一个 for 循环与一个图的组合:

plt.figure(figsize=(12, 12))
plt.subplot(221)
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y_pred)
plt.title('Clustering n: {}'.format(clusternumber))
plt.show()
Run Code Online (Sandbox Code Playgroud)

如果我运行循环:

for i in [2,3,4,5,10,15,20]:
    clustering(X, i)
Run Code Online (Sandbox Code Playgroud)

它变得相当混乱: 在此输入图像描述

如何避免图表旁边的滚动条?我更喜欢看到没有滚动条的可视化效果,这样我就可以同时看到至少 2 或 3 个。

python matplotlib jupyter-notebook

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

将一个文件夹的多个csv文件加载到一个数据帧中

我将多个csv文件保存在一个具有相同列布局的文件夹中,并希望将其作为pandas中的数据框加载到python中。

这个问题确实类似于该线程。

我正在使用以下代码:

import glob
import pandas as pd
salesdata = pd.DataFrame()
for f in glob.glob("TransactionData\Promorelevant\*.csv"):
    appenddata = pd.read_csv(f, header=None, sep=";")
    salesdata = salesdata.append(appenddata,ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

是否有其他软件包更好的解决方案?

这需要很多时间。

谢谢

python csv glob dataframe pandas

4
推荐指数
2
解决办法
3339
查看次数

根据 pandas 数据帧的连接数量自动向 networkx 中的边添加权重

我正在尝试使用 networkx 从 pandas 数据帧创建一个有向图,到目前为止我可以使用:

nx.from_pandas_edgelist(df, 'Activity', 'Activity followed', create_using=nx.DiGraph())
Run Code Online (Sandbox Code Playgroud)

它向我显示了“活动”-->“活动”中的所有节点和边。

在我的数据框中,有时会有相同的活动,然后是相同的活动,我想以边缘权重的形式计算这个数字,到目前为止,这是我的数据框的例子:

Index Activity Activityfollowed
0     Lunch    Dinner
1     Lunch    Dinner
2     Breakfast Lunch
Run Code Online (Sandbox Code Playgroud)

应该有边缘:

午餐 --> 晚餐(重量2)

早餐 --> 午餐(重量1)

有什么办法可以做到吗?

python networkx pandas

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

根据字符数拆分字符串列

我在数据框中有以下列:

columnA
EUR590
USD680
EUR10000,9
USD40
Run Code Online (Sandbox Code Playgroud)

我如何根据前三个字符分割它,数据框看起来像:

columnA columnB
590     EUR
680     USD
10000,9  EUR
40       USD
Run Code Online (Sandbox Code Playgroud)

python pandas

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

与 eq 函数相反 python / 选择列中具有两个以上相同条目的行

这个问题与这个问题相关。

但这次我想过滤一个数据框,保留一列中具有两个以上相同条目的所有行。

对于确切的两列,我使用:df1 = df[df['group'].map(df['group'].value_counts()).eq(2)] 组是条目所在的列。所以我正在寻找:

df1 = df[df['group'].map(df['group'].value_counts()).uneq(2)]

但这个功能不存在。

python pandas

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