机器学习算法基础(8): 逻辑回归算法和K-means聚类算法

模型的保存和加载

from sklearn.externals import joblib
机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第1张图片

分类算法:逻辑回归

逻辑回归:线性回归的式子作为输入,解决二分类问题, 也可以得出概率值

1、应用场景(基础分类问题:二分类)

  • 广告点击率

  • 是否为垃圾邮件

  • 是否患病

  • 金融诈骗

  • 虚假账号

2、广告点击

  • 点击

  • 没点击

3、逻辑回归的输入与线性回归相同

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第2张图片

将线性回归的输入转变为一个分类问题

4、sigmoid函数

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第3张图片

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第4张图片
函数y轴为概率值

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第5张图片

逻辑回归也是一个算法自我学习的过程

5、逻辑回归的损失函数

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第6张图片
机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第7张图片

当事件发生的概率为1时,损失函数为0,发生的概率越小,损失越大

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第8张图片

逻辑回归只盼定属于y=1的概率

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第9张图片

目的:减少损失函数的大小

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第10张图片

逻辑回归的目的:更新权重

损失函数

  • 均方误差:不存在多个局部的最低点,只有一个最小值
  • 对数似然损失:有多个最小值,即多个局部最小值,目前解决不了的问题

解决方案(无法最终解决问题,尽量改善,尽管找不到全局最低点,但效果很好)

  • 多次随机初始化:分别去找自己的最低点,在比较最小值结果
  • 调整学习率:在求解的过程中,调整学习率,学习率大小决定学习快慢

6、逻辑回归算法

API

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第11张图片
机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第12张图片

与岭回归一样,可以解决过拟合问题

回归案例:肿瘤检测

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第13张图片

from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression, SGDRegressor,Ridge,LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report
import numpy as np
import joblib
import pandas as pd


def logistic():
    '''
    逻辑回归做二分类进行癌症预测(根据细胞的属性特征)
    '''

    #构造列标签
    column=["sample code number","clump thickness","uniformtity of cell size","uniformity of cell shape","marginal adhesion",
            "single epithelial cell size","bare nuclei","bland chromatin","normal nucleoli","mitoses","class"]
    #读取数据
    data=pd.read_csv("http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data",names=column)

    print(data)

    #缺失值进行数据处理
    data=data.replace(to_replace="?",value=np.nan)

    #将np.nan删除
    data=data.dropna()

    #进行数据分割,特征值为第2列到10列,目标值为第11列
    x_train, x_test, y_train, y_test = train_test_split(data[column[1:10]], data[column[10]], test_size=0.25)

    #进行标准化处理, 目标值不需要标准化 预测属于4的概率(癌症发生的概率)
    std=StandardScaler()

    x_train=std.fit_transform(x_train)

    x_test=std.fit_transform(x_test)

    #逻辑回归预测
    lg=LogisticRegression(C=1.0)

    lg.fit(x_train,y_train)

    print(lg.coef_)

    y_predict=lg.predict(x_test)

    print("准确率:",lg.score(x_test,y_test))

    #考虑召回率
    print("召回率:",classification_report(y_test, y_predict, labels=[2,4],target_names=["良性","恶性"]))
    if __name__=="__main__":
    logistic()

在这里插入图片描述
机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第14张图片

总结

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第15张图片

逻辑回归与朴素贝叶斯

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第16张图片

非监督学习

k-means (聚类)的过程

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第17张图片

API

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第18张图片
机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第19张图片
机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第20张图片

代码

import pandas as pd
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
#读取4张表
prior=pd.read_csv("./data/order_products__prior.csv")
products=pd.read_csv("./data/products.csv")
orders=pd.read_csv("./data/orders.csv")
aisles=pd.read_csv("./data/aisles.csv")
pd.set_option('display.max_columns', None)
#合并四张表到一张表当中 (用户-物品类别)
_mg=pd.merge(prior,products,on=["product_id","product_id"])
_mg=pd.merge(_mg, orders,on=["order_id","order_id"])
mt=pd.merge(_mg,aisles,on=["aisle_id","aisle_id"])

print(mt.head(10))

#建立行和列
# 交叉表 特殊的分组工具
cross=pd.crosstab(mt["user_id"],mt["aisle"])

#进行主成分分析
pca=PCA(n_components=0.9)
data=pca.fit_transform(cross)

#假设用户一共分为四个类别

#把样本数量减少
x=data[:500]


#聚类
km=KMeans(n_clusters=4)

km.fit(x)

predict=km.predict(x)

#显示聚类的结果
plt.figure(figsize=(10,10))

#建立四个颜色的列表
color=["red","blue","green","orange"]

color=[color[i] for i in predict]

plt.scatter(x[:,1],x[:,20],color=color)

plt.xlabel("1")
plt.ylabel("20")
plt.show()

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第21张图片

评估标准

机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第22张图片
机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第23张图片
机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第24张图片
机器学习算法基础(8): 逻辑回归算法和K-means聚类算法_第25张图片

你可能感兴趣的:(算法,逻辑回归,机器学习,python,聚类算法)