赞
踩
给定由 d个属性描述的示例 x= (x1; x2;…;xd ) 其中均是 在第 i个属性上的取值,线性模型(linear model) 试图学得一个通过属性的线性组合来进行预测的函数,即
一般用向量形式写成
其中 ω=(ω1 ;ω2;…;ωd) ω 和 d 学得之后,模型就得以确定。
线性模型形式简单、易于建模,但却蕴涵着机器学习中一些重要的基本思想.许多功能更为强大的非线性模型
(nonlinear model) 可在线性模型的基础上通过引入层级结构或高维映射而得.此外,由于 直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释’性 (comprehensibility) .
形式简单,易于建模
蕴含机器学习的基本思想
是其他非线性模型的基础
权重体现出各属性重要性,可解释性强
均方误差是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化
在线性回归中,最小乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小.
sklearn.linear_model中的LinearRegression可实现线性回归
LinearRegression 的构造方法:
LinearRegression(
fit_intercept=True, #默认值为 True,表示 计算随机变量,False 表示不计算随机变量
normalize=False, #默认值为 False,表示在回归前是否对回归因子X进行归一化True 表示,
copy_X=True
)
LinearRegression 的常用方法有:
decision_function(X) #返回 X 的预测值 y
fit(X,y[,n_jobs]) #拟合模型
get_params([deep]) #获取 LinearRegression 构造方法的参数信息
predict(X) #求预测值 #同 decision_function
使用Python实现下面输入与输出的线性回归
输入:[[0, 0], [1, 1], [2, 2]]——两个输入
输出:[0, 1, 2]
预测:[3, 3]
from sklearn.linear_model import LinearRegression
clf = LinearRegression()
clf.fit([[0,0],[1,1],[2,2]],[0,1,2]) #模型训练
pre = clf.predict([[3,3]]) #模型预处
clf.coef_
clf.intercept_
print(pre)
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
bosten = load_boston() #实例化
x = bosten.data[:,5:6]
clf = LinearRegression()
clf.fit(x,bosten.target) #模型训练
clf.coef_ #回归系数
y_pre = clf.predict(x) #模型输出值
plt.scatter(x,bosten.target) #样本实际分布
plt.plot(x,y_pre,color='red' ) #绘制拟合曲线
plt.show()
分类和回归二者不存在不可逾越的鸿沟。就波士顿房价预测作为例子:如果将房价按高低分为“高级”、“中级”和“普通”三个档次,那么这个预测问题也属于分类问题。
准确地说,逻辑回归(Logistic Regression)是对数几率回归,属于广义线性模型(GLM),它的因变量一般只有0或1。
需要明确一件事情:线性回归并没有对数据的分布进行任何假设,而逻辑回归隐含了一个基本假设 :每个样本均独立服从于伯努利分布(0-1分布)。
伯努利分布属于指数分布族,这个大家庭还包括:高斯(正态)分布、多项式分布、泊松分布、伽马分布、Dirichlet分布等。
sklearn. model_selection随机划分训练集和测试集
- train_data:所要划分的样本特征集
- train_target:所要划分的样本结果
- test_size:样本占比,如果是整数的话就是样本的数量
- random_state:是随机数的种子。
- 随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。
- 随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:
- 种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。
在入门时建议首先掌握scikit-learn中的逻辑回归实现算法。
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
# 导入数据并观察
data = pd.read_csv('LogisticRegression.csv')
print(data.tail(5)) # 查看数据框的最后五行
X_train,X_test,y_train,y_test = train_test_split(data.iloc[:, 1:],data.iloc[:,0],test_size=.1,random_state=5)
lr = LogisticRegression() # 建立LR模型
lr.fit(X_train,y_train) # 用处理好的数据训练模型
print('逻辑回归的准确率为:{0:.2f}%'.format(lr.score(X_test, y_test)*100))
7、研究生入学考试录取预测,构建一个逻辑回归模型对学生是否会被录取为研究生进行预测,并对构建出的模型进行简单评价
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('LogisticRegression.csv')
data_tr,data_te,label_tr,label_te= train_test_split(data.iloc[:,1:],data['admit'],test_size=0.2) #所有样本的自变量,所有样本的因变量,test_size测试样本20个
clf = LogisticRegression()
clf.fit(data_tr,label_tr) #拟合训练
pre = clf.predict(data_te) #测试样本
res = classification_report(label_te,pre)
print(res)
笔记来源:泰迪云课堂的python机器学习实战
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。