目录

一、分析数据

它有三个部分:

 二、拆分训练集和预测集

1、避免随机性我们打乱以下数据

 2、拆分

三、训练模型

四、开始预测

五、评价


一、分析数据

import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression

boston = datasets.load_boston()
'''
data 即数据,这些数据影响了房价,统计指标
target指房价,单位(万美金)
feature_names 具体的指标,比如CRIM:犯罪率  NOX:空气污染
'''
boston

它有三个部分:

data部分:506条数据 (13个属性(特征)-影响房价的因素)

 target部分: 506条(就是506个房子的房价)单位是万美金

feature_names部分: 13个影响房价的因素

 代码如下:

X = boston['data']
y = boston['target']
feature_names = boston['feature_names']
print(X.shape) # (506, 13)
# x # 506个房子(条数据),影响房价的13个属性
print(y.shape) # (506,) 506个房价
print(feature_names)
print(feature_names.shape)  #(13,) 13个具体指标
#['CRIM' 'ZN' 'INDUS' 'CHAS' 'NOX' 'RM' 'AGE' 'DIS' 'RAD' 'TAX' 'PTRATIO''B' 'LSTAT']

 输出如下:

 二、拆分训练集和预测集

1、避免随机性我们打乱以下数据

# 506个数据、样本
# 拆分成两份:80% 20%
# 80%:训练集
# 20%:验证集 
index = np.arange(506) #生成0-505的‘索引’
np.random.shuffle(index) # 打乱索引
index

 2、拆分

train_index = index[:405] # 80%约为405个
test_index = index[405:] # 剩余验证

print(type(train_index)) # <class 'numpy.ndarray'>
# 训练集
X_train = X[train_index] # 用打乱后数组里面的“索引” 去取数据
y_train = y[train_index]
# 验证集
X_test = X[test_index]
y_test = y[test_index]
# 训练集第一个数据
print(X_train[0])

输出如下:

 注:e-01(科学计数法)

三、训练模型

from IPython.core.display_functions import display

model = LinearRegression(fit_intercept=True)
model.fit(X_train, y_train)
print(model.coef_,model.intercept_)
model.coef_:斜率 正值说明正相关,负值说明负相关
model.intercept_:截距(用的默认的----fit_intercept=True)

 

四、开始预测

# 开始预测
y_pred = model.predict(X_test)
print("房价的预测真值为:",y_test)
# print("通过训练后获得的预测值:",y_pred)
y_pred

 

输出如下:

五、评价

print("给模型打分:",model.score(X_test, y_test))

 输出如下:

越接近1说明拟合的方程越好

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐