线性回归
- 线性模型(linear model): Y=W^T+B
- 线性回归试图学得 : f(Xi)=Wi + b
- sklearn.linear_model中的LinearRegression可实现线性回归
- LinearRegression的常用方法:
- decision_function(X) 返回X的预测值
- fit(X,y[,n_jobs]) 拟合模型
- get_param([deep]) 获取LinearRegression构造方法的参数信息
- predict(X) 求预测值
- 例子:
from sklearn.linear_model import LinearRegression
clf = LinearRegression() # 调用线性回归函数
clf.fit([[1,1],[2,2],[3,3]],[1,2,3]) # 训练模型
pre = clf.predict([[4,4]]) # 模型预测
print(pre)
print(clf.coef_) # 模型系数
print(clf.intercept_) # 截距项
F:\python\机器学习\venv\Scripts\python.exe F:/python/机器学习/2python线性回归.py
[4.]
[0.5 0.5]
2.220446049250313e-16
Process finished with exit code 0
可得模型为F(X)=0.5*X1+0.5*X2+0
波士顿房价预测图
话不多说直接上代码
import matplotlib.font_manager as fon
My_font = fon.FontProperties(fname=r"./data/FZJianQRTJW.TTF")
data = load_boston()
x = data.data[:,5:6]
clf = LinearRegression()
clf.fit(x,data.target) # 训练模型
y_pre = clf.predict(x) # 模型预测
plt.figure(figsize=(20,8),dpi=80)
plt.scatter(x,data.target,color="red",label="原始数据",) # 散点图(原始数据)
plt.plot(x,y_pre,label="预测数据") # 曲线图(预测数据)
plt.legend(prop=My_font)
plt.title("波士顿房价预测",fontproperties=My_font)
plt.show()
逻辑回归
- 逻辑回归是对数几率回归,属于广义线性模型,它的因变量一般只有0或1
- 逻辑回归是一种分类问题
研究生入学数据集的逻辑回归预测
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
data = pd.read_csv(r"./data/LogisticRegression.csv") # 导入数据
clf = LogisticRegression() # 逻辑回归模型
data_tr,data_te,label_tr,label_te = train_test_split(data.iloc[:,1:],data['admit'],test_size=0.2) # 划分数据集
clf.fit(data_tr,label_tr) # 模型训练
pre = clf.predict(data_te) # 模型预测
# pre == label_te # 判断是否相等
report = classification_report(label_te,pre) # 分类报告
print(report)
F:\python\机器学习\venv\Scripts\python.exe F:/python/机器学习/4逻辑回归—研究生入学考试.py
precision recall f1-score support
0 0.69 0.94 0.80 52
1 0.67 0.21 0.32 28
accuracy 0.69 80
macro avg 0.68 0.58 0.56 80
weighted avg 0.68 0.69 0.63 80
Process finished with exit code 0