#准备工作
from sklearn import linear_model #导入机器学习linear_model库
from sklearn import cross_validation #导入交叉验证库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
a=pd.read_excel('/Users/enniu/Desktop/工作簿2.xlsx')
#设置自变量和因变量
X=np.array(a[['cost']]) #X为二维数组。 a[['cost']]生成dataframe,a['cost']生成Series。X.ndim生成的维度为二位,X.shape查看各维度大小
Y=np.array(a['click']) #Y为一维数组
#绘制散点图
plt.scatter(X,Y,60,color='blue',marker='o',linewidth=3,alpha=0.8)
plt.xlabel('cost') #名字中写中文会报错
plt.ylabel('click')
plt.title('the corr between cost and click')
#将数据拆分成训练集和测试集,其中测试集占比为40%
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, Y, test_size=0.4, random_state=0)
#代入线性回归模型
clf=linear_model.LinearRegression()
clf.fit (X_train,y_train)
#计算模型的关键参数,因为只有一个自变量X,故为一元回归模型
clf.coef_ #斜率
clf.intercept_ #截距
clf.score(X_train,y_train) # 判定系数R方
clf.predict(20000) #输入自变量预测因变量
# 使用测试集评估模型
list(clf.predict(X_test)) #将测试集的自变量代入到模型预测因变量,使用list 将数组变为列表
list(y_test) #显示测试集的因变量
((y_test-clf.predict(X_test))**2).sum() #计算误差平方和
注:内容引自蓝鲸的网站分析笔记