python與機器學習入門(1)數據預處理

在對數據進行分析時,經常會遇到數據缺失或者異常的情況

在這樣的數據多的情況下刪掉數據終歸會對整體造成一定的影響

所以採取對數據進行處理的方法讓缺失或者異常的數據有數可用

例如用均值或者最值進行代替

本文便用少量的數據進行分析

下面的數據存在著缺失,數據表示的來自某一些國家的人的年齡,薪資,是否結婚

首先導入數據文件,設置數據文件的自變數X,因變數y

X取除了最後一列的所有值 y取最後一列的值

dataset=pd.read_csv(Data.csv)X=dataset.iloc[:,:-1].values #自變數矩陣 # iloc是取矩陣的某行某列 除第一列外的所有列y=dataset.iloc[:,3].values #取第三列

接著,用Imputer類對缺失數據進行處理

在Imputer類的參數里 mean是指的是均值,median、most_frequent指的是中值和最大值 用fit進行擬合之後,transform出來缺失值

imputer =Imputer(missing_values=NaN,strategy=mean,axis=0)# 0 是列的均值 1 是行的均值imputer=imputer.fit(X[:,1:3]) #用數據擬合 fit X的前兩列X[:,1:3]=imputer.transform(X[:,1:3]) #計算缺失數據

經過處理之後呢,輸出X可見是沒有缺失數據的

對第一列和最後一列的虛擬值進行編碼

X[:, 0] = labelencoder_X.fit_transform(X[:, 0]) #擬合與轉化 所有的行 第0列# 編碼 按照第0列進行分組onehotencoder = OneHotEncoder(categorical_features = [0])X = onehotencoder.fit_transform(X).toarray() #下面兩行的用來控制格式float_formatter= lambda X:"%.2f" % Xnp.set_printoptions(formatter={float_kind:float_formatter})labelencoder_y = LabelEncoder()y = labelencoder_y.fit_transform(y)

最後列印X、y值的時候,便會非常整潔了。

源碼與更詳細的介紹請移步:

機器學習(1)-數據預處理 - CSDN博客?

blog.csdn.net圖標
推薦閱讀:

機器學習入門之泰坦尼克號案例
使用 Fisher Vector 得到文本向量
1-5 Unsupervised Learning
機器學習+AI技術,碰撞出什麼你不知道事
Essentials of Machine Learning Algorithms (with Python and R Codes)

TAG:機器學習 | Python | 數據分析 |