我使用linear_model.LinearRegressionscikit-learn作为预测模型.它的工作原理很完美.我有一个问题是使用accuracy_score指标评估预测结果.这是我的真实数据:
array([1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0])
Run Code Online (Sandbox Code Playgroud)
我的预测数据:
array([ 0.07094605, 0.1994941 , 0.19270157, 0.13379635, 0.04654469,
0.09212494, 0.19952108, 0.12884365, 0.15685076, -0.01274453,
0.32167554, 0.32167554, -0.10023553, 0.09819648, -0.06755516,
0.25390082, 0.17248324])
Run Code Online (Sandbox Code Playgroud)
我的代码:
accuracy_score(y_true, y_pred, normalize=False)
Run Code Online (Sandbox Code Playgroud)
错误信息:
ValueError:无法处理二进制和连续目标的混合
救命 ?谢谢.
python machine-learning prediction linear-regression scikit-learn
我正在学习神经网络,我在Keras中为UCI机器学习库中的虹膜数据集分类构建了一个简单的网络.我使用了一个带有8个隐藏节点的隐藏层网络.使用Adam优化器的学习率为0.0005,并且运行200个时期.Softmax用于输出,损失为catogorical-crossentropy.我得到以下学习曲线.
正如您所看到的,准确性的学习曲线有很多平坦的区域,我不明白为什么.错误似乎在不断减少,但准确性似乎并没有以同样的方式增加.精确度学习曲线中的平坦区域意味着什么?为什么即使错误似乎在减少,这些区域的准确度也不会增加?
这在培训中是正常的还是我更有可能在这里做错了什么?
dataframe = pd.read_csv("iris.csv", header=None)
dataset = dataframe.values
X = dataset[:,0:4].astype(float)
y = dataset[:,4]
scalar = StandardScaler()
X = scalar.fit_transform(X)
label_encoder = LabelEncoder()
y = label_encoder.fit_transform(y)
encoder = OneHotEncoder()
y = encoder.fit_transform(y.reshape(-1,1)).toarray()
# create model
model = Sequential()
model.add(Dense(8, input_dim=4, activation='relu'))
model.add(Dense(3, activation='softmax'))
# Compile model
adam = optimizers.Adam(lr=0.0005, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
model.compile(loss='categorical_crossentropy',
optimizer=adam,
metrics=['accuracy'])
# Fit the model
log = model.fit(X, y, epochs=200, batch_size=5, validation_split=0.2)
fig = plt.figure()
fig.suptitle("Adam, lr=0.0006, one hidden layer")
ax = fig.add_subplot(1,2,1) …Run Code Online (Sandbox Code Playgroud) 我正在研究序列预测问题,并且在这方面没有太多经验,因此下面的一些问题可能很幼稚。
仅供参考:我在这里创建了一个重点关注 CRF 的后续问题
我有以下问题:
我想预测多个非独立变量的二元序列。
输入:
我有一个包含以下变量的数据集:
此外,假设以下情况:
binary_signal_group_A和binary_signal_group_B是我想使用(1)它们过去的行为和(2)从每个时间戳提取的附加信息来预测的 2 个非独立变量。
到目前为止我所做的:
# required libraries
import re
import numpy as np
import pandas as pd
from keras import Sequential
from keras.layers import LSTM
data_length = 18 # how long our data series will be
shift_length = 3 # how long of a sequence do we want
df = (pd.DataFrame # create a sample dataframe
.from_records(np.random.randint(2, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 LSTM 解决一个简单的二元分类问题。我试图找出网络的正确损失函数。问题是,当我使用二元交叉熵作为损失函数时,与使用均方误差 (MSE) 函数相比,训练和测试的损失值相对较高。
经过研究,我发现二元交叉熵应该用于分类问题和 MSE 用于回归问题的理由。但是,就我而言,使用 MSE 进行二元分类时,我获得了更好的准确性和更小的损失值。
我不确定如何证明这些获得的结果是合理的。为什么不使用均方误差来解决分类问题?