首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复Python中的“OverSampling”错误

如何修复Python中的“OverSampling”错误
EN

Stack Overflow用户
提问于 2019-04-13 21:38:49
回答 1查看 247关注 0票数 0

我正试图建立一个多等级、多标签的模型,根据情节对电影类型进行分类。有24种不同的电影类型,这是按类型分列的电影数量:

代码语言:javascript
复制
    genre   number_of_movies

    Drama       3965
    Comedy      3046
    Thriller    2024
    Romance     1892
    Crime       1447
    Action      1303
    Adventure   1024
    Horror      954
    Mystery     759
    Sci-Fi      723
    Fantasy     707
    Family      682
    Documentary 419
    Biography   373
    War         348
    Music       341
    History     273
    Musical     271
    Sport       261
    Animation   260
    Western     237
    Film-Noir   168
    Short       92
    News        7

我正在使用CountVectorizer()创建特性,如下所述:

代码语言:javascript
复制
vect = CountVectorizer(max_features=4412, stop_words='english', ngram_range=(1, 3), binary=True)
X = vect.fit_transform(df['plot'])
X.shape

输出:

代码语言:javascript
复制
(7895, 4412)

和MultiLabelBinarizer()用于创建y_genres:

代码语言:javascript
复制
le = MultiLabelBinarizer()
y_genres = le.fit_transform(dataTraining['genres'])
y_genres.shape

输出:

代码语言:javascript
复制
(7895, 24)

其目标是重采样除多数类之外的所有类,使用RandomOverSampler并从imblearn.over_sampling中删除。然而,在使用:

  • RandomOverSampler:它正在删除两个类,从24个到22个。
代码语言:javascript
复制
ros = RandomOverSampler(random_state=42)
    X_resampled, Y_resampled = ros.fit_sample(X, y_genres)

Y_resampled.shape

输出:

代码语言:javascript
复制
(52690, 22)
  • SMOTE:正在向我显示以下错误
代码语言:javascript
复制
sm = SMOTE(random_state=42)
    X_resampled, Y_resampled = sm.fit_sample(X, y_genres)

错误:

代码语言:javascript
复制
Expected n_neighbors <= n_samples,  but n_samples = 2, n_neighbors = 6

我应该做些什么来解决前面描述的两个问题?

EN

回答 1

Stack Overflow用户

发布于 2019-04-14 08:10:43

sm.fit_resample可能是救援人员。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55670092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档