术通常用于预测分析以及发现变量之间的因果关系。
使用回归分析的好处良多。具体如下:
1. 它表明自变量和因变量之间的显著关系;
2. 它表明多个自变量对一个因变量的影响强度。
回归分析也允许我们去比较那些衡量不同尺度的变量之间的相互影响,如价格变动与促销活动数量
之间联系。
其中权重wi和常数项b是待定的。这意味着将输入的自变量按一定的比例加权求和,得到预测值输出。
取值在[0,1]之间。越接近1,表明方程中的变量对y的解释能力越强。通常将R2乘以100%表示回归方程解释y变化的百分比。
➢ set_params(**params) #设置 LinearRegression 构造方法的参数值
from sklearn.linear_model import LinearRegression
x = [[i,i] for i in range(3)]
y = [0, 1, 2]
lm = LinearRegression()
lm.fit(x, y)
print(lm.predict([[3,3]]))
print(lm.coef_)
print(lm.intercept_)
print(lm.score(x,y))
x = [[i] for i in range(1,5)]
y = [1, 4, 9, 12]
lm = LinearRegression()
lm.fit(x, y)
print(lm.predict([[5]]))
#系数(斜率)
print(lm.coef_)
#x0(截距)
print(lm.intercept_)
print('拟合得到的方程为:y= ',lm.coef_,'*x +',lm.intercept_)
print(lm.score(x, y))
from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston
boston = load_boston()
print(boston.keys())
x = boston.data[:, 5]
print(x[:5])
#此时x为一个array,为线性回归分析需要把它变为列表(列表表达式)
x1 = [[float(str(i))] for i in x] # 为避免6.575转为浮点型数据,在这里先转为字符串再转为浮点型数据
print(x1[:5])
y = boston.target
lm = LinearRegression()
lm.fit(x1, y)
print('回归方程的确定性系数为:', lm.score(x1, y))
print('回归方程的斜率为:', lm.coef_)
print('回归方程的截距为:', lm.intercept_)
print('回归方程为:y = ', lm.coef_, '*x + (', lm.intercept_, ')')
import matplotlib.pyplot as plt
plt.scatter(x, y)
plt.scatter(x, lm.predict(x1), color='red')
plt.plot(x, x*lm.coef_ + lm.intercept_, color='green')
plt.show()
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
import pandas as pd
#混淆矩阵
from sklearn.metrics import confusion_matrix
import os
os.chdir('D:\\学习\\数据挖掘\\泰迪培训\\回归')
data = pd.read_csv('LogisticRegression.csv')
print(data.head())
#对rank进行独热编码
data_dum = pd.get_dummies(data, columns=['rank'])
print(data_dum.head())
#train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取traindata和testdata
x_train, x_test, y_train, y_test = train_test_split(data_dum.ix[:, 1:], data_dum.ix[:, 0], random_state=520, test_size=0.1)
#建立逻辑回归模型
lr = LogisticRegression()
#用训练集拟合模型
lr.fit(x_train, y_train)
print(lr.predict(x_test))
#混淆矩阵结果:
#[[27 4]
# [ 6 3]]
#表示27+3个预测正确,6+4个预测错误
print(confusion_matrix(y_test, lr.predict(x_test)))
print('正确率为:{}%'.format(lr.score(x_test,y_test)*100))