2017-07-30 9 views
-1

をmatplotlibのしようとすると:例外TypeError:フロート()の引数は文字列または数値ではなく、「PRED」でなければなりません:のPython 3.5でエラーが発生したsklearnでPCAをプロットし、次のコードを使用して

私が把握するのに苦労しています何が原因でこのエラーがスローされますか。

self.featuresは、3つのfloatからなるリストです。 [1.1、1.2、1.3] self.featuresの例:

[array([-1.67191985, 0.1  , 9.69981494]), array([-0.68486623, 0.05  , 9.99085024]), array([ -1.36  , 0.1  , 10.44720459]), array([-2.46918915, 0.  , 3.5483372 ]), array([-0.835  , 0.1  , 4.02740479])] 

これは、エラーがスローされている方法です。

def pca(self):   
    pca = PCA(n_components=2) 
    x_np = np.asarray(self.features) 
    pca.fit(x_np) 
    X_reduced = pca.transform(x_np) 
    plt.figure(figsize=(10, 8)) 
    plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y, cmap='RdBu') 
    plt.xlabel('First component') 
    plt.ylabel('Second component') 

完全なトレースバックです:

Traceback (most recent call last): 
    File "/Users/user/PycharmProjects/Post-Translational-Modification-     
Prediction/pred.py", line 244, in <module> 
y.generate_pca() 
    File "/Users/user/PycharmProjects/Post-Translational-Modification- 
Prediction/pred.py", line 222, in generate_pca 
plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y, cmap='RdBu') 
File "/usr/local/lib/python3.5/site-packages/matplotlib/pyplot.py", 
line 3435, in scatter 
edgecolors=edgecolors, data=data, **kwargs) 
File "/usr/local/lib/python3.5/site-packages/matplotlib/__init__.py", 
line 1892, in inner 
return func(ax, *args, **kwargs) 
File "/usr/local/lib/python3.5/site-packages/matplotlib/axes/_axes.py", line 3976, in scatter 
c_array = np.asanyarray(c, dtype=float) 
File "/usr/local/lib/python3.5/site-packages/numpy/core/numeric.py", line 583, in asanyarray 
return array(a, dtype, copy=False, order=order, subok=True) 
TypeError: float() argument must be a string or a number, not 'Pred' 
+0

エラーメッセージ全体を投稿できますか?それはすべてのコードですか、それとももう少しありますか? – 2Obe

+0

self.featuresの数行を投稿することもできますか? – Linda

+0

@ 2Obe完全なトレースバックが追加されました。コードはさらにありますが、約200行ほどです。しかし、私はそれがエラーに寄与しているとは思わない。 ありがとうございます! – vzg100

答えて

0

@WhoIsJackによって提案された修正プログラムはnp.arange(len(self.features))

に同様の問題に遭遇する人のための機能のコードを追加することである。

def generate_pca(self): 
    y= np.arange(len(self.features)) 
    pca = PCA(n_components=2) 
    x_np = np.asarray(self.features) 
    pca.fit(x_np) 
    X_reduced = pca.transform(x_np) 
    plt.figure(figsize=(10, 8)) 
    plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y, cmap='RdBu') 
    plt.xlabel('First component') 
    plt.ylabel('Second component') 
    plt.show() 
関連する問題