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

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

正文
引入数据
import pandas as pd
df = pd.read_csv('/Users/rachel/Sites/pandas/py/ML/2_linear_reg_multivariate/homeprices.csv')
df输出:

用 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
用 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 word2numberfrom word2number import w2n
df.experience = df.experience.apply(w2n.word_to_num)5. 最后整理完的数据

训练模型
1. 创建数据模型
reg = linear_model.LinearRegression()2. 用已知数据训练模型
reg.fit(df[['experience', 'test', 'interview']], df.salary)3. 用训练好的模型进行预测
reg.predict([[2, 9, 6]])本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           Rachel 的个人博客
 Rachel 的个人博客
         
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: