欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python学习-线性回归和逻辑回归应用

程序员文章站 2024-02-15 21:51:35
...

线性回归原理:

线性回归实际上是寻找一组好的权重(向量W)用来与观测向量相成并获得近似目标值。

Python学习-线性回归和逻辑回归应用

线性回归是利用误差平方和作为代价函数,最后求解出误差最小的W权重向量。

首先利用线性回归对波士顿房价数据进行预测

Python学习-线性回归和逻辑回归应用

Python学习-线性回归和逻辑回归应用

Python学习-线性回归和逻辑回归应用

Boston.data数据中为各房子的基本信息,target为房子价格

from sklearn .datasets import load_boston
boston=load_boston()
from sklearn.cross_validation import train_test_split
x_train,x_test,y_train,y_test=train_test_split(boston.data, boston.target, test_size=0.2, random_state=0)

from sklearn.linear_model import LinearRegression
regr=LinearRegression()
regr.fit(x_train,y_train)
y_pre=regr.predict(x_test)

from sklearn.metrics import mean_absolute_error
print(mean_absolute_error(y_test,y_pre))

结果为3.842810589450492

效果不是很好。

 

接下来利用逻辑回归对逻辑回归对一份信用卡异常数据进行预测

import pandas as pd
credit=pd.read_csv("D:\PythonPractice\credit\creditcard.csv")
credit=credit.drop(['Time','Amount'],axis=1)
g1=credit[ credit["Class"]==0]#对正常和异常数据进行分组
g2=credit[ credit["Class"]==1]
g1=pd.DataFrame.sample(g1,n=492)
#因正常数据样本远大于异常数据,所以对正常数据进行下采样,保留与异常数据相同的样本个数
df=g2.append(g1)

from sklearn.utils import shuffle
df = shuffle(df)#让新数据与异常数据拼接并打乱

x_train,x_test,y_train,y_test=train_test_split(df, df.Class, test_size=0.2, random_state=0)

from sklearn.linear_model import LogisticRegression
clf=LogisticRegression()
clf.fit(x_train,y_train)
y_pred=clf.predict(x_test)
x_test["pre"]=y_pred
print(mean_absolute_error(y_test,y_pred))

结果非常好,0.005076142131979695

197条数据只有个别预测错误

Python学习-线性回归和逻辑回归应用