今天学习了线性回归,于是用代码实现一下。。。
首先,导入数据
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
data=pd.read_csv('kc_house_data.csv')
df=pd.DataFrame(data)
#df.head() #头部几行数据
# df.tail() #取尾部几行数据,也可以指定尾部几行数据,如df.tail(3)
#df.columns.values #打印列的属性
#df.describe() #用于生成描述性统计数据,统计数据集的集中趋势,分散和行列的分布情况
然后,画图
import matplotlib.pyplot as plt
plt.figure(figsize=(6,6),dpi=100) #自定义图像,dpi参数指定绘图对象的分辨率
plt.plot(df['sqft_living'],df['price'],'bv') #https://www.jianshu.com/p/ed3f31fc6a41
plt.xlabel('sqft_living')
plt.ylabel('price')
plt.show()
此处,划分数据集
train_data,test_data=train_test_split(df,test_size=0.2,random_state=0)
train_input=train_data[['sqft_living']].values #这里使用[[]]在于生成二维数组
train_label=train_data[['price']].values
test_input=test_data[['sqft_living']].values
test_label=test_data[['price']].values
开始对线性模型进行训练
model=LinearRegression(normalize=True)
model.fit(train_input,train_label)
最后,画出模拟线
plt.figure(figsize=(6,6),dpi=100)
plt.scatter(test_input,test_label,color='b',label='true')
plt.plot(test_input,model.predict(test_input),label='predict') #model.predict(test_input)生成二维数组
plt.legend(loc='upper left') #指定loc,不然会取字符串第一个字母
plt.show()