02. keras实现线性回归

keras实现线性回归

import keras
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline #将图片显示

###生成随机数据
x = np.linspace(0, 100, 30) #0-100生成30个数字
y = 3*x +7 + np.random.randn(30)

###分布情况
plt.scatter(x,y) #查看数据趋势
###建立模型
model = keras.Sequential() #顺序模型

form keras import layers #引用层
model.add(layers.Dense(1,input_dim=1) )#Dense(输出几个单元,输入是几维)

model.summary() #查看模型

#编译模型
model.compile(optimizer=‘adam’, #优化函数
loss=‘mse’ #优化什么
)

#训练模型
model.fit(x, y, epochs=30) #epochs=把所有数据训练多少遍 把所有数据训练30遍
#预测
model.predict(x)

plt.scatter(x,y,c=‘r’)
plt.plot(x, model.predict(x))

model.predict([150]) #预测当x=150时的值

多元线性回归

import pandas as pd
data = pd.read_csv(‘C:’) #读取数据

x = data[data.columns[1:-1]] #,快速取值。取第二列到倒数第二列
y= data.iloc[:, -1] #也是取值,取最后一列

pandas 取值方法汇总

model = keras.Sequential()
model.add(layers.Dense(1,imput_dim=3)) # y_pred =w1t1 + w2t2 + w3*t3 +b

model.compile(optimizer=’ adam’,
loss=‘mes’
)

model.fit(x,y,epochs=30)
model.predict(pd.DataFrame([[300,0,0]])) #预测x1=300 x2=0 x3=0时的输出

逻辑回归

激活函数 Sigmoid 函数
逻辑回归损失函数
平方差所惩罚的是与损失为同一数量级的情形
对于分类问题,我们最好使用交叉熵损失函数会更有效,交叉熵会输出一个更大的“损失”

交叉熵刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。

二元交叉熵:函数: binary_crossentropy
多分类: softmax 交叉熵 函数:categorical_crossentropy 和 sparse_categorical_crossentropy

独热编码
pd.get_dummies(data.name)

softmax分类
def model:
model = keras.Sequntial()
model.add(layers.Dense(3,input_dim=4, activation=‘softmax’))
model.compile(optimizer=‘adam’,
loss=‘categorical_crossentropy’, #独热编码时用此loss 函数
metrics=[‘acc’]
)

顺序编码:
dic={‘列名1’:0,‘列名2’:1, ‘列名3’:2}
def model:
model = keras.Sequntial()
model.add(layers.Dense(3,input_dim=4, activation=‘softmax’))
model.compile(optimizer=‘adam’,
loss=‘sparse_categorical_crossentropy’, #顺序编码时用此loss 函数
metrics=[‘acc’]
)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值