如何使用逻辑回归进行预测

关于kaggle中的一项数据采用逻辑回归模型进行患者医疗花费的预测。
数据在http://www.kaggle.com中,搜索Medical Cost Personal Datasets即可

数据说明
age:主要受益人的年龄
sex:保险承包商性别,女性,男性
bmi:体重指数,提供对身体的理解,相对于身高相对较高或较低的重量,使用身高与体重之比的体重客观指数(kg /平方公尺),理想情况下为18.5至24.9
children:健康保险覆盖的儿童人数/家属人数
smoker:吸烟
region:受益人的住宅区位于美国,东北,东南,西南,西北。
charges:由健康保险计费的个人医疗费用

数据分析及代码
1、查看数据

import pandas as pd
import os 
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
import bokeh
import numpy as np

warnings.filterwarnings('ignore')
data = pd.read_csv(r'D:\data\insuance.csv')

导入所需要的第三库和读取数据

data.head()

img

线性回归:

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import PolynomialFeatures
from sklearn.metrics import r2_score,mean_squared_error
from sklearn.ensemble import RandomForestRegressor

x = data.drop(['charges','sex','region'], axis = 1)
y = data.charges

x_train,x_test,y_train,y_test = train_test_split(x,y, random_state = 0)
lr = LinearRegression().fit(x_train,y_train)

y_train_pred = lr.predict(x_train)
y_test_pred = lr.predict(x_test)

print(lr.score(x_test,y_test))

img

具体可以参考:
https://blog.csdn.net/zhao99888/article/details/121309324

from sklearn.preprocessing import LabelEncoder

zz=LabelEncoder()
zz.fit(data.sex.drop_duplicates())
data.sex=zz.transform(data.sex)

zz.fit(data.smoker.drop_duplicates())
data.smoker=zz.transform(data.smoker)

zz.fit(data.region.drop_duplicates())
data.region=zz.transform(data.region)

data.corr()['charges'].sort_values()