Machine Learning (2) - Linear Regression Multiple Variables 建立多个参数的 Linear Regression 模型

引言

上一节简单地根据面积做了房价的计算,但是在实际应用中,影响房价的因素一定不止面积一个,如下图是美国 Monroe Township 地区的房价资料,我们可以看到房龄,卧室数量都会对房价造成影响,所以我们需要用这些数据进行建模。

Machine Learning (2) - Linear Regression Multiple Variables 建立多个参数的 Linear Regression 模型

下面就是多参数的 Linear Regression 的建模公式:

Machine Learning (2) - Linear Regression Multiple Variables 建立多个参数的 Linear Regression 模型

正文

引入数据

import pandas as pd
df = pd.read_csv('/Users/rachel/Sites/pandas/py/ML/2_linear_reg_multivariate/homeprices.csv')
df

输出:

Machine Learning (2) - Linear Regression Multiple Variables 建立多个参数的 Linear Regression 模型

用 Pandas 整理数据

// 求出 bedrooms 列的平均值
media_bedrooms = df.bedrooms.median()
media_bedrooms // 输出 4.0

// 用平均值填补空缺数据
df = df.fillna(media_bedrooms)
df
// 输出
    area    bedrooms    age     price
0   2600    3.0     20  550000
1   3000    4.0     15  565000
2   3200    4.0     18  610000
3   3600    3.0     30  595000
4   4000    5.0     8   760000
5   4100    6.0     8   810000

训练模型

1. 创建数据模型

from sklearn import linear_model

model = linear_model.LinearRegression()

2. 用已知数据训练模型

model.fit(df[['area', 'bedrooms', 'age']], df.price)

3. 用训练好的模型进行预测

model.predict([[3000, 3, 40]])
// 输出
array([498408.25158031])

小练习

主题: 帮助 HR 部门做人事分析,根据工龄,测验分数及面试分数来预测合理的薪水值。

引入数据

import pandas as pd
from sklearn import linear_model
df = pd.read_csv('/Users/rachel/Downloads/py-master/ML/2_linear_reg_multivariate/Exercise/hiring.csv')
df

Machine Learning (2) - Linear Regression Multiple Variables 建立多个参数的 Linear Regression 模型

用 Pandas 整理数据

1. 把长长的列名改成简单的, 方便后面使用

df.rename(columns={'test_score(out of 10)':'test', 'interview_score(out of 10)':'interview', 'salary($)':'salary'}, inplace=True)

2. 取 test 列的平均值

test = df.test.median()

3. 把表格中的 NaN 补全

df.fillna({
    'experience': 'zero',
    'test' : test
}, inplace=True)

4. 把 experience 列的字符转成数字

// 在终端安装word2number
pip3 install word2number
from word2number import w2n
df.experience = df.experience.apply(w2n.word_to_num)

5. 最后整理完的数据

Machine Learning (2) - Linear Regression Multiple Variables 建立多个参数的 Linear Regression 模型

训练模型

1. 创建数据模型

reg = linear_model.LinearRegression()

2. 用已知数据训练模型

reg.fit(df[['experience', 'test', 'interview']], df.salary)

3. 用训练好的模型进行预测

reg.predict([[2, 9, 6]])
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!