機器學習之迴歸(1)線性迴歸
# -*- coding: utf-8 -*-
"""
Created on Sun Apr 15 16:18:34 2018
@author: Administrator
"""
import matplotlib.pyplot as plt #pyplotlib子庫提供了和matlab類似的繪圖 API
import numpy as np
from sklearn import linear_model
# 讀取資料集
datasets_X = [] #儲存資料
datasets_Y = []
fr = open('houseprice11.txt','r')
lines = fr.readlines()
for line in lines: #一次讀取整個檔案
items = line.strip().split(',') #去除資料檔案中的逗號
datasets_X.append(int(items[0])) #將讀取的資料轉換為int型,並分別寫入
datasets_Y.append(int(items[1])) #datasets_X 和datasets_Y
length = len(datasets_X) #求得長度
datasets_X = np.array(datasets_X).reshape([length,1])
datasets_Y = np.array(datasets_Y) #轉化為陣列
#以資料datasets_X 的最大和最小值為範圍,建立等差數列,方便後續畫圖
minX = min(datasets_X)
maxX = max(datasets_X)
X = np.arange(minX,maxX).reshape([-1,1])
linear = linear_model.LinearRegression()
linear.fit(datasets_X, datasets_Y)
# 影象中顯示
plt.scatter(datasets_X, datasets_Y, color = 'red')
plt.plot(X, linear.predict(X), color = 'blue')
plt.xlabel('Area')
plt.ylabel('Price')
plt.show()
print('Coefficients:',linear.coef_) #查看回歸方程的係數
print('intercept:',linear.intercept_) #查看回歸方程的截距
結果如下