用python來實現機器學習(一):線性迴歸(linear regression)
阿新 • • 發佈:2018-11-27
需要下載一個data:auto-mpg.data
第一步:顯示資料集圖
import pandas as pd import matplotlib.pyplot as plt columns = ["mpg","cylinders","displacement","horsepower","weight","acceleration","model year","origin","car name"] cars = pd.read_table("E:/3_python_code/python_ml/data/auto-mpg.data",delim_whitespace=True,names=columns) print (cars.head(5)) #加了兩個子圖 fig = plt.figure() ax1 = fig.add_subplot(2,1,1) ax2 = fig.add_subplot(2,1,2) cars.plot("weight","mpg",kind="scatter",ax=ax1) cars.plot("acceleration","mpg",kind="scatter",ax=ax2) plt.show()
第二步:訓練並預測
import pandas as pd import matplotlib.pyplot as plt columns = ["mpg","cylinders","displacement","horsepower","weight","acceleration","model year","origin","car name"] cars = pd.read_table("E:/3_python_code/python_ml/data/auto-mpg.data",delim_whitespace=True,names=columns) # print (cars.head(5)) # #加了兩個子圖 fig = plt.figure() # ax1 = fig.add_subplot(2,1,1) # ax2 = fig.add_subplot(2,1,2) # cars.plot("weight","mpg",kind="scatter",ax=ax1) # cars.plot("acceleration","mpg",kind="scatter",ax=ax2) # plt.show() import sklearn from sklearn.linear_model import LinearRegression lr = LinearRegression() #訓練 lr.fit(cars[["weight"]],cars["mpg"]) #預測 predictions = lr.predict(cars[["weight"]]) from sklearn.metrics import mean_squared_error #均方誤差 mse = mean_squared_error(cars["mpg"],predictions) print(mse) print(predictions[0:5]) print(cars["mpg"][0:5]) plt.scatter(cars["weight"],cars["mpg"],c="red") plt.scatter(cars["weight"],predictions,c="blue") plt.show()
輸出結果 顯示均方誤差18.78,如下
18.7809397346 [ 19.41852276 17.96764345 19.94053224 19.96356207 19.84073631] 0 18.0 1 15.0 2 18.0 3 16.0 4 17.0 Name: mpg, dtype: float64 Process finished with exit code 0 ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181127115834245.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyMTY2Nzc5,size_16,color_FFFFFF,t_70)