# Python机器学习的练习二：多元线性回归

```path= os.getcwd()+ '\data\ex1data2.txt'

Size

Bedrooms

Price

0

2104

3

399900

1

1600

3

329900

2

2400

3

369000

3

1416

2

232000

4

3000

4

539900

```data2= (data2- data2.mean())/ data2.std()

Size

Bedrooms

Price

0

0.130010

-0.223675

0.475747

1

-0.504190

-0.223675

-0.084074

2

0.502476

-0.223675

0.228626

3

-0.735723

-1.537767

-0.867025

4

1.257476

1.090417

1.595389

```def gradientDescent(X, y, theta, alpha, iters):
temp= np.matrix(np.zeros(theta.shape))
parameters= int(theta.ravel().shape[1])
cost= np.zeros(iters)

for iin range(iters):
error= (X* theta.T)- y

for jin range(parameters):
term= np.multiply(error, X[:,j])
temp[0,j]= theta[0,j]- ((alpha/ len(X))* np.sum(term))

theta= temp
cost[i]= computeCost(X, y, theta)

return theta, cost```

```# add ones column
data2.insert(0,'Ones',1)

# set X (training data) and y (target variable)
cols= data2.shape[1]
X2= data2.iloc[:,0:cols-1]
y2= data2.iloc[:,cols-1:cols]

# convert to matrices and initialize theta
X2= np.matrix(X2.values)
y2= np.matrix(y2.values)
theta2= np.matrix(np.array([0,0,0]))```

```# perform linear regression on the data set
g2, cost2= gradientDescent(X2, y2, theta2, alpha, iters)

# get the cost (error) of the model
computeCost(X2, y2, g2)```

0.13070336960771897

```fig, ax= plt.subplots(figsize=(12,8))
ax.plot(np.arange(iters), cost2,'r')
ax.set_xlabel('Iterations')
ax.set_ylabel('Cost')
ax.set_title('Error vs. Training Epoch')```

Python的伟大之处在于它的庞大的开发者社区和丰富的开源软件。在机器学习领域，顶级Python库是scikit-learn。让我们看看如何使用scikit- learn的线性回归类来处理第一部分的简单线性回归任务。

```from sklearnimport linear_model
model= linear_model.LinearRegression()
model.fit(X, y)```

```x= np.array(X[:,1].A1)
f= model.predict(X).flatten()

fig, ax= plt.subplots(figsize=(12,8))
ax.plot(x, f,'r', label='Prediction')
ax.scatter(data.Population, data.Profit, label='Traning Data')
ax.legend(loc=2)
ax.set_xlabel('Population')
ax.set_ylabel('Profit')
ax.set_title('Predicted Profit vs. Population Size')```

http://www.johnwittenauer.net/machine-learning-exercises-in-python-part-2/

1802 篇文章92 人订阅

0 条评论

## 相关文章

23090

4.6K30

### 教你使用Keras一步步构建深度神经网络：以情感分析任务为例

【导读】Keras是深度学习领域一个非常流行的库，通过它可以使用简单的代码构建强大的神经网络。本文介绍基于Keras构建神经网络的基本过程，包括加载数据、分析数...

1.1K70

84560

1.7K60

### 推荐 | Python机器学习项目实战（附代码 + 可下载）【一】

Putting the machine learning pieces together

41730

### 八个方法干掉不平衡集

I have a binary classification problem and one class ispresent with 60:1 ratio i...

12120

### 机器学习特征工程的7个技巧

1. 数值变量标准化 不同数据的Scale不一样，所以需要标准化。比如身高和体重。 不做标准化，有些算法会死得很惨，比如SVM、神经网络、K-means之类。标...

541100

23220

9820