- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在处理一个困难的数据集,因为这些类都高度不平衡且极不相关。该集合有 96,000 个值,其中 1s 不到 200 个。
我尝试了几种方法,每种方法的精度和准确度都很高,但是只有少数(少于5个)值被分类为1。我想知道是否有一种方法可以强制机器分类更多1秒。如果我能在 25% 的时间内正确分类,这将是一个很好的结果。
我尝试过使用随机森林的“类别权重”参数,但这似乎对结果没有任何影响。
import numpy as np
import pandas as pd
import sklearn as sklearn
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_pickle('/Users/shellyganga/Downloads/ola.pickle')
print(df.describe())
#filtering the df to improve results
df = df[(df['trip_duration'] > 5) & (df['Smooth_Driving_Score'] < 99)]
print(df.describe())
maxVal = 1
df.unsafe = df['unsafe'].where(df['unsafe'] <= maxVal, maxVal)
df.drop(df.columns[0], axis=1, inplace=True)
df.drop(df.columns[-2], axis=1, inplace=True)
#setting features and labels
labels = np.array(df['unsafe'])
features= df.drop('unsafe', axis = 1)
# Saving feature names for later use
feature_list = list(features.columns)
# Convert to numpy array
features = np.array(features)
from sklearn.model_selection import train_test_split
# 30% examples in test data
train, test, train_labels, test_labels = train_test_split(features, labels,
stratify = labels,
test_size = 0.4,
random_state = 12)
from sklearn.ensemble import RandomForestClassifier
# Create the model with 100 trees
model = RandomForestClassifier(n_estimators=100,
random_state=12,
max_features = 'sqrt',
n_jobs=-1, verbose = 1, class_weight={0:1, 1:1})
# Fit on training data
model.fit(train, train_labels)
predictions = model.predict(test)
print(np.mean(predictions))
print(predictions.shape)
from sklearn.metrics import classification_report
print(classification_report(test_labels, predictions)
输出:
precision recall f1-score support
0 1.00 1.00 1.00 38300
1 1.00 0.01 0.02 90
avg / total 1.00 1.00 1.00 38390
我尝试使用 {class_weight = 'balanced'}
并提供了不同的结果,但我无法理解它。
micro avg 1.00 1.00 1.00 38390
macro avg 1.00 0.51 0.51 38390
weighted avg 1.00 1.00 1.00 38390
我如何知道它预测了多少阳性?
最佳答案
这种程度的不平衡通常很难解决,特别是如果你有很多特征(由于维数灾难)。除非两个类(Class)之间有非常明显的界限,否则很难区分少数类(Class)和绝大多数类(Class)。正如 Luke 和 Tacratis 所建议的,类权重和过采样/欠采样都是您应该尝试的好方法。此外,我还建议使用适当的成本指标。例如,如果误报比漏报更可取,请尝试最大化召回率,而不是精度或准确度。我还建议结合使用这些方法。那么,让我们说
关于python - 使用极其不平衡且相关性较差的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53354123/
我有一个如下所示的数据框: Samples GENE GEN1 GEN2 GEN3 GEN4 GEN5 Sample1 21.0 160 110 3.90 2.62 16.5 Sa
我有以下映射 posts":{ "properties":{ "prop1": { "type": "nested", "properties": { "item
我有两个维度相等的矩阵(p 和 e),我想在同名的列之间建立斯 PIL 曼相关。我想在矩阵 (M) 中输出对相关性 我使用了 Psych 库中的 corr.test() 函数,这是我所做的: libr
我有两个维度相等的矩阵(p 和 e),我想在同名的列之间建立斯 PIL 曼相关。我想在矩阵 (M) 中输出对相关性 我使用了 Psych 库中的 corr.test() 函数,这是我所做的: libr
我正在尝试使用 estpost 和 community-contributed 命令将 Spearman 相关矩阵导出到 rtf 或 Excel 文件中 esttab。 但是,我收到以下错误: inv
我在网上找到了以下查询: SELECT company_title FROM companies WHERE company_title like '%gge%' GROUP BY compa
我是 Sphinx 和 Lucene 的重度用户。Sphinx 只需要一个数据库,对其进行索引。然后您调用 Sphinx 获取 ID。 但是,如果我想创建一个非常微型 的搜索引擎怎么办?就几行数据,几
是否有我要在下面描述的模式/算法的名称?... 假设您有一棵像这样的相关数据树: IDEs Visual Studio Visual Studio 2008 Visual Studio 2010 Ec
早上好。这是我的问题:我有几个文件,如下所示: 104 0.1697 12.3513214 15.9136214 112 -0.3146 12.0517303 14.8027303 122 0.271
在尝试将function_score与boost_mode: "sum"一起使用时(因为这样可以更轻松地跟踪不同的贡献),我想归一化查询相关性对整体文档分数的影响,但是为此,我需要知道它可以取什么值。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
X,Y 的 spearmanr(Spearman 相关性)输出为我提供以下信息: 相关性:0.54542821980327882 P 值:2.3569040685361066e-65 其中 len(X
我有一个 Pandas 数据框,它有一个七年时间范围内的日期时间索引和 10 种不同 Assets 的价格数据。我想运行 dataframe.corr 函数来评估 Assets 之间的关系,我的问题是
我有相同数据(公司)的 2 个信息源,我可以通过唯一 ID(契约(Contract)号)将它们连接在一起。第二个不同来源的存在是由于这两个来源是手动独立更新的。所以我在 2 个表中有一个 ID 和一个
我正在尝试在php中实现两组数据之间人员相关系数的计算。我只是想做可以在这个 url 上找到的移植 python 脚本 http://answers.oreilly.com/topic/1066-ho
所以我使用 PHP Symfony 和 Ongr-Elasticsearch 包来查询我的文档并返回匹配的对象。结果似乎按相关性/分数排序,但实际相关性/分数不包含在对象本身中。 这可能吗?我想将分数
我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和/或 Pearson 相关性。 我试过df['corr'] = df['col1'].rolling(P).corr(df['
我正在处理一个大型数据集。不过,我将从一个小示例开始,以说明我要实现的目标。 我有以下向量: season %group_by(season, round, team)%>%dplyr::mutate
我正在使用 OIDC 的混合身份验证流程。 options.Events.OnRedirectToIdentityProvider = redirectContext =>
我正在尝试查询我的产品ElasticSearch索引并创建一个script_score,但我一直收到错误Variable [relevancy] is not defined. 我尝试只用一个数字替换
我是一名优秀的程序员,十分优秀!