所以我有一个训练集,其中一个属性的域如下:
A = {Type1, Type2, Type3, ... ,Type5}
Run Code Online (Sandbox Code Playgroud)
如果域保持该形式我不能应用线性回归,因为数学假设可能无法工作,例如:
H = TxA + T1xB + T2xC + ...
(也就是说,如果我们假设所有属性都是数字,除了A属性,那么你就不能将实值参数与一个类型相乘)
我可以用数值,等效,离散值替换域,这样我可以针对这个问题进行线性回归并且可以吗?
A = {1, 2, 3, ...., 5 )
Run Code Online (Sandbox Code Playgroud)
这是最好的做法吗?如果没有,你可以在这些情况下给我一个替代方案吗?
我有属于正类的非常小的数据,而有来自负类的大量数据。据教授。Andrew Ng(异常检测与监督学习),由于数据高度不对称,我应该使用异常检测代替监督学习。
如果我错了,请指正我,但是两种技术对我来说都是相同的,即在(有监督的)异常检测和标准的有监督的学习中,我们使用正常样本和异常样本来训练数据并测试未知数据。有什么区别吗?
我是否应该执行负类的欠采样或正类的过采样以获取相同大小的两个类型数据?它会影响整体准确性吗?
我有一些有趣的用户数据。它提供了有关要求用户执行某些任务的及时性的一些信息。我正在尝试确定-是否可以预测/解释late-告诉我用户是否准时(0),稍晚(1)或相当晚(2)。我late从提供交通信号灯信息的列中生成(绿色=不迟,红色=超迟)。
这是我的工作:
#imports
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import preprocessing
from sklearn import svm
import sklearn.metrics as sm
#load user data
df = pd.read_csv('April.csv', error_bad_lines=False, encoding='iso8859_15', delimiter=';')
#convert objects to datetime data types
cols = ['Planned Start', 'Actual Start', 'Planned End', 'Actual End']
df = df[cols].apply(
pd.to_datetime, dayfirst=True, errors='ignore'
).join(df.drop(cols, 1))
#convert datetime to numeric data types
cols = ['Planned Start', …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Tensorflow 对单变量数值数据集进行二元分类。我的数据集包含 6 个特征/变量,包括大约 90 个实例的标签。这是我的数据的预览:
sex,age,Time,Number_of_Warts,Type,Area,Result_of_Treatment
1,35,12,5,1,100,0
1,29,7,5,1,96,1
1,50,8,1,3,132,0
1,32,11.75,7,3,750,0
1,67,9.25,1,1,42,0
Run Code Online (Sandbox Code Playgroud)
我正在使用 sklearn 的 train_test_split 函数拆分我的数据,如下所示:
X_train, X_test, y_train, y_test = train_test_split(data, y, test_size=0.33, random_state=42)
Run Code Online (Sandbox Code Playgroud)
然后我使用以下代码将我的数据转换为张量:
X_train=tf.convert_to_tensor(X_train)
X_test = tf.convert_to_tensor(X_test)
y_train=tf.convert_to_tensor(y_train)
y_test = tf.convert_to_tensor(y_test)
Run Code Online (Sandbox Code Playgroud)
在此之后,我开始构建一个简单的顺序模型。
from keras import models
from keras import layers
from keras import models
from keras import layers
model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_shape=(60,)))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.compile(optimizer=optimizers.RMSprop(lr=0.001),
loss='binary_crossentropy',
metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)
当我调用 fit 函数时发生错误
history = model.fit(X_train,y_train,epochs=10,steps_per_epoch=200)
InvalidArgumentError: Matrix size-incompatible: In[0]: [60,6], In[1]: [60,16]
[[{{node …Run Code Online (Sandbox Code Playgroud) python machine-learning supervised-learning tensorflow tensorflow-datasets
我有一个三类问题,我可以使用以下代码报告每个类的精确度和召回率:
from sklearn.metrics import classification_report
print(classification_report(y_test, y_pred))
Run Code Online (Sandbox Code Playgroud)
这为我提供了表格格式中 3 个类别中每一个类别的精确度和召回率。
我的问题是现在如何才能获得这 3 个类别中每一个类别的敏感性和特异性?我查看了 sklearn.metrics,没有找到任何报告敏感性和特异性的内容。
我有兴趣找到像"英国相关判断文件列表"这样的数据集:http: //trec.nist.gov/data/qrels_eng
此数据集包含标记的查询和文档对.但是,它取决于非自由语料库,称为"数据 - 英语文档":http: //trec.nist.gov/data/docs_eng.html
你知道这个类似的免费数据集吗?
附注:该数据集将用于研究项目,用于构建基于神经网络的信息检索系统.
information-retrieval machine-learning dataset supervised-learning
我正在使用scikit-learn监督学习方法进行文本分类.我有一个训练数据集,其中包含输入文本字段及其所属的类别.我使用tf-idf,SVM分类器管道来创建模型.该解决方案适用于正常的测试用例.但是如果输入的新文本与训练集中具有synoynmous单词,则解决方案无法正确分类.例如:训练数据中可能出现'run'一词,但如果我使用'sprint'一词进行测试,则该解决方案无法正确分类.
这里最好的方法是什么?为训练数据集中的所有单词添加所有同义词对我来说看起来不像是一种可扩展的方法
machine-learning scikit-learn supervised-learning text-classification
我相信我理解 HMM 的核心。通过 HMM,我们解决了评估(发出的 seq 的概率)、解码(最可能的隐藏 seq)和学习问题(从观察到的发射 seq 集中学习转换和发射概率矩阵)。
我的问题与学习问题有关。我有发射序列,但每个序列也有相关的特征(意味着隐藏状态值,但隐藏状态的数量未知)。与 HMM 的学习问题一样,我们估计隐藏序列(大小和概率矩阵),为此我们只需要发射序列(如果事先未知,则可以优化隐藏序列的大小)。
我正在使用 HMM库进行计算。当然,它没有我想要的选项。
import numpy as np
import pandas as pd
from hmmlearn import hmm
filenames = [f for f in os.listdir(dir_path) if '.csv' in f.lower()]
d1 = pd.read_csv(dir_path + filenames[0]).as_matrix() # Shape = [m, 3] => first two column is featute and last is the emission-state
d2 = pd.read_csv(dir_path + filenames[1]).as_matrix() # Shape = [m, 3]
##
remodel = hmm.GaussianHMM(n_components=4, covariance_type="full", n_iter=100)
remodel.fit(d1[:, 0:2]) # Problem …Run Code Online (Sandbox Code Playgroud) 那么,在机器学习中,防止过拟合的一种方法是添加 L2 正则化,有人说 L1 正则化更好,这是为什么呢?另外我知道L1是用来保证数据的稀疏性的,这个结果的理论支持是什么?
machine-learning neural-network supervised-learning deep-learning
如果强化学习(RL)算法在现实世界中工作之前需要在模拟环境中进行大量迭代,为什么我们不使用相同的模拟环境来生成标记数据,然后使用监督学习方法RL?
\n我正在学习 sklearn,但我不太明白其中的区别以及为什么将 4 个输出与函数 train_test_split 一起使用。
在文档中,我找到了一些示例,但这还不足以结束我的疑虑。
代码是使用 x_train 来预测 x_test 还是使用 x_train 来预测 y_test?
训练和测试有什么区别?我是否使用 train 来预测测试或类似的东西?
我很困惑。我将在文档中提供以下示例。
>>> import numpy as np
>>> from sklearn.model_selection import train_test_split
>>> X, y = np.arange(10).reshape((5, 2)), range(5)
>>> X
array([[0, 1],
[2, 3],
[4, 5],
[6, 7],
[8, 9]])
>>> list(y)
[0, 1, 2, 3, 4]
>>> X_train, X_test, y_train, y_test = train_test_split(
... X, y, test_size=0.33, random_state=42)
...
>>> X_train
array([[4, 5],
[0, 1],
[6, 7]])
>>> y_train
[2, 0, …Run Code Online (Sandbox Code Playgroud) python machine-learning scikit-learn supervised-learning sklearn-pandas
我正在训练多层感知器。我有两个问题,第一个问题是 K 折叠如何防止过度拟合,因为 train-test-split 也做同样的事情,接受训练部分并验证模型,与 K 折叠相同,而不仅仅是有多个折叠。但是 train_test_split 有可能过度拟合,那么 K Fold 如何防止它,因为在我的感知中,模型也可能过度拟合 K Fold 的训练部分,你认为是这样吗?第二个问题是我从 K 折中获得了 95% 以上的准确率,先生告诉我方差太大,这里怎么可能因为 k 折解决了这种过度拟合?
machine-learning scikit-learn cross-validation supervised-learning deep-learning