我计算了 TFIdf(词频,逆文档频率),我已经看到在这一步之后,有必要使用 LSI ,卡方检验等方法来减少我的矩阵的维数...,
我不知道如何在 Java 中实现卡方检验以降低矩阵 TFIDF 的维数,如果有一些库可以做到这一点,或者在教程中他们解释了我如何做到这一点,请告诉我
好吧。现在这个问题很难。我给你举个例子。
现在左边的数字是我的算法分类,右边的数字是原始的类号
177 86
177 86
177 86
177 86
177 86
177 86
177 86
177 86
177 86
177 89
177 89
177 89
177 89
177 89
177 89
177 89
Run Code Online (Sandbox Code Playgroud)
所以这里我的算法将 2 个不同的类合并为 1。正如您所看到的,它将类 86 和 89 合并为一个类。那么上面例子中的错误是什么?
或者这里是另一个例子
203 7
203 7
203 7
203 7
16 7
203 7
17 7
16 7
203 7
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,左边的数字是我的算法分类,右边的数字是原始类 id。从上面可以看出,它错过了 3 个产品的分类(我正在对相同的商业产品进行分类)。那么在这个例子中,错误率是多少?你会怎么计算。
这个问题非常困难和复杂。我们已经完成了分类,但我们无法找到计算成功率的正确算法:D
我正在阅读机器学习中的精度和召回率。
问题 1:准确率和召回率何时成反比?也就是说,什么时候会出现可以提高准确率但以降低召回率为代价的情况,反之亦然?在维基百科的文章中指出:
通常,准确率和召回率之间存在反比关系,可以以减少另一个为代价来增加一个。脑部手术提供了一个明显的权衡例子。
但是,我已经看到研究实验结果,其中精度和召回率同时增加(例如,当您使用不同或更多特征时)。
逆关系在什么情况下成立?
问题 2:我熟悉两个领域的精确率和召回率概念:信息检索(例如“从 1MM 页的语料库中返回 100 个最相关的页面”)和二元分类(例如“将这 100 名患者中的每一个分类为具有病与否”)。在这两个领域或其中一个领域中,精度和召回率是否成反比?
information-retrieval classification machine-learning data-mining
我想用TensorFlow开发一个多标签分类器,我试图意味着存在多个包含多个类的标签.为了说明你可以想象这样的情况:
我想用神经网络对这两个标签进行分类.现在,我为每个(label-1,label-2)对类使用了不同的类标签.这意味着我有4 x 4 = 16个不同的标签.
通过训练我的模型
cross_entropy = tf.reduce_mean(-tf.reduce_sum(ys * tf.log(prediction), reduction_indices=[1]))
# prediction is sofmaxed
loss = cross_entropy + regul * schema['regul_ratio'] # regul things is for regularization
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
Run Code Online (Sandbox Code Playgroud)
但是我认为多标签培训在这种情况下会更好用.
[x1,x2,x3,x4 ...]#个特征的n_samples
[[0,0,0,1],[0,0,1,0]]的n_samples#没有下雨和阴天
如何制作具有张量流的softmax概率分布预测器.有没有像这样的多标签问题的工作示例.我的损失将如何变得如此?
python classification machine-learning multilabel-classification tensorflow
这是我的档案文件
@relation hamspam
@attribute text string
@attribute class {ham,spam}
@data
'good',ham
'very good',ham
'bad',spam
'very bad',spam
'very bad, very bad',spam
Run Code Online (Sandbox Code Playgroud)
我想做的是在我的Java程序中使用weka clasiffier对它进行分类,但是我不知道如何使用StringToWordVector进行分类。
这是我的代码:
Classifier j48tree = new J48();
Instances train = new Instances(new BufferedReader(new FileReader("data.arff")));
StringToWordVector filter = new StringToWordVector();
Run Code Online (Sandbox Code Playgroud)
接下来是什么?我不知道该怎么办。
我正在尝试为 XGBClassifier 获得最佳超参数,这将导致获得最多的预测属性。我正在尝试使用 RandomizedSearchCV 通过 KFold 进行迭代和验证。
当我总共运行这个过程 5 次 (numFolds=5) 时,我希望将最好的结果保存在一个名为收集器的数据框中(如下所述)。所以每次迭代,我都希望最好的结果和分数附加到收集器数据帧。
from scipy import stats
from scipy.stats import randint
from sklearn.model_selection import RandomizedSearchCV
from sklearn.metrics import
precision_score,recall_score,accuracy_score,f1_score,roc_auc_score
clf_xgb = xgb.XGBClassifier(objective = 'binary:logistic')
param_dist = {'n_estimators': stats.randint(150, 1000),
'learning_rate': stats.uniform(0.01, 0.6),
'subsample': stats.uniform(0.3, 0.9),
'max_depth': [3, 4, 5, 6, 7, 8, 9],
'colsample_bytree': stats.uniform(0.5, 0.9),
'min_child_weight': [1, 2, 3, 4]
}
clf = RandomizedSearchCV(clf_xgb, param_distributions = param_dist, n_iter = 25, scoring = 'roc_auc', error_score = 0, verbose = 3, n_jobs …Run Code Online (Sandbox Code Playgroud) 我很难理解 ROCR 包的 performance() 函数返回的内容。让我用一个可重现的例子来具体说明。我使用 mpg 数据集。我的代码如下:
library(ROCR)
library(ggplot2)
library(data.table)
library(caTools)
data(mpg)
setDT(mpg)
mpg[year == 1999, Year99 := 1]
mpg[year == 2008, Year99 := 0]
table(mpg$Year99)
# 0 1
# 117 117
split <- sample.split(mpg$Year99, SplitRatio = 0.75)
mpg_train <- mpg[split, ]
mpg_test <- mpg[!split, ]
model <- glm(Year99 ~ displ, mpg_train, family = "binomial")
summary(model)
predict_mpg_test <- predict(model, type = "response", newdata = mpg_test)
ROCR_mpg_test <- prediction(predict_mpg_test, mpg_test$Year99)
performance(ROCR_mpg_test, "acc")
#An object of class "performance"
#Slot "x.name":
# [1] …Run Code Online (Sandbox Code Playgroud) 有谁知道无论如何将分类报告输出为文本文件或CSV文件?
print(metrics.classification_report(y_test, y_pred))python中的这一行给了我分类报告。我想要这份报告的csv格式。
我试图复制和粘贴,但列会混在一起!任何帮助表示赞赏!
我正在尝试建立ML分类模型,以便在注册帐户时检测欺诈。我手头上的数据是:名称,电子邮件地址,坐标(注册时IP地址的纬度和经度)和标签(欺诈与非欺诈)。这是我的数据集的简短摘要:
>>> dataset.summary
Index(['name', 'email','latitude','longitude','label'],dtype='object')
>>> dataset.shape
(93207, 4)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我在理解模型训练时如何理解坐标变量方面遇到了麻烦。StackExchange上的一些用户建议使用正弦和余弦函数的某些组合将纬度和经度转换为X,Y和Z坐标。(即https://datascience.stackexchange.com/questions/13567/ways-to-deal-with-longitude-latitude-feature)但是我不知道在分类用例中是否真的需要这么做?我考虑过将每条记录的经度和纬度合并为1个变量。但是,某些区域的经度为负值。同样,一些欺诈者可能位于高纬度和经度的地区,而其他欺诈者可能位于低纬度和经度的地区。因此,将纬度和经度合并为1个变量可能对训练模型没有帮助?
我也可以将经纬度转换为城市名称。但是,如果我这样做了,那么一个城市的拼写将与另一个很远的城市相似,这可能又不利于训练模型。有什么建议么?
我想使用Keras为CT图像序列创建分类模型。我的数据集从50位患者中获得,每位患者都有1000张图像。对于患者而言,每个图像都与先前的图像具有有意义的关系。我想使用这些有意义的关系,所以我不知道如何为此类问题建立模型。你能给我一个想法或例子吗?
classification machine-learning deep-learning conv-neural-network keras
classification ×10
python ×4
java ×2
algorithm ×1
arff ×1
bayesian ×1
coordinates ×1
data-mining ×1
keras ×1
matrix ×1
pandas ×1
performance ×1
r ×1
roc ×1
scikit-learn ×1
tensorflow ×1
tf-idf ×1
weka ×1
xgboost ×1