- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 keras
学习深度学习,并尝试将结果(准确性)与机器学习算法( sklearn
)(即 random forest
、 k_neighbors
)进行比较
似乎使用 keras
我得到了最糟糕的结果。
我正在研究简单的分类问题:iris dataset
我的 keras 代码如下:
samples = datasets.load_iris()
X = samples.data
y = samples.target
df = pd.DataFrame(data=X)
df.columns = samples.feature_names
df['Target'] = y
# prepare data
X = df[df.columns[:-1]]
y = df[df.columns[-1]]
# hot encoding
encoder = LabelEncoder()
y1 = encoder.fit_transform(y)
y = pd.get_dummies(y1).values
# split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)
# build model
model = Sequential()
model.add(Dense(1000, activation='tanh', input_shape = ((df.shape[1]-1),)))
model.add(Dense(500, activation='tanh'))
model.add(Dense(250, activation='tanh'))
model.add(Dense(125, activation='tanh'))
model.add(Dense(64, activation='tanh'))
model.add(Dense(32, activation='tanh'))
model.add(Dense(9, activation='tanh'))
model.add(Dense(y.shape[1], activation='softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train)
score, acc = model.evaluate(X_test, y_test, verbose=0)
#results:
#score = 0.77
#acc = 0.711
relu
),结果似乎不高于 0.85。
random forest
或
k_neighbors
我得到的结果(在同一数据集上)高于 0.95。
sklearn
我做了很少的努力并获得了不错的结果,使用 keras
,我进行了很多升级,但不如 sklearn
的结果。这是为什么 ? keras
获得相同的结果? 最佳答案
简而言之,您需要:
activation='tanh'
用于中间网络层。在此类问题中,我们几乎总是使用
activation='relu'
。
model.fit
中指定任何内容,则为默认值);这有点相当于用一棵树(顺便说一句,仍然是 much better than a single decision tree )构建一个随机森林。from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
model = Sequential()
model.add(Dense(150, activation='relu', input_shape = ((df.shape[1]-1),)))
model.add(Dense(150, activation='relu'))
model.add(Dense(y.shape[1], activation='softmax'))
model.fit(X_train, y_train, epochs=100)
和其他一切一样,我们得到:score, acc = model.evaluate(X_test, y_test, verbose=0)
acc
# 0.9333333373069763
我们可以做得更好:使用稍微多一些的训练数据并将它们分层,即X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size = 0.20, # a few more samples for training
stratify=y)
使用相同的模型和训练时期,您可以在测试集中获得 完美的 准确度 1.0:score, acc = model.evaluate(X_test, y_test, verbose=0)
acc
# 1.0
(由于此类实验中默认强加的一些随机性,细节可能会有所不同)。
关于tensorflow - 为什么我在使用 Keras 与随机森林或 knn 时得到了糟糕的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61234347/
library(ISLR) standardized.X=scale(Caravan [,-86]) test =1:1000 train.X=standardized.X[-test ,] test
这可能是一个愚蠢的问题,但我只是想知道在 scikit.ml 中实现的 ML-KNN 与 scikit-learn 的 KNeighborsClassifier 之间的区别是什么。根据sklearn'
我担心我的预测与测试的准确性,这完全有意义。 X_train , X_test, y_train ,y_test =train_test_split(iris_dataset['data'], iri
我已经开始在 python tensorflow 库上使用 K-Nearest-Neighbors 方法开发一个机器学习项目。我没有使用tensorflow工具的经验,所以我在github上找到了一些
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 KNN算法的工作原理简单直观,易于理解和实现,这使得它在各种应用场景
我试图在 R 中使用 knn(使用了几个包( knnflex , class ))来预测基于 8 个变量的违约概率。数据集大约有 100k 行 8 列,但我的机器似乎很难处理 10k 行的样本。在数据
我有一个 60.000 obs/40 变量数据集,我在其中使用了 Clara,主要是由于内存限制。 library(cluster) library(dplyr) mutate(kddne
我尝试运行这条线: knn(mydades.training[,-7],mydades.test[,-7],mydades.training[,7],k=5) 但我总是收到这个错误: Error in
我正在尝试使用 python 实现 k-近邻算法。我最终得到了以下代码。但是,我正在努力寻找最近邻居项目的索引。以下函数将返回距离矩阵。但是,我需要在features_train(算法的输入矩阵)中获
我正在使用Kobe Bryant Dataset 。我希望用 KnnRegressor 预测 shot_made_flag。 我使用game_date来提取year和month特征: # covert
在 kNN classifier 的文档中,有一个方法kneighbors ,返回 k 个最近邻居。我感兴趣的是如何优雅地返回此类分类器中的 k 个最远邻居? 最佳答案 不,没有这样的能力。 您需要记
我想优化 KNN。关于SVM、RF和XGboost的内容有很多;但对于 KNN 来说很少。 据我所知,邻居的数量是一个需要调整的参数。 但是还有哪些参数需要测试呢?有什么好的文章吗? 谢谢 最佳答案
我正在尝试使用具有两列的数据集进行词袋问题 - 摘要和解决方案。我正在使用 KNN。训练数据集有 91 列,测试数据集有 15 列。 为了生成向量,我使用以下代码。 vectorizer = Coun
我了解 k 最近邻 (KNN) 的工作原理,但我不熟悉“软投票”一词。与 KNN 相关的软投票是什么?它与标准 KNN 投票相比如何工作? 比较两种投票方案的简单示例会很有用,并且指向 Matlab
我正在尝试将 KNN 应用到 tips 数据集 并将对象映射如下: f.Male=df.Gender.map({'Female':0,'Male':1}) df.Smokes = df.Smoker.
在下面的代码(最后一行)中,根据文档使用了 X_test 和 y_test: Returns the mean accuracy on the given test data and label 问题
我有约 65 个特征、450k 个观察值和不平衡的分类响应变量 Y(约 5% 真实,2 个状态)的 df。这已通过 train_test_split 分为 {Xtrain, ytrain} (10%)
为什么在 KNN 中需要规范化?我知道这个过程标准化了所有特征对结果的影响,但是在标准化之前到特定点 V 的“K”最近点将与到该特定点的“K”最近点完全相同归一化后的 V。那么归一化对欧氏距离有何影响
我目前正在为我的人工智能考试做一个机器学习项目。目标是使用 WEKA 正确选择两种分类算法进行比较,请记住,这两种算法必须有足够的不同才能进行比较。此外,算法必须同时处理标称数据和数字数据(我想这是进
进行数据挖掘时,什么时候应该选择其中一种算法而不是另一种?有具体原因吗?另外,其中哪一个是最有效的? 我将给出一个表格作为示例。 最佳答案 一种选择方法是尝试所有这些并选择最好的。 如果我要尝试构建数
我是一名优秀的程序员,十分优秀!