ValueError: Expected n_neighbors <= n_samples, but n_samples = 1, n_neighbors = 6 (SMOTE)
$begingroup$
I am designing a multi class classifier for 11 labels. I am using SMOTE to do the sampling. However, I face the following error:
SMOTE Error:
from imblearn.over_sampling import SMOTE
sm = SMOTE(random_state=42)
X_res, Y_res = sm.fit_sample(X_f, Y_f)
Error:
~/.local/lib/python3.6/site-packages/sklearn/neighbors/base.py in kneighbors(self, X, n_neighbors, return_distance)
414 "Expected n_neighbors <= n_samples, "
415 " but n_samples = %d, n_neighbors = %d" %
--> 416 (train_size, n_neighbors)
417 )
418 n_samples, _ = X.shape
ValueError: Expected n_neighbors <= n_samples, but n_samples = 1, n_neighbors = 6
Why does it say that I have only 1 n_samples?
When I tried the same code for a much smaller dataset (100k rows and 4 labels), it ran just fine.
Details about my input:
Input parameters:
X_f
array([[1.43347000e+05, 1.00000000e+00, 2.03869492e+03, ...,
1.00000000e+00, 1.00000000e+00, 1.35233019e+03],
[5.09050000e+04, 0.00000000e+00, 0.00000000e+00, ...,
5.09050000e+04, 0.00000000e+00, 5.09050000e+04],
[1.43899000e+05, 2.00000000e+00, 2.11447368e+03, ...,
1.00000000e+00, 2.00000000e+00, 1.39707767e+03],
...,
[8.50000000e+01, 0.00000000e+00, 0.00000000e+00, ...,
8.50000000e+01, 0.00000000e+00, 8.50000000e+01],
[2.33000000e+02, 4.00000000e+00, 4.90000000e+01, ...,
4.00000000e+00, 4.00000000e+00, 7.76666667e+01],
[0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]])
Y_f
array([[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
...,
[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 1.]])
Dimensions of input parameters:
print(X_f.shape, Y_f.shape)
(2087620, 31) (2087620, 11)
What I have tried to do so far:
Use other techniques of imblearn
package:
- Using
SVMSMOTE
:- Takes too long to compute (over 2days), and PC crashes. - Using
RandomOverSampler
:- Model gives poor accuracy, of 45% - Using different
sampling_strategy
:- works forminority
only. - Also of the suggestions provided here and here., unsuccessfully. I could not understand them, honestly.
Despite trying, I do not understand much of it. I am a newbie at sampling. Can you help me fix this problem, please?
python data-mining sampling smote
$endgroup$
add a comment |
$begingroup$
I am designing a multi class classifier for 11 labels. I am using SMOTE to do the sampling. However, I face the following error:
SMOTE Error:
from imblearn.over_sampling import SMOTE
sm = SMOTE(random_state=42)
X_res, Y_res = sm.fit_sample(X_f, Y_f)
Error:
~/.local/lib/python3.6/site-packages/sklearn/neighbors/base.py in kneighbors(self, X, n_neighbors, return_distance)
414 "Expected n_neighbors <= n_samples, "
415 " but n_samples = %d, n_neighbors = %d" %
--> 416 (train_size, n_neighbors)
417 )
418 n_samples, _ = X.shape
ValueError: Expected n_neighbors <= n_samples, but n_samples = 1, n_neighbors = 6
Why does it say that I have only 1 n_samples?
When I tried the same code for a much smaller dataset (100k rows and 4 labels), it ran just fine.
Details about my input:
Input parameters:
X_f
array([[1.43347000e+05, 1.00000000e+00, 2.03869492e+03, ...,
1.00000000e+00, 1.00000000e+00, 1.35233019e+03],
[5.09050000e+04, 0.00000000e+00, 0.00000000e+00, ...,
5.09050000e+04, 0.00000000e+00, 5.09050000e+04],
[1.43899000e+05, 2.00000000e+00, 2.11447368e+03, ...,
1.00000000e+00, 2.00000000e+00, 1.39707767e+03],
...,
[8.50000000e+01, 0.00000000e+00, 0.00000000e+00, ...,
8.50000000e+01, 0.00000000e+00, 8.50000000e+01],
[2.33000000e+02, 4.00000000e+00, 4.90000000e+01, ...,
4.00000000e+00, 4.00000000e+00, 7.76666667e+01],
[0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]])
Y_f
array([[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
...,
[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 1.]])
Dimensions of input parameters:
print(X_f.shape, Y_f.shape)
(2087620, 31) (2087620, 11)
What I have tried to do so far:
Use other techniques of imblearn
package:
- Using
SVMSMOTE
:- Takes too long to compute (over 2days), and PC crashes. - Using
RandomOverSampler
:- Model gives poor accuracy, of 45% - Using different
sampling_strategy
:- works forminority
only. - Also of the suggestions provided here and here., unsuccessfully. I could not understand them, honestly.
Despite trying, I do not understand much of it. I am a newbie at sampling. Can you help me fix this problem, please?
python data-mining sampling smote
$endgroup$
add a comment |
$begingroup$
I am designing a multi class classifier for 11 labels. I am using SMOTE to do the sampling. However, I face the following error:
SMOTE Error:
from imblearn.over_sampling import SMOTE
sm = SMOTE(random_state=42)
X_res, Y_res = sm.fit_sample(X_f, Y_f)
Error:
~/.local/lib/python3.6/site-packages/sklearn/neighbors/base.py in kneighbors(self, X, n_neighbors, return_distance)
414 "Expected n_neighbors <= n_samples, "
415 " but n_samples = %d, n_neighbors = %d" %
--> 416 (train_size, n_neighbors)
417 )
418 n_samples, _ = X.shape
ValueError: Expected n_neighbors <= n_samples, but n_samples = 1, n_neighbors = 6
Why does it say that I have only 1 n_samples?
When I tried the same code for a much smaller dataset (100k rows and 4 labels), it ran just fine.
Details about my input:
Input parameters:
X_f
array([[1.43347000e+05, 1.00000000e+00, 2.03869492e+03, ...,
1.00000000e+00, 1.00000000e+00, 1.35233019e+03],
[5.09050000e+04, 0.00000000e+00, 0.00000000e+00, ...,
5.09050000e+04, 0.00000000e+00, 5.09050000e+04],
[1.43899000e+05, 2.00000000e+00, 2.11447368e+03, ...,
1.00000000e+00, 2.00000000e+00, 1.39707767e+03],
...,
[8.50000000e+01, 0.00000000e+00, 0.00000000e+00, ...,
8.50000000e+01, 0.00000000e+00, 8.50000000e+01],
[2.33000000e+02, 4.00000000e+00, 4.90000000e+01, ...,
4.00000000e+00, 4.00000000e+00, 7.76666667e+01],
[0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]])
Y_f
array([[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
...,
[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 1.]])
Dimensions of input parameters:
print(X_f.shape, Y_f.shape)
(2087620, 31) (2087620, 11)
What I have tried to do so far:
Use other techniques of imblearn
package:
- Using
SVMSMOTE
:- Takes too long to compute (over 2days), and PC crashes. - Using
RandomOverSampler
:- Model gives poor accuracy, of 45% - Using different
sampling_strategy
:- works forminority
only. - Also of the suggestions provided here and here., unsuccessfully. I could not understand them, honestly.
Despite trying, I do not understand much of it. I am a newbie at sampling. Can you help me fix this problem, please?
python data-mining sampling smote
$endgroup$
I am designing a multi class classifier for 11 labels. I am using SMOTE to do the sampling. However, I face the following error:
SMOTE Error:
from imblearn.over_sampling import SMOTE
sm = SMOTE(random_state=42)
X_res, Y_res = sm.fit_sample(X_f, Y_f)
Error:
~/.local/lib/python3.6/site-packages/sklearn/neighbors/base.py in kneighbors(self, X, n_neighbors, return_distance)
414 "Expected n_neighbors <= n_samples, "
415 " but n_samples = %d, n_neighbors = %d" %
--> 416 (train_size, n_neighbors)
417 )
418 n_samples, _ = X.shape
ValueError: Expected n_neighbors <= n_samples, but n_samples = 1, n_neighbors = 6
Why does it say that I have only 1 n_samples?
When I tried the same code for a much smaller dataset (100k rows and 4 labels), it ran just fine.
Details about my input:
Input parameters:
X_f
array([[1.43347000e+05, 1.00000000e+00, 2.03869492e+03, ...,
1.00000000e+00, 1.00000000e+00, 1.35233019e+03],
[5.09050000e+04, 0.00000000e+00, 0.00000000e+00, ...,
5.09050000e+04, 0.00000000e+00, 5.09050000e+04],
[1.43899000e+05, 2.00000000e+00, 2.11447368e+03, ...,
1.00000000e+00, 2.00000000e+00, 1.39707767e+03],
...,
[8.50000000e+01, 0.00000000e+00, 0.00000000e+00, ...,
8.50000000e+01, 0.00000000e+00, 8.50000000e+01],
[2.33000000e+02, 4.00000000e+00, 4.90000000e+01, ...,
4.00000000e+00, 4.00000000e+00, 7.76666667e+01],
[0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]])
Y_f
array([[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
...,
[1., 0., 0., ..., 0., 0., 0.],
[1., 0., 0., ..., 0., 0., 0.],
[0., 0., 0., ..., 0., 0., 1.]])
Dimensions of input parameters:
print(X_f.shape, Y_f.shape)
(2087620, 31) (2087620, 11)
What I have tried to do so far:
Use other techniques of imblearn
package:
- Using
SVMSMOTE
:- Takes too long to compute (over 2days), and PC crashes. - Using
RandomOverSampler
:- Model gives poor accuracy, of 45% - Using different
sampling_strategy
:- works forminority
only. - Also of the suggestions provided here and here., unsuccessfully. I could not understand them, honestly.
Despite trying, I do not understand much of it. I am a newbie at sampling. Can you help me fix this problem, please?
python data-mining sampling smote
python data-mining sampling smote
edited yesterday
Ethan
701625
701625
asked yesterday
venom8914venom8914
1312
1312
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "557"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f48968%2fvalueerror-expected-n-neighbors-n-samples-but-n-samples-1-n-neighbors%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Data Science Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f48968%2fvalueerror-expected-n-neighbors-n-samples-but-n-samples-1-n-neighbors%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown