广西代理网站建设公司,在别的公司做的网站,无货源电商软件,建设网站的公司排名目录
介绍#xff1a;
一、数据
二、检查数据缺失 三、数据分析
四、数据清洗 五、数据类别转化
六、数据汇总和整理
七、建模
介绍#xff1a; 线性回归是一种常用的机器学习方法#xff0c;用于建立一个输入变量与输出变量之间线性关系的预测模型。线性回归的目标…目录
介绍
一、数据
二、检查数据缺失 三、数据分析
四、数据清洗 五、数据类别转化
六、数据汇总和整理
七、建模
介绍 线性回归是一种常用的机器学习方法用于建立一个输入变量与输出变量之间线性关系的预测模型。线性回归的目标是找到一条最佳拟合直线使得预测值与实际观测值之间的误差最小。 线性回归的训练过程是通过最小化目标变量与预测值之间的平方误差来确定模型的参数。常用的最小化目标函数是平方误差和Sum of Squared ErrorsSSE。 线性回归模型的优点包括简单易懂、计算效率高、可解释性强。然而线性回归模型的局限性在于假设了输入和输出之间的关系是线性的无法很好地处理非线性关系。 线性回归模型可以通过添加多项式特征、交互项或者使用其他非线性变换方法来解决非线性问题。此外还可以使用正则化技术如岭回归、Lasso回归来改善模型的泛化能力和抗噪能力。 参考Logistic Regression逻辑线性回归基于diabetes数据集-CSDN博客
Ridge Lasso Regression解决线性回归的过拟合Overfitting基于波士顿房价预测-CSDN博客 Linear Regression线性回归一元、多元-CSDN博客
一、数据
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inlinedatapd.read_csv(Titanic.csv) 二、检查数据缺失
data.isnull()#true即为缺失也可以用isna() sns.heatmap(data.isnull())#可以看到age和cabin缺失数据比较多 sns.heatmap(data.isnull(),yticklabelsFalse,cmaprainbow) data[Age].isnull().sum()
#结果263data[Cabin].isnull().sum()
#结果1014 三、数据分析
sns.set_style(whitegrid)
sns.countplot(xSurvived,datadata)#死亡的人占大部分 data[Survived].value_counts() sns.set_style(whitegrid)
sns.countplot(xSurvived,huePclass,datadata,paletterainbow)#再分舱位 sns.displot(data[Age],kdeTrue,colordarkred,bins40) sns.countplot(xSibSp,datadata)#亲属 四、数据清洗
plt.figure(figsize(12,7))
sns.boxplot(xPclass,yAge,datadata)#可以看出舱位和年龄的关系 data[data[Pclass]1][Age].median()#每个舱位的平均年龄
#39data[data[Pclass]2][Age].median()
#29data[data[Pclass]3][Age].median()
#24def addage(X):Age X[0]PclassX[1]if pd.isnull(Age):if Pclass 1:return 39elif Pclass 2:return 29else:return 24else:return Agedata[Age]data[[Age,Pclass]].apply(addage,axis1)#赋值给这个函数data.drop(Cabin,axis1,inplaceTrue)#因为船舱房间号缺失严重删除这列数据sns.heatmap(data.isnull(),yticklabelsFalse,cmaprainbow)#都无缺失数据 五、数据类别转化
data.info()##需要转化object类型的数据
结果
class pandas.core.frame.DataFrame
RangeIndex: 1309 entries, 0 to 1308
Data columns (total 11 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 PassengerId 1309 non-null int64 1 Survived 1309 non-null int64 2 Pclass 1309 non-null int64 3 Name 1309 non-null object 4 Sex 1309 non-null object 5 Age 1309 non-null float646 SibSp 1309 non-null int64 7 Parch 1309 non-null int64 8 Ticket 1309 non-null object 9 Fare 1308 non-null float6410 Embarked 1307 non-null object
dtypes: float64(2), int64(5), object(4)
memory usage: 112.6 KBdata[Embarked].unique()
#array([S, C, Q, nan], dtypeobject)pd.get_dummies(data[Embarked],drop_firstTrue)#三个数据用两个表示即可00表示Cpd.get_dummies(data[Sex],drop_firstTrue)#两个数据一个表示即可0表示falmesexpd.get_dummies(data[Embarked],drop_firstTrue)
embarkpd.get_dummies(data[Sex],drop_firstTrue)
六、数据汇总和整理
datapd.concat([data,sex,embark],axis1)#数据汇总data.drop([Sex,Embarked,Name,Ticket],axis1,inplaceTrue)#删除类别数据无用数据 七、建模
#数据清洗完毕开始建模
#y变量是01二分类用from sklearn.linear_model import LogisticRegression#逻辑线性回归Xdata.drop(Survived,axis1)
ydata[Survived]from sklearn.model_selection import train_test_split#将数据分成测试和训练集
X_train,X_test,y_train,y_testtrain_test_split(X,y,test_size0.3,random_state0)#测试集占百分之三十random_state0随机抽取数据集里的成为测试集from sklearn.linear_model import LogisticRegression
logitmodel LogisticRegression()
logitmodel.fit(X_train,y_train)y_predictions logitmodel.predict(X_test)#预测值from sklearn.metrics import confusion_matrix
confusion_matrix(y_test,y_predictions)
结果
array([[193, 29],[ 25, 146]], dtypeint64)
from sklearn.metrics import accuracy_score
accuracyaccuracy_score(y_test,y_predictions)#模型值
#0.8625954198473282from sklearn.metrics import classification_report
print(classification_report(y_test,y_predictions))
结果precision recall f1-score support0 0.89 0.87 0.88 2221 0.83 0.85 0.84 171accuracy 0.86 393macro avg 0.86 0.86 0.86 393
weighted avg 0.86 0.86 0.86 393