导入相关库
import requests
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.svm import LinearSVC
from sklearn.tree import DecisionTreeClassifier
读取数据集,做三七分处理
#读取数据集
test = pd.read_csv("/home/tarena/test/web/day11/data_all.csv")
df = pd.DataFrame(test)
y = df["status"]
del df["status"]
#数据三七分,随机种子2018
X_train,X_test,y_train,y_test = train_test_split(df, y, test_size =0.3,random_state=2018)
搭建模型并评分
#搭建模型
#逻辑回归模型
lr = LogisticRegression()
lr.fit(X_train,y_train)
y_train_predictions = lr.predict(X_train)
y_test_predictions = lr.predict(X_test)
#SVM模型
Svc = LinearSVC()
Svc.fit(X_train,y_train)
# #决策树
dt = DecisionTreeClassifier()
dt.fit(X_train,y_train)
#评分
lr_score = lr.score(X_test,y_test)
Svc_score = Svc.score(X_test,y_test)
dt_score = dt.score(X_test,y_test)
print(lr_score)
print(Svc_score)
print(dt_score)
得到结果
0.7484232655921513
0.7484232655921513
0.6895585143658024
一点疑问:手动多次运行时SVM的模型得分偶尔会有较大变化,另外两个模型得分相对稳定
如果增加样本数量,回归模型与SVM的得分变化不大,决策树的得分会逐渐接近前两个模型