python数据挖掘与实践第五章错误
枭亭 2017-04-05 10:07:59 源代码
import os
from collections import defaultdict
import numpy as np
import pandas as pd
data_folder = "E:\\数据挖掘\\数据集"
data_filename = os.path.join(data_folder, "Advertisement", "ad.data")
def convert_number(x):
try:
return float(x)
except ValueError:
return np.nan
converters = defaultdict(convert_number)
converters[1558] = lambda x: 1 if x.strip() == "ad." else 0
ads = pd.read_csv(data_filename, header=None, converters=converters)
X = ads.drop(1558, axis=1).values
y = ads[1558]
from sklearn.decomposition import PCA
pca = PCA(n_components=5)
Xd = pca.fit_transform(X)
np.set_printoptions(precision=3, suppress=True)
pca.explained_variance_ratio_
错误显示
ValueError Traceback (most recent call last)
<ipython-input-7-7a4a8631d232> in <module>()
17 from sklearn.decomposition import PCA
18 pca = PCA(n_components=5)
---> 19 Xd = pca.fit_transform(X)
20 np.set_printoptions(precision=3, suppress=True)
21 pca.explained_variance_ratio_
D:\program\python3.4\lib\site-packages\sklearn\decomposition\pca.py in fit_transform(self, X, y)
322
323 """
--> 324 U, S, V = self._fit(X)
325 U = U[:, :self.n_components_]
326
D:\program\python3.4\lib\site-packages\sklearn\decomposition\pca.py in _fit(self, X)
344
345 X = check_array(X, dtype=[np.float64], ensure_2d=True,
--> 346 copy=self.copy)
347
348 # Handle n_components==None
D:\program\python3.4\lib\site-packages\sklearn\utils\validation.py in check_array(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
380 force_all_finite)
381 else:
--> 382 array = np.array(array, dtype=dtype, order=order, copy=copy)
383
384 if ensure_2d:
ValueError: could not convert string to float: '?'
数据集
http://archive.ics.uci.edu/ml/datasets/Internet+Advertisements download Advertisements dataset