【Tips】如何用python讀取csv文件中的數據以及如何繪製離散點

由於接下來的西瓜書文章涉及一些簡單的python編程,我先在前幾日貼出了一些python入門實驗報告內容。

相信做下來的人已經有了一定的python入門水平。

接下來需要進行的是用python實現簡單的讀取數據操作,以便為後續的機器學習任務打下基礎。

這裡還以周志華的《機器學習》書中的數據集為例。

書中有一數據集,喚作西瓜數據集。

《機器學習》西瓜數據集3.0α

這個數據集中,有17個樣本,每個樣本有兩個屬性,即 d_1 :甜度和 d_2 :含糖率,每個樣本還有一個真實標記 y ,用於記錄該西瓜是否為好瓜。

現在,我們將這些數據存儲在名為 watermelon3α.csv 的文件中,其中真實標記用0和1表示。

watermelon3α.csv

接下來,我們需要用python將這些數據從csv文件中提取出來。

首先需要導入用到的庫文件

from numpy import * import pandas as pd import matplotlib.pyplot as plt

其中:

NumPy系統是Python的一種開源的數值計算擴展。這種工具可用來存儲和處理大型矩陣,比Python自身的嵌套列表(nested list structure)結構要高效的多(該結構也可以用來表示矩陣(matrix))。據說NumPy將Python相當於變成一種免費的更強大的MatLab系統。

Python Data Analysis Library 或 pandas 是基於NumPy 的一種工具,該工具是為了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。pandas提供了大量能使我們快速便捷地處理數據的函數和方法。你很快就會發現,它是使Python成為強大而高效的數據分析環境的重要因素之一。

Matplotlib 是一個 Python 的 2D繪圖庫,它以各種硬拷貝格式和跨平台的互動式環境生成出版質量級別的圖形。

接下來讀入數據:

#讀入csv文件數據 df=pd.read_csv(/Users/anlitong/Documents/workspace/watermelon3α.csv)

導入數據結果如下:

導入數據結果

然後將數據存儲成矩陣形式:

alt=array(df[[Idx,density,ratio_sugar,label]])

矩陣形式的數據

將數據點按好瓜和壞瓜分為 x_0、y_0x_1、y_1 :

x0=[]x1=[]y0=[]y1=[]for a in alt: if a[3]==1: x1.append(a[1]) y1.append(a[2]) elif a[3]==0: x0.append(a[1]) y0.append(a[2])x0,x1,y0,y1=array(x0),array(x1),array(y0),array(y1)

將數據顯示出來:

plt.figure()plt.scatter(x0,y0,s=100,c=red, label = bad)plt.scatter(x1,y1,s=100,c=green, label = good)plt.xlabel(density) plt.ylabel(ratio_sugar)plt.title(watermelon3α) plt.show()

顯示結果如下:

西瓜數據集分布

這樣就簡單的將數據集中的數據表示在了圖像中。


推薦閱讀:

Python3《機器學習實戰》學習筆記(十一):線性回歸基礎篇之預測鮑魚年齡
python做超市銷售額的回歸分析
機器學習筆記9 —— 過擬合和正則化
線性回歸中的相關度和決定係數
[R]線性回歸

TAG:Python | 线性回归 | 数据挖掘 |