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

。

请让我知道什么是问题,是什么原因得到这样奇怪的曲线类型,如所附图片。据我所知,我的python代码是简单而干净的。。还有一件事--当我使用多项式回归模型算法时,我也得到了一条不规则的重复曲线,我本来希望得到一条光滑的曲线,但我在那里也得到了奇怪的多项式曲线。
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()发布于 2018-03-29 01:43:57
Matplotlib按照给定的顺序绘制点。因为它们不是在上升的顺序中,你在情节中得到了那个奇怪的行为。您可以对数据进行排序:
...
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中的值。
https://stackoverflow.com/questions/49546428
复制相似问题