1. 程式人生 > >機器學習之迴歸(1)線性迴歸

機器學習之迴歸(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_)   #查看回歸方程的截距

 

結果如下