首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一条光滑的SVR曲线上得到一个奇怪的重复SVR图

在一条光滑的SVR曲线上得到一个奇怪的重复SVR图
EN

Stack Overflow用户
提问于 2018-03-29 00:56:49
回答 1查看 190关注 0票数 1

我是机器学习的新手,拥有IMDb电影数据集(~14000个单元)。我试图使用支持向量回归模型来预测imdb电影的收视率。对于预测,我使用的是“ratingCount”列,我用matplotlib绘制了一个简单的“ratingCount”(X)和“imdbRating”(Y)图,并决定使用支持向量回归来绘制一条SVR曲线。我得到的曲线又奇怪又奇怪,好像在数据图上重复了一遍又一遍。我原以为会有一条平滑的SVR曲线与数据相吻合。

请让我知道什么是问题,是什么原因得到这样奇怪的曲线类型,如所附图片。据我所知,我的python代码是简单而干净的。。还有一件事--当我使用多项式回归模型算法时,我也得到了一条不规则的重复曲线,我本来希望得到一条光滑的曲线,但我在那里也得到了奇怪的多项式曲线。

代码语言:javascript
复制
    import pandas as pd
    import matplotlib.pyplot as plt
    %matplotlib inline

    imdb_clean =pd.read_csv(r'E:\pythON\DataSci\GitH\IMDB\Clean_IMDB_3.csv')
    X = imdb_clean.iloc[:, 1:2] .values
    y = imdb_clean.iloc[: ,0:1].values
    from sklearn.preprocessing import StandardScaler
    scale_x = StandardScaler()
    scale_y = StandardScaler()
    X = scale_x.fit_transform(X)
    y = scale_y.fit_transform(y)
    from sklearn.svm import SVR
    svr_regressor = SVR(kernel='rbf')
    svr_regressor.fit(X, y)
    # normal plot
    plt.figure(figsize=(20,10))
    plt.scatter(X, y, color='blue')
    plt.show()


    # svr fitted plot
    plt.figure(figsize=(20,10))
    plt.scatter(X, y, color='blue')
    plt.plot(X, svr_regressor.predict(X), color='black')
    plt.show()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-29 01:43:57

Matplotlib按照给定的顺序绘制点。因为它们不是在上升的顺序中,你在情节中得到了那个奇怪的行为。您可以对数据进行排序:

代码语言:javascript
复制
...
imdb_clean =pd.read_csv(r'E:\pythON\DataSci\GitH\IMDB\Clean_IMDB_3.csv')
imdb_clean = imdb_clean.sort_values(by=imdb_clean.columns[1])
...

或者将排序后的值放在单独的变量中,类似于this thread中的值。

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

https://stackoverflow.com/questions/49546428

复制
相关文章

相似问题

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